本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
sam sync
使用Amazon Serverless Application Model命令行界面 (Amazon SAMCLI) sam sync
命令将本地应用程序更改同步到Amazon Web Services 云。
-
有关简介 Amazon SAMCLI,请参阅什么是 Amazon SAMCLI?。
-
有关使用的文档 Amazon SAMCLI,请参阅使用 Amazon SAMCLI。
用量
$
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_IAM
和CAPABILITY_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 --watch或sam 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堆栈名称。
此选项是必需的。
-
要与已创建或更新的堆栈关联的标签列表。 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模板时更新基础架构资源。