sam sync - AWS Serverless Application Model

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

sam sync

本页提供以下方面的参考信息 AWS Serverless Application Model 命令行界面 (AWS SAM CLI) sam sync 命令。

sam sync命令将本地应用程序的更改同步到 AWS Cloud.

使用量

$ sam sync <options>

Options

--base-dir, -s DIRECTORY

根据此目录解析函数或层的源代码的相对路径。使用此选项更改源代码文件夹相对路径的解析方式。默认情况下,相对路径是相对于解析的 AWS 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用于您要在构建应用程序时使用的容器镜像。默认情况下, AWS SAM 使用URI来自亚马逊弹性容器注册表 (AmazonECR) Public 的容器镜像存储库。指定此选项以使用不同的映像。

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

  • 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 选项的情况下此选项才适用,否则会导致错误。

--build-in-source | --no-build-in-source

提供 --build-in-source 以便直接在源文件夹中生成项目。

--build-in-source 选项支持以下运行时和构建方法:

  • 运行时 — 任意 Node.js 该sam init --runtime选项支持的运行时间。

  • 构建方法Makefileesbuild

--build-in-source 选项与以下选项不兼容:

  • --use-container

默认值--no-build-in-source

--capabilities LIST

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

  • CAPABILITY_IAM

  • CAPABILITY_NAMED_IAM

  • CAPABILITY_RESOURCE_POLICY

  • CAPABILITY_AUTO_EXPAND

默认值CAPABILITY_NAMED_IAMCAPABILITY_AUTO_EXPAND

--code

默认情况下, AWS 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

要同步代码资源, AWS SAM uses AWS APIs直接提供服务,而不是通过部署 AWS CloudFormation。 要更新你的 AWS CloudFormation 堆叠、运行sam sync --watchsam deploy

--config-env TEXT

在配置文件中指定要使用的默认参数值的环境名称。默认值为“default”。有关配置文件的详细信息,请参阅 AWS SAMCLI 配置文件

--config-file PATH

包含要使用的默认参数值的配置文件的路径和文件名。在项目目录的根目录中,默认值为“samconfig.toml”。有关配置文件的详细信息,请参阅 AWS SAMCLI 配置文件

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

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

默认值--dependency-layer

--image-repository TEXT

此命令用于上传函数映像的亚马逊弹性容器注册表 (AmazonECR) 存储库的名称。对于使用 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

一个人的身份证 AWS Key Management Service (AWS KMS) 用于加密 Amazon S3 存储桶中静态项目的密钥。如果你没有指定这个选项,那么 AWS SAM 使用亚马逊 S3 托管的加密密钥。

--metadata

要附加到模板中引用的所有构件的元数据的映射。

--notification-arns LIST

亚马逊简单通知服务 (AmazonSNS) 主题ARNs列表 AWS CloudFormation 与堆栈关联。

--parameter-overrides

一个包含以下内容的字符串 AWS CloudFormation 参数覆盖编码为键值对的参数。使用与 AWS Command Line Interface (AWS CLI)。 的 AWS SAM CLI format 是显式的键和值关键字,每个替换都用空格分隔。以下是两个示例:

  • --parameter-overrides ParameterKey=hello,ParameterValue=world

  • --parameter-overrides ParameterKey=hello,ParameterValue=world ParameterKey=example1,ParameterValue=example2 ParameterKey=apple,ParameterValue=banana

--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

IAM角色的 Amazon 资源名称 (ARN) AWS CloudFormation 在应用变更集时假设。

--s3-bucket TEXT

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

--s3-prefix TEXT

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

--save-params

将您在命令行中提供的参数保存到 AWS SAM 配置文件。

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

若不需要,则指定 --skip-deploy-sync 以跳过初始基础设施同步。这些区域有: AWS SAM CLI 会比较你当地的 AWS SAM 已部署的模板 AWS CloudFormation 模板并仅在检测到更改时才执行部署。

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

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

默认值--skip-deploy-sync

--stack-name TEXT

的名字 AWS CloudFormation 为您的应用程序提供堆栈。

此选项是必需的。

--tags LIST

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

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

你所在的路径和文件名 AWS SAM 模板已找到。

注意

如果您指定此选项,那么 AWS SAM 仅部署模板及其指向的本地资源。

--use-container, -u

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

注意

目前,此选项与 --dependency-layer 不兼容。如果--use-container与一起使用--dependency-layer, AWS SAM CLI 通知你并继续。--no-dependency-layer

--watch

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

--watch-exclude TEXT

禁止文件或文件夹用于文件更改的观测。如果要使用此选项,则还必须提供 --watch

此选项收到键值对:

  • :应用程序中 Lambda 函数的逻辑 ID。

  • :要排除的关联文件名或文件夹。

更新使用该--watch-exclude选项指定的任何文件或文件夹时, AWS SAM CLI 不会启动同步。但是,当对其他文件或文件夹的更新启动同步时,这些文件或文件夹将包含在该同步中。

您可以在单个命令中多次提供此选项。