本地测试Amazon CDKapplications - Amazon Serverless Application Model
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本地测试Amazon CDKapplications

CDK 与Amazon SAMCLI 当前处于公开预览状态。在公共预览期间,CDK 与Amazon SAMCLI 可能会发生向后不兼容的更改。

您可以使用Amazon SAMCLI 在本地测试Amazon CDK应用程序的项目根目录中运行以下命令Amazon CDK应用程序:

注意

这些区域有:Amazon SAMCLI 仅支持使用标准 Lambda 结构创建的 Lambda 函数。有关标准 Lambda 构造的信息,请参阅@aws-CD/aws-lambda 模块

当您运行任何sam local命令与Amazon CDK应用程序,Amazon SAMCLI 正在运行cdk synth代表您发出云程序集已经不存在。云程序集相对于项目根目录的默认位置为./aws-sam/build

运行时sam local invoke您需要要要调用的函数标识符以及定义函数的堆栈名称。

用量:

# Invoke the function FUNCTION_IDENTIFIER declared in the stack STACK_NAME sam-beta-cdk local invoke [OPTIONS] [STACK_NAME/FUNCTION_IDENTIFIER] # Start all APIs declared in the Amazon CDK application sam-beta-cdk local start-api [OPTIONS] # Start a local endpoint that emulates Amazon Lambda sam-beta-cdk local start-lambda [OPTIONS]

选项:

对于公共预览版Amazon SAMCLI,除了生产版本中提供的选项外,还提供以下选项。sam local函数。

选项 描述
--project-type [CFN | CDK] 指定这是否是Amazon SAM或者Amazon CDK应用程序. 如果未指定此选项,Amazon SAMCLI 将尝试确定哪种类型的项目基于template.yaml(Amazon SAM)或cdk.json(Amazon CDK)在项目根目录中。
--cdk-app TEXT 用于执行应用程序或云程序集目录的命令行。此选项将直接传递给--app选项cdk synth命令。有关更多信息,请参阅 。工具包参考中的Amazon Cloud Development Kit (CDK)开发人员指南
--cdk-context 的键/值对中的运行时上下文Amazon CDK应用程序. 此选项将直接传递给--context选项cdk synth命令。有关更多信息,请参阅 。工具包参考中的Amazon Cloud Development Kit (CDK)开发人员指南

Example

考虑使用以下示例声明的堆栈和函数:

app = new HelloCdkStack(app, "HelloCdkStack", ... ) class HelloCdkStack extends cdk.Stack { constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) { ... const fn = new lambda.Function(this, 'MyFunction', { ... }); }

在这个例子中,堆栈名称是手机堆栈函数标识符是MyFunction。以下命令在本地调用上面示例中定义的 Lambda 函数:

sam-beta-cdk local invoke HelloCdkStack/MyFunction