这是 AWS CDK v2 开发者指南。旧版 CDK v1 于 2022 年 6 月 1 日进入维护阶段,并于 2023 年 6 月 1 日终止支持。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
本主题介绍使用所需的内容 AWS SAM CLI 包含 AWS CDK 应用程序,它提供了构建和本地测试简单 AWS CDK 应用程序的说明。
先决条件
要在本地进行测试,必须安装 AWS SAM CLI。请参见安装 AWS SAM CLI获取安装说明。
创建和本地测试 AWS CDK 应用程序
要在本地测试 AWS CDK 应用程序,请使用 AWS SAM CLI,则必须有一个包含 Lambda 函数的 AWS CDK 应用程序。使用以下步骤创建带有 Lambda 函数的基本 AWS CDK 应用程序。有关更多信息,请参阅《AWS Cloud Development Kit (AWS CDK) 开发人员指南》中的使用 AWS CDK创建无服务器应用程序。
第 1 步:创建 AWS CDK 应用程序
在本教程中,初始化一个使用的 AWS CDK 应用程序 TypeScript。
要运行的命令:
$
mkdir cdk-sam-example
$
cd cdk-sam-example
$
cdk init app --language typescript
第 2 步:将 Lambda 函数添加到应用程序
使用以下内容替换 lib/cdk-sam-example-stack.ts
中的代码:
import { Stack, StackProps } from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as lambda from 'aws-cdk-lib/aws-lambda';
export class CdkSamExampleStack extends Stack {
constructor(scope: Construct, id: string, props?: StackProps) {
super(scope, id, props);
new lambda.Function(this, 'MyFunction', {
runtime: lambda.Runtime.PYTHON_3_12,
handler: 'app.lambda_handler',
code: lambda.Code.fromAsset('./my_function'),
});
}
}
第 3 步:添加 Lambda 函数代码
创建名为 my_function
的目录。在此目录中,创建名为 app.py
的文件。
要运行的命令:
$
mkdir my_function
$
cd my_function
$
touch app.py
将以下代码添加到 app.py
:
def lambda_handler(event, context):
return "Hello from SAM and the CDK!"
第 4 步:测试 Lambda 函数
你可以使用 AWS SAM CLI 在本地调用您在应用程序中定义的 Lambda 函数。 AWS CDK 为此,你需要函数构造标识符和合成 AWS CloudFormation 模板的路径。
运行以下命令返回lib
目录:
$
cd ..
要运行的命令:
$
cdk synth --no-staging
$
sam local invoke
MyFunction
--no-event -t./cdk.out/CdkSamExampleStack.template.json
输出示例:
Invoking app.lambda_handler (python3.9) START RequestId: 5434c093-7182-4012-9b06-635011cac4f2 Version: $LATEST "Hello from SAM and the CDK!" END RequestId: 5434c093-7182-4012-9b06-635011cac4f2 REPORT RequestId: 5434c093-7182-4012-9b06-635011cac4f2 Init Duration: 0.32 ms Duration: 177.47 ms Billed Duration: 178 ms Memory Size: 128 MB Max Memory Used: 128 MB