本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
sam sync
此頁面提供 AWS Serverless Application Model 命令列介面的參考資訊 (AWS SAM CLI) sam sync
命令。
-
如需 的簡介 AWS SAM CLI,請參閱 什麼是 AWS SAM CLI?
-
有關使用 的文件 AWS SAM CLI,請參閱該 AWS SAMCLI。
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
選項支援的執行期。 -
建置方法 –
Makefile
、esbuild
。
該
--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_IAM
和CAPABILITY_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 --watch或 sam 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 堆疊名稱。
此選項為必要。
-
要與建立或更新的堆疊建立關聯的標籤清單。 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 同步命令的選項。