sam sync - AWS Serverless Application Model

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

sam sync

此頁面提供 AWS Serverless Application Model 命令列介面的參考資訊 (AWS SAM CLI) sam sync命令。

sam sync 命令會將本機應用程式變更同步至 AWS 雲端。

用量

$ sam sync <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來自 Amazon Elastic Container Registry (Amazon ECR) Public 的容器映像儲存庫。指定此選項以使用不同的映像。

您可以在單一命令中多次使用此選項。每個選項都接受字串或鍵值對。

  • 字串 – 指定應用程式中所有資源將使用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

若要同步程式碼資源, 會APIs直接 AWS SAM 使用 AWS 服務,而不是透過 部署 AWS CloudFormation。若要更新您的 AWS CloudFormation 堆疊,請執行 sam sync --watchsam deploy

--config-env TEXT

在要使用的組態檔案中指定預設參數值的環境名稱。預設值為「預設值」。如需關於組態檔案的詳細資訊,請參閱 AWS SAM CLI 組態檔案

--config-file PATH

包含要使用之預設參數值的組態檔案的路徑和檔案名稱。專案目錄根中的預設值為 "samconfig.toml"。如需關於組態檔案的詳細資訊,請參閱 AWS SAM CLI 組態檔案

--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 儲存貯體中靜態成品的 AWS Key Management Service (AWS KMS) 金鑰 ID。如果您未指定此選項,則 AWS SAM 會使用 Amazon S3-managed加密金鑰。

--metadata

中繼資料映射,可附加到您在範本中參考的所有成品。

--notification-arns LIST

與堆疊ARNs AWS CloudFormation 相關聯的 Amazon Simple Notification Service (Amazon SNS) 主題清單。

--parameter-overrides

包含 AWS CloudFormation 參數覆寫編碼為鍵值對的字串。使用與 AWS Command Line Interface () 相同的格式AWS CLI。的 AWS SAM CLI 格式是明確金鑰和值關鍵字,每個覆寫都會以空格分隔。以下是兩個範例:

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

套用變更集時所 AWS CloudFormation 擔任IAM角色的 Amazon Resource Name (ARN)。

--s3-bucket TEXT

此命令上傳 AWS 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

將您在命令列提供的參數儲存至 AWS SAM 組態檔案。

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

指定在不需要時--skip-deploy-sync略過初始基礎設施同步。 AWS SAM CLI 將比較本機 AWS SAM 範本與部署的 AWS CloudFormation 範本,並僅在偵測到變更時執行部署。

指定每次執行sam sync--no-skip-deploy-sync執行 AWS CloudFormation 部署。

如需進一步了解,請參閱 略過初始 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 雲端。根據預設,當您指定此選項時, 會在您更新應用程式的所有資源時 AWS SAM 同步。使用此選項, AWS SAM 會執行初始 AWS CloudFormation 部署。然後, AWS SAM 使用 AWS 服務APIs更新程式碼資源。 會在您更新 AWS SAM 範本時 AWS CloudFormation , AWS SAM 使用 更新基礎設施資源。

--watch-exclude TEXT

排除無法觀察檔案或資料夾以進行檔案變更。若要使用此選項,--watch也必須提供 。

此選項會收到金鑰值對:

  • 金鑰 – 應用程式中 Lambda 函數的邏輯 ID。

  • – 要排除的關聯檔案名稱或資料夾。

當您更新使用 --watch-exclude選項指定的任何檔案或資料夾時, AWS SAM CLI 不會啟動同步。不過,當其他檔案或資料夾的更新啟動同步時,這些檔案或資料夾會包含在該同步中。

您可以在單一命令中多次提供此選項。

範例

如需使用此命令的範例,請參閱 sam 同步命令的選項