

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

# sam deploy
<a name="sam-cli-command-reference-sam-deploy"></a>

此頁面提供 AWS Serverless Application Model Command Line Interface (AWS SAM CLI) `sam deploy`命令的參考資訊。
+ 如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)
+ 如需使用 AWS SAM CLI`sam deploy`命令的文件，請參閱 [使用 部署簡介 AWS SAM](using-sam-cli-deploy.md)。

`sam deploy` 命令 AWS 雲端 會使用 將應用程式部署到 AWS CloudFormation。

## Usage
<a name="ref-sam-cli-deploy-usage"></a>

```
$ <environment variables> sam deploy <options>
```

## 環境變數
<a name="ref-sam-cli-deploy-env"></a>

`SAM_CLI_POLL_DELAY`  <a name="ref-sam-cli-deploy-env-sam-cli-poll-delay"></a>
設定 Shell 中值為 秒`SAM_CLI_POLL_DELAY`的環境變數，以設定 AWS SAM CLI 檢查 CloudFormation 堆疊狀態的頻率，這在查看調節時非常有用 CloudFormation。此 env 變數用於輪詢在執行 時進行的 `describe_stack` API 呼叫`sam deploy`。  
以下是此變數的範例：  

```
$ SAM_CLI_POLL_DELAY=5 sam deploy
```

## 選項
<a name="ref-sam-cli-deploy-options"></a>

