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

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

sam sync

使用Amazon Serverless Application Model命令行界面 (Amazon SAMCLI) sam sync 命令将本地应用程序更改同步到Amazon Web Services 云。

用量

$ sam sync <option> ...

选项

-s, --base-dir DIRECTORY

解析函数或层源代码相对于此目录的相对路径。使用此选项可以更改源代码文件夹相对路径的解析方式。默认情况下,相对路径是根据Amazon SAM模板的位置进行解析的。

除了您正在构建的根应用程序或堆栈中的资源外,此选项还适用于嵌套应用程序或堆栈。此外,此选项适用于以下资源类型和属性:

  • 资源类型:AWS::Serverless::Function属性:CodeUri

  • 资源类型:AWS::Serverless::Function资源属性:Metadata条目:DockerContext

  • 资源类型:AWS::Serverless::LayerVersion属性:ContentUri

  • 资源类型:AWS::Lambda::Function属性:Code

  • 资源类型:AWS::Lambda::LayerVersion属性:Content

--build-image TEXT

构建应用程序时要使用的容器镜像的 URI。默认情况下,Amazon SAM使用亚马逊弹性容器注册表 (Amazon ECR) Public 中的容器镜像存储库 URI。指定此选项可使用不同的图像。

可以在单个命令中多次使用此选项。每个选项都接受字符串或键值对。

  • String-指定应用程序中所有资源都将使用的容器镜像的 URI。以下是示例:

    $ sam sync --build-image amazon/aws-sam-cli-build-image-python3.8
  • 键值对 — 将资源名称指定为密钥,指定要与该资源一起使用的容器镜像 URI 作为值。使用此格式为应用程序中的每个资源指定不同的容器镜像 URI。以下是示例:

    $ sam sync --build-image Function1=amazon/aws-sam-cli-build-image-python3.8

仅当指定了该--use-container选项时,此选项才适用,否则将导致错误。

--capabilities LIST

您指定允许创建特定堆栈Amazon CloudFormation的功能列表。某些堆栈模板可能包含可能会影响您的权限的资源Amazon Web Services 账户。例如,通过创建新 Amazon Identity and Access Management (IAM) 用户。指定此选项可覆盖默认值。有效值包括:

  • 能力_IAM

  • 能力_NAMED_IAM

  • 能力_资源_政策

  • CAPABILITY_AUTO_EXPAND

默认CAPABILITY_NAMED_IAMCAPABILITY_AUTO_EXPAND

--code

默认情况下,Amazon SAM同步应用程序中的所有资源。指定此选项可仅同步代码资源,包括以下内容:

  • AWS::Serverless::Function

  • AWS::Lambda::Function

  • AWS::Serverless::LayerVersion

  • AWS::Lambda::LayerVersion

  • AWS::Serverless::Api

  • AWS::ApiGateway::RestApi

  • AWS::Serverless::HttpApi

  • AWS::ApiGatewayV2::Api

  • AWS::Serverless::StateMachine

  • AWS::StepFunctions::StateMachine

要同步代码资源,请直接Amazon SAM使用Amazon服务 API,而不是通过部署Amazon CloudFormation。要更新您的Amazon CloudFormation堆栈,请运行sam sync --watchsam deploy

--dependency-layer | --no-dependency-layer

指定是否将各个函数的依赖关系分成另一层以加快同步过程。

默认值--dependency-layer

--image-repository TEXT

Amazon Elastic Container Registry (Amazon ECR) 存储库的名称,此命令将在其中上传您的函数的映像。对于使用Image包类型声明的函数是必需的。

--image-repositories TEXT

函数与其 Amazon ECR 存储库 URI 的映射。按逻辑 ID 引用函数。以下是示例:

$ sam sync --image-repositories Function1=123456789012.dkr.ecr.us-east-1.amazonaws.com/my-repo

可以在单个命令中多次指定此选项。

--kms-key-id TEXT

Amazon Key Management Service(Amazon KMS) 密钥的 ID,用于对 Amazon S3 存储桶中的静态项目进行加密。如果您未指定此选项,则Amazon SAM使用 Amazon S3 托管的加密密钥。

--metadata

要附加到模板中引用的所有工件的元数据地图。

--notification-arns LIST

与堆栈关联的亚马逊简单通知服务 (Amazon SNS) Service 主题 ARN Amazon CloudFormation 列表。

--parameter-overrides

包含编码为键值对的Amazon CloudFormation参数覆盖的字符串。使用与 Amazon Command Line Interface (Amazon CLI) 相同的格式。例如,ParameterKey=ParameterValue InstanceType=t1.micro

--resource TEXT

指定要同步的资源类型。要同步多个资源,可以多次指定此选项。该选项支持此--code选项。该值必须是下面列出的资源之一--code。例如,--resource AWS::Serverless::Function --resource AWS::Serverless::LayerVersion

--resource-id TEXT

指定要同步的资源 ID。要同步多个资源,可以多次指定此选项。该选项支持此--code选项。例如,--resource-id Function1 --resource-id Function2

--role-arn TEXT

应用变更集时Amazon CloudFormation扮演的 IAM 角色的亚马逊资源名称 (ARN)。

--s3-bucket TEXT

此命令用于上传Amazon CloudFormation模板的亚马逊简单存储服务 (Amazon S3) Service 存储桶的名称。如果您的模板大于 51,200 字节,则需要使用--s3-bucket--resolve-s3选项。如果同时指定--s3-bucket--resolve-s3选项,则会发生错误。

--s3-prefix TEXT

添加到您上传到 Amazon S3 存储桶的项目名称的前缀。前缀名称是 Amazon S3 存储桶的路径名(文件夹名称)。这仅适用于使用Zip包类型声明的函数。

--skip-deploy-sync | --no-skip-deploy-sync

如果不需要初始基础架构同步,请指定--skip-deploy-sync跳过初始基础架构同步。Amazon SAMCLI会将您的本地Amazon SAM模板与已部署的Amazon CloudFormation模板进行比较,并且仅在检测到更改时才执行部署。

指定--no-skip-deploy-sync每次运行时sam sync都执行Amazon CloudFormation部署。

要了解更多信息,请参阅 跳过初始Amazon CloudFormation部署

默认值--skip-deploy-sync

--stack-name TEXT

您的应用程序的Amazon CloudFormation堆栈名称。

此选项是必需的。

--tags LIST

要与已创建或更新的堆栈关联的标签列表。 Amazon CloudFormation还会将这些标签传播到堆栈中支持它的资源。

-t, --template-file, --template PATH

Amazon SAM模板所在的路径和文件名。

注意

如果指定此选项,则仅Amazon SAM部署模板及其指向的本地资源。

-u, --use-container

如果您的函数依赖于具有本机编译依赖关系的包,请使用此选项在Amazon Lambda类似的Docker容器中构建函数。

注意

目前,此选项与不兼容--dependency-layer。如果您--use-container与一起使用--dependency-layer,则会Amazon SAMCLI通知您并继续。--no-dependency-layer

--watch

启动一个进程,监视您的本地应用程序是否有更改,并自动将其同步到。Amazon Web Services 云默认情况下,当您指定此选项时,会在更新应用程序中的所有资源时Amazon SAM同步它们。使用此选项,Amazon SAM执行初始Amazon CloudFormation部署。然后,Amazon SAM使用Amazon服务 API 更新代码资源。 Amazon SAMAmazon CloudFormation用于在更新Amazon SAM模板时更新基础架构资源。