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

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

sam init

使用初始化无服务器应用程序Amazon SAM。该模板为您提供了文件夹结构Amazon Lambda函数,并连接到事件源,如 API、Amazon Simple Storage Service (Amazon S3) 存储桶或 Amazon DynamoDB 表。此应用程序包括入门并最终将其扩展到生产规模应用程序所需的所有内容。

对于某些示例应用程序,您可以选择应用程序的软件包类型,Zip或者Image. 有关 Lambda 包类型的更多信息,请参阅。Lambda 部署程序包中的Amazon Lambda开发人员指南.

使用方法:

sam init [OPTIONS]
注意

与Amazon SAM版本 0.30.0 或更高版本,您可以使用以下两种模式之一初始化应用程序:1) 交互式工作流程,或 2) 提供所有必需参数。

  • 交互式工作流:通过交互式初始化工作流程,您可以输入 1) 项目名称、首选运行时和模板文件,或 2) 自定义模板的位置。

  • 提供参数:提供所有必需的参数。

如果您提供了所需参数的子集,系统将提示您输入其他必需信息。

示例:

Initializes a new SAM project with required parameters passed as parameters sam init --runtime python3.7 --dependency-manager pip --app-template hello-world --name sam-app Initializes a new SAM project using custom template in a Git/Mercurial repository # gh being expanded to github url sam init --location gh:aws-samples/cookiecutter-aws-sam-python sam init --location git+ssh://git@github.com/aws-samples/cookiecutter-aws-sam-python.git sam init --location hg+ssh://hg@bitbucket.org/repo/template-name # Initializes a new SAM project using custom template in a Zipfile sam init --location /path/to/template.zip sam init --location https://example.com/path/to/template.zip # Initializes a new SAM project using cookiecutter template in a local path sam init --location /path/to/template/folder

选项:

选项 描述
--no-interactive 禁用 init 参数的交互式提示,如果缺少任何必需值,则失败。
-l, --location TEXT

模板或应用程序位置(Git、Mercurial、HTTP/HTTPS、.zip 文件、路径)。

如果需要此参数:--no-interactive已指定并--runtime--name, 和--app-template未提供。

对于 Git 仓库,您必须使用仓库根目录的位置。

对于本地路径,模板必须位于 .zip 文件或Cookiecutter格式的日期和时间。

--package-type [Zip | Image] 示例应用程序的软件包类型。Zip创建 .zip 文件存档,Image创建容器映像。
-r, --runtime [python2.7 | ruby2.5 | ruby2.7 | java8 | dotnetcore2.0 | nodejs10.x | nodejs12.x | nodejs14.x | dotnetcore2.1 | dotnetcore1.0 | python3.9 | python3.8 | python3.7 | python3.6 | go1.x]

应用程序的 Lambda 运行时。此选项仅适用于包装类型Zip.

如果需要此参数:--no-interactive已指定,--image-type被指定为Zip, 和--location未指定。

-a, --architecture [x86_64 | arm64]

应用程序 Lambda 函数的指令集架构。指定其中之一x86_64或者arm64.

--base-image [amazon/nodejs14.x-base | amazon/nodejs12.x-base | amazon/nodejs10.x-base | amazon/python3.9-base | amazon/python3.8-base | amazon/python3.7-base | amazon/python3.6-base | amazon/python2.7-base | amazon/ruby2.7-base | amazon/ruby2.5-base | amazon/go1.x-base | amazon/java11-base | amazon/java8.al2-base | amazon/java8-base | amazon/dotnetcore3.1-base | amazon/dotnetcore2.1-base]

应用程序的基本映像。此选项仅适用于包装类型Image.

如果需要此参数:--no-interactive已指定,--image-type被指定为Image, 和--location未指定。

-d, --dependency-manager [gradle | mod | maven | bundler | npm | cli-package | pip] Lambda 运行时的依赖关系管理器。
-o, --output-dir PATH 输出初始化应用程序的位置。
-n, --name TEXT

要作为目录生成的项目的名称。

如果需要此参数:--no-interactive已指定并--location未提供。

--app-template TEXT

要使用的托管应用程序模板的标识符。如果您不确定,请致电sam init没有交互式工作流程的选项。

如果需要此参数:--no-interactive已指定并--location未提供。

仅在中提供此参数Amazon SAMCLI 版本 0.30.0 及更高版本。使用早期版本指定此参数会导致错误。

--no-input 禁用 Cookiecutter 提示并接受模板配置中定义的 vcfdefault 值。
--extra-content 覆盖模板中的任何自定义参数cookiecutter.json例如,配置,{"customParam1": "customValue1", "customParam2":"customValue2"}
--config-file PATH 配置文件的路径和文件名,包含要使用的默认参数值。默认值为项目目录根目录中的 “samconfig.toml”。有关配置文件的详细信息,请参阅 Amazon SAMCLI 配置文件
--config-env TEXT 指定配置文件中要使用的默认参数值的环境名称。默认值为 “默认”。有关配置文件的详细信息,请参阅 Amazon SAMCLI 配置文件
--debug 打开调试日志记录以打印调试消息Amazon SAMCLI 生成,并显示时间戳。
-h, --help 显示此消息并退出。