开始使用Amazon SAM和Amazon CDK - Amazon Serverless Application Model
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

开始使用Amazon SAM和Amazon CDK

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

本主题介绍使用Amazon SAMCLI 与Amazon CDK应用程序,并提供构建和本地测试简单Amazon CDK应用程序.

Prerequisites

使用Amazon SAMCLI 与Amazon CDK,您必须安装Amazon CDK,以及Amazon SAMCLI。

  • 有关安装的信息Amazon CDK,请参阅开始使用Amazon CDK中的Amazon Cloud Development Kit (CDK)开发人员指南

  • 要安装公共预览版本的Amazon SAMCLI,请按照安装 Amazon SAM CLI开发主机的操作系统,但使用公共预览下载链接或安装命令,如下所示:

    要验证是否已安装公共预览版,请运行sam-beta-cdk --version命令。此命令的输出采用1.X.Y.dev<YYYYMMDDHHmm>,例如:

    SAM CLI, version 1.22.0.dev202104281200

下载并本地测试Amazon CDK应用程序

要在本地测试Amazon CDK应用程序使用Amazon SAMCLI,您必须从Amazon CDK应用程序,该应用程序包含 Lambda 函数。如果您还没有Amazon CDK应用程序中包含 Lambda 函数,您可以下载示例Amazon CDK应用程序使用Amazon SAMCLI,或按照使用创建无服务器应用程序Amazon CDK中的Amazon Cloud Development Kit (CDK)开发人员指南

注意

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

下载示例Amazon CDK应用程序使用Amazon SAMCLI 中,运行sam init命令并指定CDK项目类型。有两种方式可执行此操作:

  • 在命令行上:使用--project-type CDK选项。例如:

    sam-beta-cdk init --project-type CDK --package-type Zip --runtime python3.8 --dependency-manager pip --app-template hello-world --cdk-language python --name sam-cdk-app-demo
  • 使用交互式提示:运行 sam-beta-cdk init 命令。然后,在提示符下询问Which type of project would you like to create?应答CDK。根据您对示例项目的需求回答所有其他必要提示。

您可以使用Amazon SAMCLI 在本地调用应用程序中定义的 Lambda 函数。为此,您需要要要调用的函数标识符以及定义函数的堆栈名称。

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

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', { ... }); }

以下命令在本地调用上面示例中定义的 Lambda 函数:

sam-beta-cdk local invoke HelloCdkStack/MyFunction

有关可用于测试的选项的更多信息Amazon CDK应用程序使用Amazon SAMCLI,请参阅本地测试Amazon CDKapplications