本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
sam sync
此页面提供了 Amazon Serverless Application Model 命令行界面(Amazon SAM CLI) sam sync
命令的参考信息。
-
有关 Amazon SAM CLI 的简介,请参阅 那是什么 Amazon SAMCLI?。
-
有关使用 Amazon SAM CLI 的文档,请参阅 使用 Amazon SAM CLI。
sam sync
命令将本地应用程序的更改同步到 Amazon Web Services 云。
使用量
$
sam sync
<options>
Options
--base-dir, -s
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 Elastic Container Registry (Amazon ECR) Public 提供的容器映像存储库 URI。指定此选项以使用不同的映像。
您可以在单个命令中多次使用此选项。每种选项都接受一个字符串或一个键值对。
-
字符串 – 指定应用程序中所有资源都将使用的容器映像的 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
选项的情况下此选项才适用,否则会导致错误。 -
--build-in-source | --no-build-in-source
-
提供
--build-in-source
以便直接在源文件夹中生成项目。--build-in-source
选项支持以下运行时和构建方法:-
运行时:
sam init --runtime
选项支持的任何 Node.js 运行时。 -
构建方法:
Makefile
、esbuild
。
--build-in-source
选项与以下选项不兼容:-
--use-container
默认值:
--no-build-in-source
-
--capabilities
LIST
-
为了使 Amazon CloudFormation 能够创建某些堆栈而指定的功能列表。一些堆栈模板中可能包含会影响您在 Amazon Web Services 账户 中的权限的资源。例如,通过创建新的 Amazon Identity and Access Management (IAM) 用户。指定此选项以覆盖默认值。有效值包括:
-
CAPABILITY_IAM
-
CAPABILITY_NAMED_IAM
-
CAPABILITY_RESOURCE_POLICY
-
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。
-
--config-env
TEXT
-
在配置文件中指定要使用的默认参数值的环境名称。默认值为“default”。有关配置文件的详细信息,请参阅 Amazon SAMCLI 配置文件。
--config-file
PATH
-
包含要使用的默认参数值的配置文件的路径和文件名。在项目目录的根目录中,默认值为“
samconfig.toml
”。有关配置文件的详细信息,请参阅 Amazon SAMCLI 配置文件。 --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 S3 存储桶中静态构件的 Amazon Key Management Service (Amazon KMS) 密钥的 ID。如果不指定此选项,则 Amazon SAM 会使用 Amazon S3 托管加密密钥。
--metadata
-
要附加到模板中引用的所有构件的元数据的映射。
--notification-arns
LIST
-
Amazon CloudFormation 与堆栈关联的 Amazon Simple Notification Service (Amazon SNS) 主题 ARN 列表。
--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 角色的 Amazon 资源名称(ARN)。
--s3-bucket
TEXT
-
此命令用于上传 Amazon CloudFormation 模板的 Amazon Simple Storage Service (Amazon S3) 存储桶的名称。如果模板大于 51,200 字节,则需要
--s3-bucket
或--resolve-s3
选项。如果同时指定--s3-bucket
和--resolve-s3
选项,则会出现错误。 --s3-prefix
TEXT
-
上传到 Amazon S3 存储桶的构件的名称中添加的前缀。前缀名称是 Amazon S3 存储桶的路径名称(文件夹名称)。这仅适用于使用
Zip
包类型声明的函数。 --save-params
-
将您在命令行中提供的参数保存到 Amazon SAM 配置文件中。
--skip-deploy-sync | --no-skip-deploy-sync
-
若不需要,则指定
--skip-deploy-sync
以跳过初始基础设施同步。Amazon SAM CLI 会将您的本地 Amazon SAM 模板与已部署的 Amazon CloudFormation 模板进行比较,并且仅在检测到更改时才执行部署。指定
--no-skip-deploy-sync
以便每次运行sam sync
时执行 Amazon CloudFormation 部署。要了解更多信息,请参阅跳过初始 Amazon CloudFormation 部署。
默认值:
--skip-deploy-sync
--stack-name
TEXT
-
应用程序的 Amazon CloudFormation 堆栈名称。
此选项是必需的。
-
列出要与已创建或更新的堆栈关联的标签。Amazon CloudFormation 还会将这些标签传播到堆栈中支持它的资源。
--template-file, --template, -t
PATH
-
Amazon SAM 模板所在位置的路径和文件名。
注意
如果指定此选项,则 Amazon SAM 只会部署模板及其指向的本地资源。
--use-container, -u
-
如果函数依赖于具有本地编译的依赖项的程序包,请使用此选项在类似于 Amazon Lambda 的 Docker 容器中构建函数。
注意
目前,此选项与
--dependency-layer
不兼容。如果您将--use-container
与--dependency-layer
一起使用,则 Amazon SAM CLI 会通知您并继续--no-dependency-layer
。 --watch
-
启动一个进程,监控本地应用程序是否有更改,并自动将其同步到 Amazon Web Services 云。默认情况下,当您指定此选项时,Amazon SAM 会在更新应用程序中的所有资源时进行同步。基于此选项,Amazon SAM 会执行初始 Amazon CloudFormation 部署。然后,Amazon SAM 使用 Amazon 服务 API 更新代码资源。在您更新 Amazon SAM 模板时 Amazon SAM 会使用 Amazon CloudFormation 更新基础设施资源。
--watch-exclude
TEXT
-
禁止文件或文件夹用于文件更改的观测。如果要使用此选项,则还必须提供
--watch
。此选项收到键值对:
-
键:应用程序中 Lambda 函数的逻辑 ID。
-
值:要排除的关联文件名或文件夹。
当您更新使用
--watch-exclude
选项指定的任何文件或文件夹时,Amazon SAM CLI 将不会启动同步。但是,当对其他文件或文件夹的更新启动同步时,这些文件或文件夹将包含在该同步中。您可以在单个命令中多次提供此选项。
-