这是 AWS CDK v2 开发者指南。旧版 CDK v1 于 2022 年 6 月 1 日进入维护阶段,并于 2023 年 6 月 1 日终止支持。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
本地测试入门
本主题介绍在 AWS CDK 应用程序中使用 AWS SAM CLI 所需的内容,并提供了构建和本地测试简单 AWS CDK 应用程序的说明。
先决条件
要在本地进行测试,必须安装 AWS SAM CLI。有关安装说明,请参阅安装 AWS SAM CLI。
创建和本地测试 AWS CDK 应用程序
要使用 SA AWS M CLI 在本地测试 AWS CDK 应用程序,您必须拥有包含 Lambda 函数的 AWS CDK 应用程序。使用以下步骤创建带有 Lambda 函数的基本 AWS CDK 应用程序。有关更多信息,请参阅 C AWS loud Development Kit ( AWS CDK) 开发者指南中的使用AWS CDK 创建无服务器应用程序。
- 步骤 1:创建 AWS CDK 应用程序
-
在本教程中,请初始化使用 TypeScript的 AWS CDK 应用程序。
要运行的命令:
$ 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
的文件。要运行的命令:
def lambda_handler(event, context): return "Hello from SAM and the CDK!"
- 第 4 步:测试您的 Lambda 函数
-
您可以使用 AWS SAM CLI 在本地调用您在 AWS CDK 应用程序中定义的 Lambda 函数。为此,你需要函数构造标识符和合成 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