AWS SAM CLI - AWS Serverless Application Model

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

AWS SAM CLI

AWS Serverless Application Model 命令行界面 (AWS SAM CLI) 是一款用于无服务器应用程序本地开发和测试的命令行工具。AWS SAM CLI 让您可以在将无服务器应用程序部署到云端之前,在本地进行构建、转换、部署、调试、打包、初始化和同步操作。

AWS SAM CLI 支持使用不同框架和基础设施即代码(IaC)工具定义的无服务器应用程序,支持程度各不相同:

  • AWS SAM 模板 - 为完整功能集提供原生支持,包括本地测试、调试、打包和部署功能。

  • AWSCDK 应用程序 - 支持在使用 cdk synth 命令将 AWS CDK 应用程序合成到 CloudFormation 模板后,对 Lambda 函数进行本地测试。

  • CloudFormation 模板 - 提供直接兼容性,因为 AWS SAM 扩展了 CloudFormation,支持在标准 CloudFormation 模板中定义的无服务器资源。

  • Terraform 应用程序 - 为 Lambda 函数的构建和本地测试提供有限支持。需要您生成代表 Terraform 定义的 Lambda 函数的 AWS SAM 模板构件。

若需获得最全面的功能支持和流畅的开发者体验,我们建议使用原生 AWS SAM 模板。

AWS SAM CLI 命令是如何记录的

使用以下格式对 AWS SAM CLI 命令进行记录:

  • 提示 – 默认情况下,Linux 提示被记录下来并显示为 ($ )。对于 Windows 特定的命令,(> ) 用作提示。请勿在键入命令时包含提示符。

  • 目录 – 当必须从特定目录执行命令时,目录名称将显示在提示符符号之前。

  • 用户输入 – 您在命令行处输入的命令文本采用 user input 格式。

  • 可替换文本 – 可变文本(例如文件名和参数)被格式化为可替换文本。在多行命令中或需要特定键盘输入的命令中,键盘输入也可显示为可替换文本。例如,ENTER

  • 输出 – 作为对命令的响应而返回的输出格式为 computer output

下面是 sam deploy 命令和输出的示例:

$ sam deploy --guided --template template.yaml Configuring SAM deploy ====================== Looking for config file [samconfig.toml] : Found Reading default arguments : Success Setting default arguments for 'sam deploy' ========================================= Stack Name [sam-app]: ENTER AWS Region [us-west-2]: ENTER #Shows you resources changes to be deployed and require a 'Y' to initiate deploy Confirm changes before deploy [y/N]: ENTER #SAM needs permission to be able to create roles to connect to the resources in your template Allow SAM CLI IAM role creation [Y/n]: ENTER #Preserves the state of previously provisioned resources when an operation fails Disable rollback [y/N]: ENTER HelloWorldFunction may not have authorization defined, Is this okay? [y/N]: y Save arguments to configuration file [Y/n]: ENTER SAM configuration file [samconfig.toml]: ENTER SAM configuration environment [default]: ENTER
  1. sam deploy --guided --template template.yaml 是您在命令行中输入的命令。

  2. sam deploy --guided --template 应按原样提供。

  3. template.yaml 可以用特定文件名替换。

  4. 输出开始于 Configuring SAM deploy

  5. 在输出中,ENTERy 表示您提供的可替换值。