本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
sam deploy
部署Amazon SAM应用程序。
默认情况下,当你使用这个命令时,Amazon SAMCLI 假定您当前的工作目录是项目的根目录。这些区域有:Amazon SAMCLI 首先尝试找到使用创建的模板文件sam bu命令,位于.aws-sam
子文件夹,并命名为template.yaml
. 接下来,则Amazon SAMCLI 尝试找到名为的模板文件template.yaml
要么template.yml
在当前工作目录中。
要覆盖Amazon SAMCLI 的默认行为,请指定--template
选项。指定此选项时,则Amazon SAMCLI 只部署那个Amazon SAM模板及其指向的本地资源。
要打开引导式交互模式,请指定--guided
选项。此模式显示部署所需的参数,提供默认选项,并可选择将这些选项保存在项目目录的配置文件中。当您使用以下方法执行应用程序的后续部署时sam deploy,Amazon SAMCLI 从配置文件中检索所需的参数。
在中声明的对象Parameters
部分Amazon SAM模板文件显示为其他交互模式提示。这些区域有:Amazon SAMCLI 提示您为每个参数提供值。有关这些对象和相应提示的示例,请参阅示例本主题后面的部分。
使用代码签名配置的无服务器应用程序会生成更多交互模式提示。这些区域有:Amazon SAMCLI 询问您是否要对代码进行签名,如果是,则提示您输入签名配置文件名称和所有者。有关这些提示的示例,请参阅示例本主题后面的部分。
有关设置的更多信息Amazon SAMCLI 可选择在您指定--guided
选项,请参阅Amazon SAM CLI 配置文件.
要部署Amazon Lambda函数通过Amazon CloudFormation,则必须包含 Lambda 部署包的 Amazon Simple Storage Service (Amazon S3) 存储桶。这些区域有:Amazon SAMCLI 会为您创建和管理这个 Amazon S3 存储桶。Amazon SAM启用对 Amazon S3 中存储的所有文件进行加密。
如果您的应用程序包含任何用声明的函数或层资源PackageType: Image
,那么你可以指示Amazon SAMCLI 可自动创建所需的Amazon Elastic Container Registry (Amazon ECR) 存储库 要有Amazon SAMCLI 创建这些存储库,使用--resolve-image-repos
选项或--guided
选项,然后使用以下命令回复后续提示Y
.
用法
sam deploy [OPTIONS] [ARGS]...
选项:
选项 | 描述 |
---|---|
-g, --guided |
指定此选项可获得Amazon SAMCLI 使用提示来指导您完成部署。 |
-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 ECR 存储库的名称。此选项对于使用声明的函数是必需的Image 程序包类型。 |
--signing-profiles LIST |
用于对部署包进行签名的签名配置文件列表。此选项采用键值对列表,其中密钥是要签名的函数或层的名称,值是签名配置文件,可选配置文件所有者分隔为: . 例如,FunctionNameToSign=SigningProfileName1
LayerNameToSign=SigningProfileName2:SigningProfileOwner 。 |
--capabilities LIST |
必须指定才能允许的功能列表Amazon CloudFormation创建特定的堆栈。一些堆栈模板中可能包含的资源会影响您的中的权限Amazon Web Services 账户,例如,通过创建新的Amazon Identity and Access Management(IAM) 用户。对于这些堆栈,您必须通过指定此选项来明确确认其功能。有效值仅为 CAPABILITY_IAM 和 CAPABILITY_NAMED_IAM 。如果包含 IAM 资源,则可以指定任意一个功能。如果包含具有自定义名称的 IAM 资源,则必须指定CAPABILITY_NAMED_IAM . 如果不指定此选项,则操作将返回InsufficientCapabilities 错误消息。 |
--region TEXT |
这些区域有:Amazon Web Services 区域要部署到。例如,us-east-1。 |
--profile TEXT |
凭证文件中的特定配置文件将获取Amazon凭证。 |
--kms-key-id TEXT |
的身份证Amazon 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 Resource Name (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 选项,然后是Amazon SAMCLI 忽略--resolve-s3 . 如果指定了两者--s3-bucket 和--resolve-s3 选项,则出错。 |
--resolve-image-repos |
自动创建 Amazon ECR 存储库,用于打包和部署非引导式部署。此选项仅适用于具有以下功能的函数和层PackageType: Image 指定的。如果您指定--guided 选项,然后是Amazon SAMCLI 忽略--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 并且在部署期间出现错误,则不会回滚错误发生之前创建或更新的资源。 |
--on-failure [ROLLBACK | DELETE | DO_NOTHING] |
指定堆栈创建失败时要采取的操作。 以下选项可用:
默认行为是 注意:您可指定以下任一值 |
--config-file PATH |
包含要使用的默认参数值的配置文件的路径和文件名。默认值为samconfig.toml 在项目目录的根目录中。有关配置文件的详细信息,请参阅 Amazon SAM CLI 配置文件。 |
--config-env TEXT |
在配置文件中指定要使用的默认参数值的环境名称。默认值为 default 。有关配置文件的详细信息,请参阅 Amazon SAM CLI 配置文件。 |
--no-progressbar |
将构件上传到 Amazon S3 时不要显示进度条。 |
--debug |
打开调试日志记录以打印调试消息Amazon SAMCLI 生成和显示时间戳。 |
--help |
显示此消息并退出。 |
环境变量:
环境变量 | 描述 |
---|---|
SAM_CLI_POLL_DELAY |
指定延迟,以秒为单位 |
示例
参数
以下是声明的示例对象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):
SAM_CLI_POLL_DELAY
以下是示例sam deploy使用SAM_CLI_POLL_DELAY
用于设置 5 秒延迟的变量DescribeStack
API 调用。
SAM_CLI_POLL_DELAY=5 sam deploy