本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
sam deploy
部署和Amazon SAM应用程序.
默认情况下,当你使用此命令时,Amazon SAMCLI 假设你当前的工作目录是项目的根目录。这些区域有:Amazon SAMCLI 首先尝试查找使用sam 构建命令,位于.aws-sam
子文件夹,并命名template.yaml
. 下一步是Amazon SAMCLI 尝试找到名为的模板文件template.yaml
要么template.yml
在当前工作目录中。如果你指定--template
选项,Amazon SAMCLI 的默认行为被覆盖,并将仅部署该行为Amazon SAM模板以及它指向的本地资源。
此命令带有引导式交互模式,您可以通过指定--guided
选项。交互模式将引导您完成部署所需的参数,提供默认选项,并可以选择将这些选项保存在项目目录中的配置文件中。使用以下方式执行应用程序的后续部署时sam deploy
,Amazon SAMCLI 从配置文件中检索所需的参数。
中声明的对象Parameters
的 部分Amazon SAM模板文件显示为其他交互模式提示。系统会提示您为每个参数提供值。有关这些对象的示例和相应提示,请参阅示例在本主题后面的一节。
使用代码签名配置的无服务器应用程序会生成更多交互模式提示。系统会询问是否要签署代码,如果是,系统会提示您输入签名配置文件名称和所有者。有关这些提示的示例,请参阅示例在本主题后面的一节。
有关指定--guided
选项,请参阅Amazon SAM CLI 配置文件.
部署Amazon Lambda函数通过Amazon CloudFormationLambda 部署程序包需要 Amazon Simple Storage Service (Amazon S3) 存储桶。这些区域有:Amazon SAMCLI 为您创建和管理此 Amazon S3 存储桶。Amazon SAM启用 Amazon S3 中存储的所有文件的加密。
如果您的应用程序包含声明的任何函数或层资源PackageType: Image
,然后你可以指示Amazon SAMCLI 为您自动创建所需的 Amazon ECR 存储库,使用--resolve-image-repos
选项,或者--guided
选项并响应提示 “为所有功能创建托管 ERC 存储库?” 和Y
.
使用方法:
sam deploy [OPTIONS] [ARGS]...
选项:
选项 | 描述 |
---|---|
-g, --guided |
指定此选项以具有Amazon SAM使用提示指导您完成部署。 |
-t, --template-file, --template PATH |
您的路径和文件名Amazon SAM已找到模板。 注意:如果指定此选项,Amazon SAM仅部署模板及其指向的本地资源。 |
--stack-name TEXT |
(必需)Amazon CloudFormation要部署到的堆栈。如果指定现有堆栈,则该命令将更新堆栈。如果指定了新堆栈,则命令将创建它。 |
--s3-bucket TEXT |
此命令在其中上传您的 Amazon S3 存储桶的名称Amazon CloudFormation模板。如果你的模板大于 51,200 字节,那么--s3-bucket 或者--resolve-s3 选项是必需的。如果指定了--s3-bucket 和--resolve-s3 选项,则将导致出现错误。 |
--s3-prefix TEXT |
添加到上传到 Amazon S3 存储桶的项目名称中的前缀。前缀名称是 Amazon S3 存储桶的路径名称(文件夹名称)。 |
--image-repository TEXT |
Amazon Elastic Container Registry (Amazon ECR) 存储库的名称,此命令将在其中上传函数映像。对于使用声明的函数所必需的Image 包装类型。 |
--signing-profiles LIST |
用来签署部署包的配置文件的列表。此选项接受键值对的列表,其中键是要签名的函数或图层的名称,值是签名配置文件,其中可选配置文件所有者分隔为: . 例如:FunctionNameToSign=SigningProfileName1
LayerNameToSign=SigningProfileName2:SigningProfileOwner 。 |
--capabilities LIST |
必须指定才能允许的功能列表Amazon CloudFormation来创建某些堆栈。一些堆栈模板可能包含的资源会影响您的中的权限Amazon例如,通过创建新账户Amazon Identity and Access Management(IAM) 用户。对于这些堆栈,您必须指定此选项以显示确认它们的功能。有效值仅为 CAPABILITY_IAM 和 CAPABILITY_NAMED_IAM 。如果包含 IAM 资源,您可以指定任意一个功能。如果包含具有自定义名称的 IAM 资源,则必须指定 CAPABILITY_NAMED_IAM 。如果未指定此选项,则操作将返回InsufficientCapabilities 错误消息。 |
--region TEXT |
这些区域有:Amazon要部署到的区域。例如,us-east-1。 |
--profile TEXT |
获取凭证文件中的特定配置文件Amazon凭证。 |
--kms-key-id TEXT |
IDAmazon Key Management Service(Amazon KMS) 用于加密 Amazon S3 存储桶中静态的项目的密钥。如果未指定此选项,则Amazon SAM使用 Amazon S3 托管加密密钥。 |
--force-upload |
指定此选项可上传工件,即使它们与 Amazon S3 存储桶中的现有工件匹配。匹配的工件将被覆盖。 |
--no-execute-changeset |
指示是否执行变更集。如果要在执行变更集之前查看堆栈更改,请指定此选项。此命令会创建Amazon CloudFormation变更集然后退出而不执行变更集。要执行更改集,请在不使用此选项的情况下运行同一命令。 |
--role-arn TEXT |
IAM 角色的 Amazon 资源名称 (ARN)Amazon CloudFormation假定在执行更改集时。 |
--fail-on-empty-changeset | --no-fail-on-empty-changeset |
指定如果没有对堆栈进行更改,是否返回非零退出代码。默认行为是返回非零退出代码。 |
--confirm-changeset | --no-confirm-changeset |
提示确认是否Amazon SAMCLI 部署计算出的变更集。 |
--use-json |
输出 JSONAmazon CloudFormation模板。默认输出为 YAML。 |
--resolve-s3 |
自动创建一个 Amazon S3 存储桶,用于打包和部署非引导式部署。如果你指定--guided 选项,然后--resolve-s3 将忽略。如果指定了--s3-bucket 和--resolve-s3 选项,则将导致出现错误。 |
--resolve-image-repos |
自动创建 Amazon ECR 存储库,用于打包和部署非引导式部署。此选项仅适用于函数和图层PackageType: Image 指定。如果你指定--guided 选项,然后忽略 —resolve image-repos。注意:如果Amazon SAM使用此选项自动为函数或图层创建任何 Amazon ECR 存储库,然后您将这些函数或图层从Amazon SAM模板,相应的 Amazon ECR 存储库将自动删除。 |
--metadata |
要附加到模板中引用的所有工件的元数据映射。 |
--notification-arns LIST |
Amazon Simple Notification Service (Amazon SNS) 主题 ARN 的列表Amazon CloudFormation与堆栈关联。 |
--tags LIST |
要与创建或更新的堆栈关联的标签的列表。Amazon CloudFormation还可以将这些标签传播到堆栈中支持它的资源。 |
--parameter-overrides |
包含的字符串Amazon CloudFormation参数覆盖编码为键值对。请使用与Amazon Command Line Interface(Amazon CLI)。例如:ParameterKey=ParameterValue
InstanceType=t1.micro 。 |
--disable-rollback | --no-disable-rollback |
指定是否回滚Amazon CloudFormation如果在部署期间出现错误,则堆栈。默认情况下,Amazon CloudFormation如果部署过程中出现错误,堆栈将回滚到最后一个稳定状态。如果你指定--disable-rollback 并且在部署过程中发生错误,在错误发生之前创建或更新的资源不会回滚。 |
--config-file PATH |
包含要使用的默认参数值的路径和文件名。默认值是 。samconfig.toml 在项目目录的根目录中。有关配置文件的详细信息,请参阅 Amazon SAM CLI 配置文件。 |
--config-env TEXT |
指定配置文件中要使用的默认参数值的环境名称。默认值为 default 。有关配置文件的详细信息,请参阅 Amazon SAM CLI 配置文件。 |
--no-progressbar |
将工件上传到 Amazon S3 时,请勿显示进度条。 |
--debug |
打开调试日志记录以打印调试消息Amazon SAMCLI 生成和显示时间戳。 |
--help |
显示此消息并退出。 |
示例
参数
下面是在中声明的示例对象Parameters
部分,以及使用时出现的相应提示sam deploy --guided
.
Amazon SAM模板:
Parameters: MyPar: Type: String Default: MyParVal
通信sam deploy --guided
提示:
Parameter MyPar [MyParVal]:
代码签名
以下是一个配置了代码签名的函数示例。
Amazon SAM模板:
Resources: HelloWorld: Type: AWS::Serverless::Function Properties: CodeUri: hello_world/ Handler: app.lambda_handler Runtime: python3.7 CodeSigningConfigArn: arn:aws:lambda:us-east-1:111122223333:code-signing-config:csc-12e12345db1234567
通信sam deploy --guided
提示:
#Found code signing configurations in your function definitions Do you want to sign your code? [Y/n]: #Please provide signing profile details for the following functions & layers #Signing profile details for function 'HelloWorld' Signing Profile Name: Signing Profile Owner Account ID (optional): #Signing profile details for layer 'MyLayer', which is used by functions {'HelloWorld'} Signing Profile Name: Signing Profile Owner Account ID (optional):