`--capabilities LIST`  <a name="ref-sam-cli-deploy-options-capabilities"></a>
您必須指定才能允許 CloudFormation 建立特定堆疊的功能清單。某些堆疊範本可能包含會影響 許可的資源 AWS 帳戶，例如，透過建立新的 AWS Identity and Access Management (IAM) 使用者。對於這些堆疊，您必須指定此選項來明確認可其功能。唯一有效的值為 `CAPABILITY_IAM` 和 `CAPABILITY_NAMED_IAM`。如果您有 IAM 資源，則可以指定任一功能。如果您有具有自訂名稱的 IAM 資源，則必須指定 `CAPABILITY_NAMED_IAM`。如果您未指定此選項，則操作會傳回`InsufficientCapabilities`錯誤。  
當您部署包含巢狀應用程式的應用程式時，您必須使用 `CAPABILITY_AUTO_EXPAND`來確認應用程式包含巢狀應用程式。如需詳細資訊，請參閱[部署巢狀應用程式](serverless-sam-template-nested-applications.md#serverless-sam-templates-nested-applications-deploying)。

`--config-env TEXT`  <a name="ref-sam-cli-deploy-options-config-env"></a>
在要使用的組態檔案中指定預設參數值的環境名稱。預設值為 `default`。如需關於組態檔案的詳細資訊，請參閱 [AWS SAM CLI 組態檔案](serverless-sam-cli-config.md)。

`--config-file PATH`  <a name="ref-sam-cli-deploy-options-config-file"></a>
組態檔案的路徑和檔案名稱，其中包含要使用的預設參數值。預設值位於專案目錄的根`samconfig.toml`目錄中。如需關於組態檔案的詳細資訊，請參閱 [AWS SAM CLI 組態檔案](serverless-sam-cli-config.md)。

`--confirm-changeset | --no-confirm-changeset`  <a name="ref-sam-cli-deploy-options-confirm-changeset"></a>
提示 AWS SAM CLI確認 是否部署計算的變更集。

`--debug`  <a name="ref-sam-cli-deploy-options-debug"></a>
開啟偵錯記錄以列印 產生的偵錯訊息 AWS SAM CLI，並顯示時間戳記。

`--disable-rollback | --no-disable-rollback`  <a name="ref-sam-cli-deploy-options-disable-rollback"></a>
指定在部署期間發生錯誤時是否要轉返 CloudFormation 堆疊。根據預設，如果在部署期間發生錯誤，您的 CloudFormation 堆疊會回復到最後的穩定狀態。如果您指定 `--disable-rollback`並在部署期間發生錯誤，則在發生錯誤之前建立或更新的資源不會復原。

`--fail-on-empty-changeset | --no-fail-on-empty-changeset`  <a name="ref-sam-cli-deploy-options-fail-on-empty-changeset"></a>
指定如果堆疊沒有變更，是否傳回非零結束碼。預設行為是傳回非零結束代碼。

`--force-upload`  <a name="ref-sam-cli-deploy-options-force-upload"></a>
指定此選項以上傳成品，即使它們符合 Amazon S3 儲存貯體中的現有成品。比對成品會遭到覆寫。

`--guided, -g`  <a name="ref-sam-cli-deploy-options-guided"></a>
指定此選項，讓 AWS SAM CLI使用提示來引導您完成部署。

`--help`  <a name="ref-sam-cli-deploy-options-help"></a>
顯示此訊息並結束。

`--image-repositories TEXT`  <a name="ref-sam-cli-deploy-options-image-repositories"></a>
函數映射至其 Amazon ECR 儲存庫 URI。依其邏輯 ID 參考函數。以下是範例：  

```
$ sam deploy --image-repositories Function1=123456789012.dkr.ecr.us-east-1.amazonaws.com/my-repo
```
您可以在單一命令中多次指定此選項。

`--image-repository TEXT`  <a name="ref-sam-cli-deploy-options-image-repository"></a>
此命令上傳函數映像的 Amazon ECR 儲存庫名稱。使用 `Image`套件類型宣告的函數需要此選項。

`--kms-key-id TEXT`  <a name="ref-sam-cli-deploy-options-kms-key-id"></a>
用來加密 Amazon S3 儲存貯體中靜態成品的 AWS Key Management Service (AWS KMS) 金鑰 ID。如果您未指定此選項，則 AWS SAM 會使用 Amazon S3-managed加密金鑰。

`--metadata`  <a name="ref-sam-cli-deploy-options-metadata"></a>
要連接到範本中參考之所有成品的中繼資料映射。

`--no-execute-changeset`  <a name="ref-sam-cli-deploy-options-no-execute-changeset"></a>
指出是否套用變更集。如果您想要在套用變更集之前檢視堆疊變更，請指定此選項。此命令會 CloudFormation 建立變更集，然後結束而不套用變更集。若要套用變更集，請執行相同的命令，而不使用此選項。

`--no-progressbar`  <a name="ref-sam-cli-deploy-options-no-progressbar"></a>
將成品上傳至 Amazon S3 時，請勿顯示進度列。

`--notification-arns LIST`  <a name="ref-sam-cli-deploy-options-notification-arns"></a>
與堆疊建立 CloudFormation 關聯的 Amazon Simple Notification Service (Amazon SNS) 主題 ARNs 清單。

`--on-failure [ROLLBACK | DELETE | DO_NOTHING]`  <a name="ref-sam-cli-deploy-options-on-failure"></a>
指定堆疊無法建立時要採取的動作。  
下列選項可供使用：  
+ `ROLLBACK` – 將堆疊復原至先前的已知良好狀態。
+ `DELETE` – 如果存在堆疊，則將堆疊復原至先前的已知良好狀態。否則， 會刪除堆疊。
+ `DO_NOTHING` – 既不會轉返，也不會刪除堆疊。效果與 的效果相同`--disable-rollback`。
預設行為是 `ROLLBACK`。  
您可以指定 `--disable-rollback`選項或 `--on-failure`選項，但不能同時指定兩者。

`--parameter-overrides LIST`  <a name="ref-sam-cli-deploy-options-parameter-overrides"></a>
包含 CloudFormation 參數的字串會覆寫編碼為鍵值對的字串。每個覆寫都會使用 格式 `ParameterKey=name,ParameterValue=value`。多個覆寫會以空格分隔。以下是兩個範例：  

```
$ sam deploy --parameter-overrides ParameterKey=value1,ParameterValue=value2
```

```
$ sam deploy --parameter-overrides ParameterKey=value1,ParameterValue=value2 ParameterKey=hello,ParameterValue=world ParameterKey=apple,ParameterValue=banana
```

`--profile TEXT`  <a name="ref-sam-cli-deploy-options-profile"></a>
從您的登入資料檔案中取得 AWS 登入資料的特定設定檔。

`--region TEXT`  <a name="ref-sam-cli-deploy-options-region"></a>
 AWS 區域 要部署到的 。例如 us-east-1。

`--resolve-image-repos`  <a name="ref-sam-cli-deploy-options-resolve-image-repos"></a>
自動建立 Amazon ECR 儲存庫，用於封裝和部署非引導式部署。此選項僅適用於具有`PackageType: Image`指定 的函數和層。如果您指定 `--guided`選項，則 AWS SAM CLI會忽略 `--resolve-image-repos`。  
如果 使用此選項 AWS SAM 自動為函數或層建立任何 Amazon ECR 儲存庫，且您稍後從 AWS SAM 範本中刪除這些函數或層，則會自動刪除對應的 Amazon ECR 儲存庫。

`--resolve-s3`  <a name="ref-sam-cli-deploy-options-resolve-s3"></a>
自動建立 Amazon S3 儲存貯體，用於封裝和部署非引導式部署。如果您指定 `--guided`選項，則 AWS SAM CLI 會忽略 `--resolve-s3`。如果您同時指定 `--s3-bucket`和 `--resolve-s3`選項，則會發生錯誤。

`--role-arn TEXT`  <a name="ref-sam-cli-deploy-options-role-arn"></a>
套用變更集時 CloudFormation 擔任之 IAM 角色的 Amazon Resource Name (ARN)。

`--s3-bucket TEXT`  <a name="ref-sam-cli-deploy-options-s3-bucket"></a>
此命令上傳 CloudFormation 範本的 Amazon S3 儲存貯體名稱。如果您的範本大於 51，200 個位元組，則需要 `--s3-bucket`選項或 `--resolve-s3`選項。如果您同時指定 `--s3-bucket`和 `--resolve-s3`選項，則會發生錯誤。

`--s3-prefix TEXT`  <a name="ref-sam-cli-deploy-options-s3-prefix"></a>
新增至上傳到 Amazon S3 儲存貯體之成品名稱的字首。字首名稱是 Amazon S3 儲存貯體的路徑名稱 （資料夾名稱）。

`--save-params`  <a name="ref-sam-cli-deploy-options-save-params"></a>
將您在命令列提供的參數儲存至 AWS SAM 組態檔案。

`--signing-profiles LIST`  <a name="ref-sam-cli-deploy-options-signing-profiles"></a>
用來簽署部署套件的簽署設定檔清單。此選項會取得索引鍵/值對的清單，其中索引鍵是要簽署的函數或 layer 的名稱，而值是簽署描述檔，選用的描述檔擁有者以 分隔`:`。例如 `FunctionNameToSign=SigningProfileName1 LayerNameToSign=SigningProfileName2:SigningProfileOwner`。

`--stack-name TEXT`  <a name="ref-sam-cli-deploy-options-stack-name"></a>
（必要） 您要部署的 CloudFormation 堆疊名稱。如果您指定現有的堆疊，則命令會更新堆疊。如果您指定新的堆疊，則命令會建立它。

`--tags LIST`  <a name="ref-sam-cli-deploy-options-tags"></a>
要與建立或更新的堆疊建立關聯的標籤清單。 CloudFormation 也會將這些標籤傳播到堆疊中支援該標籤的資源。

`--template-file, --template, -t PATH`  <a name="ref-sam-cli-deploy-options-template-file"></a>
範本 AWS SAM 所在的路徑和檔案名稱。  
如果您指定此選項，則 AWS SAM 只會部署範本及其指向的本機資源。

`--use-json`  <a name="ref-sam-cli-deploy-options-use-json"></a>
 CloudFormation 範本的輸出 JSON。預設輸出為 YAML。

## 範例
<a name="sam-cli-command-reference-sam-deploy-examples"></a>

如需使用 `sam deploy` 子命令的詳細範例和深入演練，請參閱 [使用 部署簡介 AWS SAM](using-sam-cli-deploy.md)。