aws-cdk-lib是AWS Cloud Development Kit (CDK)的核心库,提供了创建、组织和管理AWS资源的功能。它是一个通用的工具库,整合了其他CDK中常用的库,如@aws-cdk/core和@aws-cdk/cloudformation-diff。
@aws-cdk/core是CDK的核心库,它提供了创建和操作构建块(constructs)的方式。构建块是可重用的代码片段,可以表示AWS资源,如API Gateway、Lambda函数、S3桶等。
@aws-cdk/aws-iam是CDK的支持库,它提供了创建和管理AWS Identity and Access Management (IAM)资源的方式。
下面是一个使用CDK创建S3桶和Lambda函数的例子:
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as s3 from 'aws-cdk-lib/aws-s3';
import * as lambda from 'aws-cdk-lib/aws-lambda';
export class MyStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
// 创建一个S3桶
const bucket = new s3.Bucket(this, 'MyBucket', {
versioned: true,
});
// 创建一个Lambda函数
const fn = new lambda.Function(this, 'MyFunction', {
code: lambda.Code.fromAsset('function-code'),
runtime: lambda.Runtime.NODEJS_14_X,
handler: 'index.handler',
environment: {
BUCKET_NAME: bucket.bucketName,
},
});
// 给Lambda函数添加S3桶的读写权限
bucket.grantReadWrite(fn);
}
}
// 创建一个CDK app
const app = new cdk.App();
new MyStack(app, 'MyStack');