这是 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 SAM CLI 在本地测试 AWS CDK 应用程序,您必须拥有包含 Lambda 函数的 AWS CDK 应用程序。使用以下步骤创建带有 Lambda 函数的基本 AWS CDK 应用程序。有关更多信息,请参阅《AWS 云开发工具包 (AWS CDK) 开发人员指南》中的 Creating a serverless application using the 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