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

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

山姆同步

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

用量

$ sam sync <command> <option> ...

选项

选项 描述
-t, --template-file, --template PATH 您的Amazon SAM模板所在的路径和文件名。

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

--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
--watch 启动一个进程,监视您的本地应用程序是否有更改,并自动将其同步到Amazon Web Services 云。默认情况下,当您指定此选项时,会在更新应用程序中的所有资源时Amazon SAM同步它们。使用此选项,Amazon SAM执行初始Amazon CloudFormation部署。然后,Amazon SAM使用Amazon服务 API 更新代码资源。 Amazon SAMAmazon CloudFormation用于在更新Amazon SAM模板时更新基础架构资源。
--resource-id TEXT 指定要同步的资源 ID。要同步多个资源,可以多次指定此选项。该选项支持此--code选项。例如,--resource-id Function1 --resource-id Function2
--resource TEXT 指定要同步的资源类型。要同步多个资源,可以多次指定此选项。该选项支持此--code选项。必须是以下内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容--code内容之一 例如,--resource AWS::Serverless::Function --resouce AWS::Serverless::LayerVersion
--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

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

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

默认设置为 --dependency-layer

-u, --use-container

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

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

--stack-name TEXT (必需)您的应用程序的Amazon CloudFormation堆栈名称。
--s3-bucket TEXT 此此此命令用于上载您的Amazon CloudFormation模板的 Amazon Simple Storage Service Service Service Service 如果您的模板大于 51,200 字节,则需要使用--s3-bucket--resolve-s3选项。如果您同时指定--s3-bucket--resolve-s3选项,则会出现错误。
--s3-prefix TEXT 您上载到的 Amazon S3 存储桶的工件名称中添加了该前缀。前缀是 Amazon S3 存储桶的路径名称(文件夹名称)。这仅适用于使用Zip包类型声明的函数。
--capabilities LIST 您指定允许创建某些堆栈Amazon CloudFormation的功能列表。一些堆栈模板可能影响您Amazon Web Services 账户的中的Amazon Identity and Access Management权限。默认功能为CAPABILITY_NAMED_IAMCAPABILITY_AUTO_EXPAND。指定此选项可覆盖默认值。有效值包括:
  • CABILITY_IAM

  • CAPABILITY_NAMED_IAM

  • 能力_资源_政策

  • CAPABILITY_AUTO_EXPAND

-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

--parameter-overrides 一个包含以键Amazon CloudFormation和/或对的形式进行编码。使用与Amazon Command Line Interface (Amazon CLI) 相同的格式。例如,ParameterKey=ParameterValue InstanceType=t1.micro
--image-repository TEXT 此此此此用于上传您的函数镜像的 Amazon Elastic Container Registry (Amazon ECR) 存储库的名称。使用Image包类型声明的函数是必需的。
--kms-key-id TEXT 用于加密 Amazon S3 存储桶中静态对象的Amazon Key Management Service (Amazon KMS) 密钥的 ID。如果您未指定此此可Amazon SAM用 Amazon S3 托管式加密密钥。
--role-arn TEXT 应用变更集时Amazon CloudFormation担任的 IAM 角色的 Amazon 资源名称 (ARN)。
--notification-arns LIST 与堆栈关联的 Amazon Simple NoticAmazon CloudFormation ation Service Service (Amazon SNS) 主题 ARN。
--tags LIST 与已创建或更新的堆栈关联的标签列表。 Amazon CloudFormation还可以将这些标签传播到堆栈中支持它的资源。
--metadata 用于附加到您在模板中引用的所有对象的元数据地图。