

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

# AWS SAM 參考
<a name="serverless-sam-reference"></a>

 本節包含 AWS SAM 參考資料。這包括 AWS SAM CLI參考資料，例如命令的 AWS SAM CLI參考資訊，以及其他資訊 AWS SAM CLI，例如組態、版本控制和故障診斷資訊。此外，本節包含 AWS SAM 規格和 AWS SAM 範本的參考資訊，例如連接器、映像儲存庫和部署的參考資訊。

## AWS SAM 規格和 AWS SAM 範本
<a name="serverless-sam-spec"></a>

此 AWS SAM 規格是 Apache 2.0 授權下的開放原始碼規格。 AWS SAM 規格的目前版本在 [AWS SAM 範本](sam-specification.md). AWS SAM specification 中提供簡化的速記語法，您可用來定義無伺服器應用程式的函數、事件、APIs、組態和許可。

您可以透過 AWS SAM 應用程式專案目錄與 AWS SAM 規格互動，這些目錄是執行 **sam init**命令時建立的資料夾和檔案。此目錄包含 AWS SAM 範本，這是定義 AWS 資源的重要檔案。 AWS SAM 範本是 AWS CloudFormation 範本的延伸。如需範本的完整參考 CloudFormation ，請參閱*AWS CloudFormation 《 使用者指南*》中的[範本參考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-reference.html)。

## AWS SAM CLI 命令參考
<a name="serverless-sam-cli"></a>

 AWS Serverless Application Model 命令列界面 (AWS SAM CLI) 是一種命令列工具，可與 AWS SAM 範本和支援的第三方整合搭配使用，以建置和執行無伺服器應用程式。

您可以使用 AWS SAM CLI命令來開發、測試無伺服器應用程式並將其部署到 AWS 雲端。以下是一些 命令的範例 AWS SAM CLI：
+ `sam init` – 如果您是第一次 AWS SAM CLI使用，您可以執行 `sam init`命令，無需任何參數即可建立 Hello World 應用程式。命令會以您選擇的語言產生預先設定的 AWS SAM 範本和範例應用程式程式碼。
+ `sam local invoke` 和 `sam local start-api` – 使用這些命令在本機測試您的應用程式程式碼，然後再將其部署到 AWS 雲端。
+ `sam logs` – 使用此命令來擷取 Lambda 函數產生的日誌。這可協助您在將應用程式部署到 之後進行測試和偵錯 AWS 雲端。
+ `sam package` – 使用此命令將您的應用程式程式碼和相依性綁定到*部署套件*中。您需要部署套件，才能將應用程式上傳至 AWS 雲端。
+ `sam deploy` – 使用此命令將您的無伺服器應用程式部署到 AWS 雲端。它會建立 AWS 資源，並設定 AWS SAM 範本中定義的許可和其他組態。

如需安裝 的指示 AWS SAM CLI，請參閱 [安裝 AWS SAM CLI](install-sam-cli.md)。

## AWS SAM 政策範本
<a name="serverless-policy-temps"></a>

使用 AWS SAM，您可以從政策範本清單中選擇，將函數 AWS Lambda 的許可範圍限定為應用程式使用的資源。如需可用政策範本的清單，請參閱 [政策範本資料表](serverless-policy-templates.md#serverless-policy-template-table)。如需政策範本和 的一般資訊 AWS SAM，請參閱 [AWS SAM 政策範本](serverless-policy-templates.md)。

## 主題
<a name="reference-sam-topics"></a>
+ [AWS SAM 範本](sam-specification.md)
+ [AWS SAM CLI 命令參考](serverless-sam-cli-command-reference.md)
+ [AWS SAM CLI 組態檔案](serverless-sam-cli-config.md)
+  [AWS SAM 連接器參考](reference-sam-connector.md) 
+ [AWS SAM 政策範本](serverless-policy-templates.md)
+ [的影像儲存庫 AWS SAM](serverless-image-repositories.md)
+ [中的遙測 AWS SAM CLI](serverless-sam-telemetry.md)
+ [在 AWS SAM 範本中設定和管理資源存取](sam-permissions.md)

# AWS SAM CLI 命令參考
<a name="serverless-sam-cli-command-reference"></a>

本節包含 命令的 AWS SAM CLI參考資訊。這包括用量的詳細資訊、每個命令可用的不同選項的完整清單，以及其他資訊。適用時，其他資訊會包含引數、環境變數和事件等詳細資訊。如需詳細資訊，請參閱每個命令。如需安裝 的指示 AWS SAM CLI，請參閱 [安裝 AWS SAM CLI](install-sam-cli.md)。

**Topics**
+ [

# sam build
](sam-cli-command-reference-sam-build.md)
+ [

# sam delete
](sam-cli-command-reference-sam-delete.md)
+ [

# sam deploy
](sam-cli-command-reference-sam-deploy.md)
+ [

# sam init
](sam-cli-command-reference-sam-init.md)
+ [

# sam list
](sam-cli-command-reference-sam-list.md)
+ [

# sam local callback
](sam-cli-command-reference-sam-local-callback.md)
+ [

# sam local execution
](sam-cli-command-reference-sam-local-execution.md)
+ [

# sam local generate-event
](sam-cli-command-reference-sam-local-generate-event.md)
+ [

# sam local invoke
](sam-cli-command-reference-sam-local-invoke.md)
+ [

# sam local start-api
](sam-cli-command-reference-sam-local-start-api.md)
+ [

# sam local start-lambda
](sam-cli-command-reference-sam-local-start-lambda.md)
+ [

# sam logs
](sam-cli-command-reference-sam-logs.md)
+ [

# sam package
](sam-cli-command-reference-sam-package.md)
+ [

# sam pipeline bootstrap
](sam-cli-command-reference-sam-pipeline-bootstrap.md)
+ [

# sam pipeline init
](sam-cli-command-reference-sam-pipeline-init.md)
+ [

# sam publish
](sam-cli-command-reference-sam-publish.md)
+ [

# sam remote callback
](sam-cli-command-reference-sam-remote-callback.md)
+ [

# sam remote execution
](sam-cli-command-reference-sam-remote-execution.md)
+ [

# sam remote invoke
](sam-cli-command-reference-remote-invoke.md)
+ [

# sam remote test-event
](sam-cli-command-reference-remote-test-event.md)
+ [

# sam sync
](sam-cli-command-reference-sam-sync.md)
+ [

# sam traces
](sam-cli-command-reference-sam-traces.md)
+ [

# sam validate
](sam-cli-command-reference-sam-validate.md)

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

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

`sam build` 命令會準備應用程式以進行開發人員工作流程中的後續步驟，例如本機測試或部署到 AWS 雲端。

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

```
$ sam build <arguments> <options>
```

## 引數
<a name="ref-sam-cli-build-args"></a>

**Resource ID (資源 ID)**  <a name="ref-sam-cli-build-args-resource-id"></a>
選用。指示 AWS SAM 在 [AWS SAM 範本](what-is-sam-overview.md#what-is-sam-template)中建立宣告的單一資源。指定資源的建置成品將是唯一可用於工作流程中後續命令的建置成品，即 `sam package`和 。 `sam deploy`

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

`--base-dir, -s DIRECTORY`  <a name="ref-sam-cli-build-options-base-dir"></a>
針對此目錄，解析函數或 layer 原始程式碼的相對路徑。如果您想要變更原始程式碼資料夾的相對路徑解析方式，請使用此選項。根據預設，相對路徑會根據範本的位置進行解析 AWS SAM 。  
除了您要建置的根應用程式或堆疊中的資源之外，此選項也會套用巢狀應用程式或堆疊。  
此選項適用於下列資源類型和屬性：  
+ 資源類型：`AWS::Serverless::Function`屬性： `CodeUri`
+ 資源類型：`AWS::Serverless::Function`資源屬性：`Metadata`項目： `DockerContext`
+ 資源類型：`AWS::Serverless::LayerVersion`屬性： `ContentUri`
+ 資源類型：`AWS::Lambda::Function`屬性： `Code`
+ 資源類型：`AWS::Lambda::LayerVersion`屬性： `Content`

`--beta-features | --no-beta-features`  <a name="ref-sam-cli-build-options-beta-features"></a>
允許或拒絕 Beta 版功能。

`--build-dir, -b DIRECTORY`  <a name="ref-sam-cli-build-options-build-dir"></a>
存放建置成品的目錄路徑。此選項會移除此目錄及其所有內容。

`--build-image TEXT`  <a name="ref-sam-cli-build-options-build-image"></a>
您要為組建提取的容器映像的 URI。根據預設， 會從 Amazon ECR Public AWS SAM 提取容器映像。使用此選項從另一個位置提取映像。  
您可以多次指定此選項。此選項的每個執行個體都可以採用字串或鍵值對。如果您指定字串，它是要用於應用程式中所有資源的容器映像的 URI。例如 `sam build --use-container --build-image amazon/aws-sam-cli-build-image-python3.8`。如果您指定金鑰/值對，則金鑰是資源名稱，而值是用於該資源的容器映像的 URI。例如 `sam build --use-container --build-image Function1=amazon/aws-sam-cli-build-image-python3.8`。使用鍵/值對，您可以為不同的資源指定不同的容器映像。  
此選項僅適用於指定 `--use-container`選項時，否則將導致錯誤。

`--build-in-source | --no-build-in-source`  <a name="ref-sam-cli-build-options-build-in-source"></a>
提供 `--build-in-source` 以直接在來源資料夾中建置您的專案。  
`--build-in-source` 選項支援下列執行時間和建置方法：  
+ **執行時間** – `sam init --runtime`選項支援的任何Node.js執行時間。
+ **組建方法** – `Makefile`、`esbuild`。
`--build-in-source` 選項與下列選項不相容：  
+ `--hook-name`
+ `--use-container `
*預設*：`--no-build-in-source`

`--cached | --no-cached`  <a name="ref-sam-cli-build-options-cached"></a>
啟用或停用快取組建。使用此選項可重複使用未從先前 builds 變更的建置成品。 會 AWS SAM 評估您是否變更專案目錄中的任何檔案。根據預設，組建不會快取。如果叫用 `--no-cached`選項，則會覆寫 samconfig.toml 中的`cached = true`設定。  
AWS SAM 不會評估您是否變更了專案所依賴的第三方模組，而您尚未提供特定版本。例如，如果您的 Python 函數包含項目為 `requirements.txt`的檔案`requests=1.x`，而最新的請求模組版本從 變更為 `1.1` `1.2`，則 AWS SAM 在您執行非快取建置之前，不會提取最新版本。

`--cache-dir`  <a name="ref-sam-cli-build-options-cached-dir"></a>
`--cached` 指定 時存放快取成品的目錄。預設快取目錄為 `.aws-sam/cache`。

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

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

`--container-env-var, -e TEXT`  <a name="ref-sam-cli-build-options-container-env-var"></a>
要傳遞至建置容器的環境變數。您可以多次指定此選項。此選項的每個執行個體都會接受金鑰值對，其中金鑰是資源和環境變數，而值是環境變數的值。例如：`--container-env-var Function1.GITHUB_TOKEN=TOKEN1 --container-env-var Function2.GITHUB_TOKEN=TOKEN2`。  
此選項僅適用於指定 `--use-container`選項時，否則將導致錯誤。

`--container-env-var-file, -ef PATH`  <a name="ref-sam-cli-build-options-container-env-var-file"></a>
JSON 檔案的路徑和檔案名稱，其中包含容器環境變數的值。如需容器環境變數檔案的詳細資訊，請參閱 [容器環境變數檔案](serverless-sam-cli-using-build.md#serverless-sam-cli-using-container-environment-file)。  
此選項僅適用於指定 `--use-container`選項時，否則將導致錯誤。

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

`--docker-network TEXT`  <a name="ref-sam-cli-build-options-docker-network"></a>
指定 Lambda Docker容器應連線的現有Docker網路的名稱或 ID，以及預設橋接網路。如果未指定，Lambda 容器只會連線到預設橋接Docker器網路。

`--exclude, -x`  <a name="ref-sam-cli-build-options-exclude"></a>
要從 () 排除的資源名稱`sam build`。例如，如果您的範本包含 `Function1`、 和 `Function2`，`Function3`而且您執行 `sam build --exclude Function2`，`Function3`則只會建置 `Function1`和 。

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

`--hook-name TEXT`  <a name="ref-sam-cli-build-options-hook-name"></a>
用於擴展 AWS SAM CLI功能的勾點名稱。  
接受的值：`terraform`。

`--manifest , -m PATH`  <a name="ref-sam-cli-build-options-manifest"></a>
要使用的自訂相依性資訊清單檔案路徑 （例如 package.json)，而非預設值。

`--mount-symlinks`  <a name="ref-sam-cli-build-options-mount-symlinks"></a>
確保 AWS SAM CLI 一律掛載檔案中存在的符號連結來建置或叫用。這僅適用於頂層目錄上的符號連結 （也就是直接在函數根目錄上的符號連結）。根據預設，不會掛載符號連結，除了在 NodeJS `node_modules`中使用 `build-in-source` 時需要的符號連結。

`--no-use-container`  <a name="ref-sam-cli-build-options-no-use-container"></a>
可讓您使用 IDE 工具組來設定預設行為的選項。您也可以使用 在本機機器中`sam build --no-use-container`執行組建，而不是使用 Docker 容器。

`--parallel`  <a name="ref-sam-cli-build-options-parallel"></a>
啟用平行建置。使用此選項來平行建置 AWS SAM 範本的函數和層。根據預設，函數和層會依序建置。

`--parameter-overrides`  <a name="ref-sam-cli-build-options-parameter-overrides"></a>
（選用） 包含 CloudFormation 參數覆寫編碼為鍵值對的字串。使用與 AWS Command Line Interface () 相同的格式AWS CLI。例如：'`ParameterKey`=`KeyPairName`， `ParameterValue`=`MyKey` `ParameterKey`=`InstanceType`， `ParameterValue`=`t1.micro`'。此選項與 不相容`--hook-name`。

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

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

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

`--skip-prepare-infra`  <a name="ref-sam-cli-build-options-skip-prepare-infra"></a>
如果未進行任何基礎設施變更，請略過準備階段。使用 搭配 `--hook-name`選項。

`--skip-pull-image`  <a name="ref-sam-cli-build-options-skip-pull-image"></a>
指定命令是否應該略過提取 Lambda 執行時間的最新 Docker 映像。

`--template-file, --template, -t PATH`  <a name="ref-sam-cli-build-options-template-file"></a>
 AWS SAM 範本檔案 的路徑和檔案名稱`[default: template.[yaml|yml]]`。此選項與 不相容`--hook-name`。

`--terraform-project-root-path`  <a name="ref-sam-cli-build-options-terraform-project-root-path"></a>
最上層目錄的相對或絕對路徑，其中包含您的Terraform組態檔案或函數原始程式碼。如果這些檔案位於包含Terraform根模組的目錄之外，請使用此選項指定其絕對或相對路徑。此選項需要`--hook-name`將 設定為 `terraform`。

`--use-container`, `-u`  <a name="ref-sam-cli-build-options-use-container"></a>
如果您的函數依賴於具有原生編譯相依性的套件，請使用此選項在類似 Lambda 的 Docker 容器中建置函數。

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

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

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

此頁面提供 AWS Serverless Application Model Command Line Interface (AWS SAM CLI) `sam delete`命令的參考資訊。

如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)

`sam delete` 命令會刪除 CloudFormation 堆疊、封裝並部署至 Amazon S3 和 Amazon ECR 的成品，以及 AWS SAM 範本檔案，藉此刪除 AWS SAM 應用程式。

此命令也會檢查是否已部署 Amazon ECR 配套堆疊，如果是，則提示使用者刪除該堆疊和 Amazon ECR 儲存庫。如果指定 `--no-prompts` ，則依預設會刪除配套堆疊和 Amazon ECR 儲存庫。

## Usage
<a name="sam-cli-command-reference-sam-delete-usage"></a>

```
$ sam delete <options>
```

## 選項
<a name="sam-cli-command-reference-sam-delete-options"></a>

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

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

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

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

`--no-prompts`  <a name="sam-cli-command-reference-sam-delete-options-no-prompts"></a>
指定此選項，讓 以非互動式模式 AWS SAM 運作。必須使用 `--stack-name`選項或在組態`toml`檔案中提供堆疊名稱。

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

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

`--s3-bucket`  <a name="sam-cli-command-reference-sam-delete-options-s3-bucket"></a>
您要刪除的 Amazon S3 儲存貯體路徑。

`--s3-prefix`  <a name="sam-cli-command-reference-sam-delete-options-s3-prefix"></a>
您要刪除的 Amazon S3 儲存貯體字首。

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

`--stack-name TEXT`  <a name="sam-cli-command-reference-sam-delete-options-stack-name"></a>
您要刪除的 CloudFormation 堆疊名稱。

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

下列命令會刪除堆疊 `MY-STACK`。

```
$ sam delete --stack-name MY-STACK
```

下列命令會刪除堆疊`MY-STACK`和 S3 儲存貯體 `sam-s3-demo-bucket`：

```
$ sam delete \
    --stack-name MyStack \
    --s3-bucket MySAMBucket
```

# 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)。

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

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

`sam init` 命令提供選項來初始化新的無伺服器應用程式。

## Usage
<a name="sam-cli-command-reference-sam-init-usage"></a>

```
$ sam init <options>
```

## 選項
<a name="sam-cli-command-reference-sam-init-options"></a>

`--app-template TEXT`  <a name="sam-cli-command-reference-sam-init-options-app-template"></a>
您要使用之受管應用程式範本的識別符。如果您不確定，請呼叫 ，`sam init`而不使用互動式工作流程的選項。  
如果`--no-interactive`已指定 `--location` 且未提供 ，則需要此參數。  
此參數僅適用於 0. AWS SAM CLI30.0 版和更新版本。使用舊版指定此參數會導致錯誤。

`--application-insights | --no-application-insights`  <a name="sam-cli-command-reference-sam-init-options-application-insights"></a>
 為您的應用程式啟用 Amazon CloudWatch Application Insights 監控。如需詳細資訊，請參閱 [使用 CloudWatch Application Insights 監控無 AWS SAM 伺服器應用程式](monitor-app-insights.md)。  
 預設選項為 `--no-application-insights`。

`--architecture, -a [ x86_64 | arm64 ]`  <a name="sam-cli-command-reference-sam-init-options-architecture"></a>
應用程式 Lambda 函數的指示集架構。指定 `x86_64`或 之一`arm64`。

`--base-image [ amazon/dotnet8-base | amazon/dotnet6-base | amazon/java25-base | amazon/java21-base | amazon/java17-base | amazon/java11-base | amazon/nodejs24.x-base | amazon/nodejs22.x-base | amazon/nodejs20.x-base | amazon/nodejs18.x-base | amazon/nodejs16.x-base | amazon/python3.14-base | amazon/python3.13-base | amazon/python3.12-base | amazon/python3.11-base | amazon/python3.10-base | amazon/python3.9-base | amazon/python3.8-base | amazon/ruby3.4-base | amazon/ruby3.3-base | amazon/ruby3.2-base ]`  <a name="sam-cli-command-reference-sam-init-options-base-image"></a>
您應用程式的基礎映像。此選項僅適用於套件類型為 時`Image`。  
如果指定 `--no-interactive` 、`--package-type`指定為 且未`--location`指定 `Image`，則需要此參數。

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

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

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

`--dependency-manager, -d [ gradle | mod | maven | bundler | npm | cli-package | pip ]`  <a name="sam-cli-command-reference-sam-init-options-dependency-manager"></a>
Lambda 執行時間的相依性管理員。

`--extra-content`  <a name="sam-cli-command-reference-sam-init-options-extra-content"></a>
覆寫範本`cookiecutter.json`組態中的任何自訂參數，例如 `{"customParam1": "customValue1", "customParam2":"customValue2"}`。

`--help, -h`  <a name="sam-cli-command-reference-sam-init-options-help"></a>
顯示此訊息並結束。

`--location, -l TEXT`  <a name="sam-cli-command-reference-sam-init-options-location"></a>
範本或應用程式位置 (Git、Mercurial、HTTP/HTTPS、.zip 檔案、路徑）。  
如果指定 `--no-interactive` 且`--app-template`未提供 `--runtime`、 和 `--name`，則需要此參數。  
對於 Git 儲存庫，您必須使用儲存庫根的位置。  
對於本機路徑，範本必須是 .zip 檔案或 [Cookiecutter](https://cookiecutter.readthedocs.io/en/latest/README.html) 格式。

`--name, -n TEXT`  <a name="sam-cli-command-reference-sam-init-options-name"></a>
要產生為目錄的專案名稱。  
如果`--no-interactive`已指定 `--location` 且未提供 ，則需要此參數。

`--no-input`  <a name="sam-cli-command-reference-sam-init-options-no-input"></a>
停用 Cookiecutter 提示，並接受範本組態中定義的 vcf預設值。

`--no-interactive`  <a name="sam-cli-command-reference-sam-init-options-no-interactive"></a>
停用啟動參數的互動式提示，如果遺失任何必要值，則失敗。

`--output-dir, -o PATH`  <a name="sam-cli-command-reference-sam-init-options-output-dir"></a>
已初始化應用程式輸出的位置。

`--package-type [ Zip | Image ]`  <a name="sam-cli-command-reference-sam-init-options-package-type"></a>
範例應用程式的套件類型。 `Zip`會建立 .zip 檔案封存，並`Image`建立容器映像。

`--runtime, -r [ dotnet8 | dotnet6 | java25 | java21 | java17 | java11 | nodejs24.x | nodejs22.x | nodejs20.x | nodejs18.x | nodejs16.x | python3.14 | python3.13 | python3.12 | python3.11 | python3.10 | python3.9 | python3.8 | ruby3.4 | ruby3.3 | ruby3.2 ]`  <a name="sam-cli-command-reference-sam-init-options-runtime"></a>
應用程式的 Lambda 執行時間。此選項僅適用於套件類型為 時`Zip`。  
如果指定 `--no-interactive` 、`--package-type`指定為 且未`--location`指定 `Zip`，則需要此參數。

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

`--tracing | --no-tracing`  <a name="sam-cli-command-reference-sam-init-options-tracing"></a>
為您的 Lambda 函數啟用 AWS X-Ray 追蹤。

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

如需使用 `sam init` 子命令的詳細範例和深入演練，請參閱 [在 中建立您的應用程式 AWS SAM](using-sam-cli-init.md)。

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

此頁面提供 AWS Serverless Application Model Command Line Interface (AWS SAM CLI) `sam list`命令的參考資訊。

如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)

`sam list` 命令會輸出有關無伺服器應用程式中資源和無伺服器應用程式狀態的重要資訊。在部署**sam list**前後使用 在本機和雲端開發期間提供協助。

## Usage
<a name="sam-cli-command-reference-sam-list-usage"></a>

```
$ sam list <options> <subcommand>
```

## 選項
<a name="sam-cli-command-reference-sam-list-options"></a>

`--help, -h`  <a name="sam-cli-command-reference-sam-list-options-help"></a>
顯示此訊息並結束。

## 子命令
<a name="sam-cli-command-reference-sam-list-subcommands"></a>

`endpoints`  <a name="sam-cli-command-reference-sam-list-subcommands-endpoints"></a>
顯示 CloudFormation 堆疊中的雲端和本機端點清單。如需詳細資訊，請參閱[sam list endpoints](sam-cli-command-reference-sam-list-endpoints.md)。

`resources`  <a name="sam-cli-command-reference-sam-list-subcommands-resources"></a>
顯示部署 AWS CloudFormation 時在 中建立的 AWS Serverless Application Model (AWS SAM) 範本中的資源。如需詳細資訊，請參閱[sam list resources](sam-cli-command-reference-sam-list-resources.md)。

`stack-outputs`  <a name="sam-cli-command-reference-sam-list-subcommands-stack-outputs"></a>
顯示來自 AWS SAM 或 CloudFormation 範本的 CloudFormation 堆疊輸出。如需詳細資訊，請參閱[sam list stack-outputs](sam-cli-command-reference-sam-list-stack-outputs.md)。

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

此頁面提供 AWS Serverless Application Model 命令列界面 (AWS SAM CLI) `sam list endpoints`子命令的參考資訊。

如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)

`sam list endpoints` 子命令會顯示您 CloudFormation 堆疊中的雲端和本機端點清單。您可以透過 **sam local**和 **sam sync**命令與這些資源互動。

AWS Lambda 此命令支援 和 Amazon API Gateway 資源類型。

**注意**  
為您的 Amazon API Gateway 資源設定時，支援自訂網域。此命令將輸出自訂網域，而不是預設端點。

## Usage
<a name="sam-cli-command-reference-sam-list-endpoints-usage"></a>

```
$ sam list endpoints <options>
```

## 選項
<a name="sam-cli-command-reference-sam-list-endpoints-options"></a>

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

`--config-file TEXT`  <a name="sam-cli-command-reference-sam-list-endpoints-options-config-file"></a>
組態檔案的路徑和檔案名稱，其中包含要使用的預設參數值。  
*預設值*：`samconfig.toml`在目前的工作目錄中。  
如需關於組態檔案的詳細資訊，請參閱 [AWS SAM CLI 組態檔案](serverless-sam-cli-config.md)。

`--debug`  <a name="sam-cli-command-reference-sam-list-endpoints-options-debug"></a>
開啟偵錯記錄，以列印由具有時間戳記的 AWS SAM CLI產生的偵錯訊息。

`--help, -h`  <a name="sam-cli-command-reference-sam-list-endpoints-options-help"></a>
顯示此訊息並結束。

`--output [json|table]`  <a name="sam-cli-command-reference-sam-list-endpoints-options-output"></a>
指定輸出結果的格式。  
*預設值*：`table`

`--profile TEXT`  <a name="sam-cli-command-reference-sam-list-endpoints-options-profile"></a>
從登入資料檔案選取特定設定檔以取得 AWS 登入資料。

`--region TEXT`  <a name="sam-cli-command-reference-sam-list-endpoints-options-region"></a>
設定服務 AWS 的區域。例如 `us-east-1`。

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

`--stack-name TEXT`  <a name="sam-cli-command-reference-sam-list-endpoints-options-stack-name"></a>
部署堆疊的名稱 CloudFormation 。您可以在應用程式的 `samconfig.toml` 檔案或指定的組態檔案中找到堆疊名稱。  
未指定此選項時，會顯示範本中定義的本機資源。

`--template-file, --template, -t PATH`  <a name="sam-cli-command-reference-sam-list-endpoints-options-template"></a>
AWS SAM 範本檔案。  
*預設值*：`template.[yaml|yml|json]`

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

從名為 的 CloudFormation 堆疊中，以 json 格式顯示已部署資源端點的輸出`test-stack`。

```
$ sam list endpoints --stack-name test-stack --output json
			
[
  {
    "LogicalResourceId": "HelloWorldFunction",
    "PhysicalResourceId": "sam-app-test-list-HelloWorldFunction-H85Y7yIV7ZLq",
    "CloudEndpoint": "https://zt55oi7kbljxjmcoahsj3cknwu0rposq.lambda-url.us-east-1.on.aws/",
    "Methods": "-"
  },
  {
    "LogicalResourceId": "ServerlessRestApi",
    "PhysicalResourceId": "uj80uoe2o2",
    "CloudEndpoint": [
      "https://uj80uoe2o2.execute-api.us-east-1.amazonaws.com/Prod",
      "https://uj80uoe2o2.execute-api.us-east-1.amazonaws.com/Stage"
    ],
    "Methods": [
      "/hello['get']"
    ]
  }
]
```

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

此頁面提供 AWS Serverless Application Model 命令列界面 (AWS SAM CLI) `sam list resources`子命令的參考資訊。

如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)

`sam list resources` 子命令會顯示部署時轉換 AWS CloudFormation 在 AWS SAM 中建立的 AWS Serverless Application Model (AWS SAM) 範本中的資源。

在部署之前**sam list resources**搭配 AWS SAM 範本使用 ，以查看要建立的資源。提供 CloudFormation 堆疊名稱以檢視包含已部署資源的合併清單。

**注意**  
若要從 AWS SAM 範本產生資源清單，會執行範本的本機轉換。此清單中包含將隨條件部署的資源，例如特定區域內的資源。

## Usage
<a name="sam-cli-command-reference-sam-list-resources-usage"></a>

```
$ sam list resources <options>
```

## 選項
<a name="sam-cli-command-reference-sam-list-resources-options"></a>

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

`--config-file TEXT`  <a name="sam-cli-command-reference-sam-list-resources-options-config-file"></a>
組態檔案的路徑和檔案名稱，其中包含要使用的預設參數值。  
*預設值*：`samconfig.toml`在目前的工作目錄中。  
如需關於組態檔案的詳細資訊，請參閱 [AWS SAM CLI 組態檔案](serverless-sam-cli-config.md)。

`--debug`  <a name="sam-cli-command-reference-sam-list-resources-options-debug"></a>
開啟偵錯記錄，以列印由具有時間戳記的 AWS SAM CLI產生的偵錯訊息。

`--help, -h`  <a name="sam-cli-command-reference-sam-list-resources-options-help"></a>
顯示此訊息並結束。

`--output [json|table]`  <a name="sam-cli-command-reference-sam-list-resources-options-output"></a>
指定輸出結果的格式。  
*預設值*：`table`

`--profile TEXT`  <a name="sam-cli-command-reference-sam-list-resources-options-profile"></a>
從登入資料檔案選取特定設定檔以取得 AWS 登入資料。

`--region TEXT`  <a name="sam-cli-command-reference-sam-list-resources-options-region"></a>
設定服務 AWS 的區域。例如 `us-east-1`。

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

`--stack-name TEXT`  <a name="sam-cli-command-reference-sam-list-resources-options-stack-name"></a>
部署堆疊的名稱 CloudFormation 。您可以在應用程式的 `samconfig.toml` 檔案或指定的組態檔案中找到堆疊名稱。  
提供時，範本中的資源邏輯 IDs 將映射至其對應的實體 IDs CloudFormation。若要進一步了解實體 IDs，請參閱*AWS CloudFormation 《 使用者指南*》中的[資源欄位](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html#resources-section-structure-resource-fields)。  
未指定此選項時，會顯示範本中定義的本機資源。

`--template-file, --template, -t PATH`  <a name="sam-cli-command-reference-sam-list-resources-options-"></a>
AWS SAM 範本檔案。  
*預設值*：`template.[yaml|yml|json]`

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

以資料表格式顯示 AWS SAM 範本中本機資源的輸出，以及從名為 的 CloudFormation 堆疊中部署的資源`test-stack`。從與本機範本相同的目錄執行 。

```
$ sam list resources --stack-name test-stack --output table
			
-------------------------------------------------------------------------------------------------------------------------
Logical ID                                                   Physical ID
-------------------------------------------------------------------------------------------------------------------------
HelloWorldFunction                                           sam-app-test-list-HelloWorldFunction-H85Y7yIV7ZLq
HelloWorldFunctionHelloWorldPermissionProd                   sam-app-test-list-
                                                             HelloWorldFunctionHelloWorldPermissionProd-1QH7CPOCBL2IK
HelloWorldFunctionRole                                       sam-app-test-list-HelloWorldFunctionRole-SRJDMJ6F7F41
ServerlessRestApi                                            uj80uoe2o2
ServerlessRestApiDeployment47fc2d5f9d                        pncw5f
ServerlessRestApiProdStage                                   Prod
ServerlessRestApiDeploymentf5716dc08b                        -
-------------------------------------------------------------------------------------------------------------------------
```

# sam list stack-outputs
<a name="sam-cli-command-reference-sam-list-stack-outputs"></a>

此頁面提供 AWS Serverless Application Model 命令列界面 (AWS SAM CLI) `sam list stack-outputs`子命令的參考資訊。

如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)

`sam list stack-outputs` 子命令會顯示來自 AWS Serverless Application Model (AWS SAM) 或 CloudFormation 範本的 AWS CloudFormation 堆疊輸出。如需 的詳細資訊`Outputs`，請參閱*AWS CloudFormation 《 使用者指南*》中的[輸出](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html)。

## Usage
<a name="sam-cli-command-reference-sam-list-stack-outputs-usage"></a>

```
$ sam list stack-outputs <options>
```

## 選項
<a name="sam-cli-command-reference-sam-list-stack-outputs-options"></a>

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

`--config-file TEXT`  <a name="sam-cli-command-reference-sam-list-stack-outputs-options-config-file"></a>
組態檔案的路徑和檔案名稱，其中包含要使用的預設參數值。  
*預設值*：`samconfig.toml`在目前的工作目錄中。  
如需關於組態檔案的詳細資訊，請參閱 [AWS SAM CLI 組態檔案](serverless-sam-cli-config.md)。

`--debug`  <a name="sam-cli-command-reference-sam-list-stack-outputs-options-debug"></a>
開啟偵錯記錄，以列印由具有時間戳記的 AWS SAM CLI產生的偵錯訊息。

`--help, -h`  <a name="sam-cli-command-reference-sam-list-stack-outputs-options-help"></a>
顯示此訊息並結束。

`--output [json|table]`  <a name="sam-cli-command-reference-sam-list-stack-outputs-options-output"></a>
指定輸出結果的格式。  
*預設值*：`table`

`--profile TEXT`  <a name="sam-cli-command-reference-sam-list-stack-outputs-options-profile"></a>
從登入資料檔案選取特定設定檔以取得 AWS 登入資料。

`--region TEXT`  <a name="sam-cli-command-reference-sam-list-stack-outputs-options-region"></a>
設定服務 AWS 的區域。例如 `us-east-1`。

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

`--stack-name TEXT`  <a name="sam-cli-command-reference-sam-list-stack-outputs-options-"></a>
部署堆疊的名稱 CloudFormation 。您可以在應用程式的 `samconfig.toml` 檔案或指定的組態檔案中找到堆疊名稱。  
此選項為必要。

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

以資料表格式顯示 CloudFormation 堆疊中名為 之資源的輸出`test-stack`。

```
$ sam list stack-outputs --stack-name test-stack --output table
			
------------------------------------------------------------------------------------------------------------------------
OutputKey                                OutputValue                              Description
------------------------------------------------------------------------------------------------------------------------
HelloWorldFunctionIamRole                arn:aws:iam::account-number:role/sam-      Implicit IAM Role created for Hello
                                         app-test-list-HelloWorldFunctionRole-    World function
                                         SRJDMJ6F7F41
HelloWorldApi                            https://uj80uoe2o2.execute-api.us-       API Gateway endpoint URL for Prod
                                         east-1.amazonaws.com/Prod/hello/         stage for Hello World function
HelloWorldFunction                       arn:aws:lambda:us-                       Hello World Lambda Function ARN
                                         east-1:account-number:function:sam-app-
                                         test-list-
                                         HelloWorldFunction-H85Y7yIV7ZLq
------------------------------------------------------------------------------------------------------------------------
```

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

此頁面提供 AWS Serverless Application Model Command Line Interface (AWS SAM CLI) `sam local callback`命令的參考資訊。

如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)

`sam local callback` 命令可讓您在開發和測試期間將回呼傳送至本機耐久函數執行。

## Usage
<a name="sam-cli-command-reference-sam-local-callback-usage"></a>

```
$ sam local callback <subcommand> <options>
```

## 選項
<a name="sam-cli-command-reference-sam-local-callback-options"></a>

`--help, -h`  <a name="sam-cli-command-reference-sam-local-callback-options-help"></a>
顯示此訊息並結束。

## 子命令
<a name="sam-cli-command-reference-sam-local-callback-subcommands"></a>

`succeed`  <a name="sam-cli-command-reference-sam-local-callback-subcommands-succeed"></a>
將成功回呼傳送至持久的函數執行。如需詳細資訊，請參閱[sam local callback succeed](sam-cli-command-reference-sam-local-callback-succeed.md)。

`fail`  <a name="sam-cli-command-reference-sam-local-callback-subcommands-fail"></a>
將失敗回呼傳送至持久的函數執行。如需詳細資訊，請參閱[sam local callback fail](sam-cli-command-reference-sam-local-callback-fail.md)。

`heartbeat`  <a name="sam-cli-command-reference-sam-local-callback-subcommands-heartbeat"></a>
將活動訊號回呼傳送至持久的函數執行。如需詳細資訊，請參閱[sam local callback heartbeat](sam-cli-command-reference-sam-local-callback-heartbeat.md)。

# sam local callback succeed
<a name="sam-cli-command-reference-sam-local-callback-succeed"></a>

將成功回呼傳送至持久的函數執行。

## Usage
<a name="ref-sam-cli-local-callback-succeed-usage"></a>

```
$ sam local callback succeed CALLBACK_ID [OPTIONS]
```

## 必要的引數
<a name="ref-sam-cli-local-callback-succeed-arguments"></a>

`CALLBACK_ID`  
要傳送成功回應的回呼的唯一識別符。

## 選項
<a name="ref-sam-cli-local-callback-succeed-options"></a>

`-r, --result TEXT`  
成功結果承載做為字串。

`--region TEXT`  
設定服務的 AWS 區域 （例如 `us-east-1`)。

`--profile TEXT`  
從登入資料檔案選取特定設定檔以取得 AWS 登入資料。

`--config-env TEXT`  
在組態檔案中指定預設參數值的環境名稱。預設：`default`

`--config-file TEXT`  
包含預設參數值的組態檔案。預設：`samconfig.toml`

`--save-params`  
將透過命令列提供的參數儲存至組態檔案。

`--beta-features / --no-beta-features`  
啟用/停用 Beta 版功能。

`--debug`  
開啟偵錯記錄以列印 CLI AWS SAM 產生的偵錯訊息，並顯示時間戳記。

`-h, --help`  
顯示此訊息並結束。

## 範例
<a name="ref-sam-cli-local-callback-succeed-examples"></a>

傳送沒有結果的成功回呼：

```
$ sam local callback succeed my-callback-id
```

傳送成功回呼與結果：

```
$ sam local callback succeed my-callback-id --result 'Task completed successfully'
```

使用簡短選項傳送成功回呼：

```
$ sam local callback succeed my-callback-id -r 'Success result'
```

# sam local callback fail
<a name="sam-cli-command-reference-sam-local-callback-fail"></a>

將失敗回呼傳送至持久的函數執行。

## Usage
<a name="ref-sam-cli-local-callback-fail-usage"></a>

```
$ sam local callback fail CALLBACK_ID [OPTIONS]
```

## 必要的引數
<a name="ref-sam-cli-local-callback-fail-arguments"></a>

`CALLBACK_ID`  
要傳送失敗回應的回呼的唯一識別符。

## 選項
<a name="ref-sam-cli-local-callback-fail-options"></a>

`--error-data TEXT`  
其他錯誤資料。

`--stack-trace TEXT`  
堆疊追蹤項目。此選項可指定多次。

`--error-type TEXT`  
錯誤類型。

`--error-message TEXT`  
詳細的錯誤訊息。

`--region TEXT`  
設定服務的 AWS 區域 （例如 `us-east-1`)。

`--profile TEXT`  
從登入資料檔案選取特定設定檔以取得 AWS 登入資料。

`--config-env TEXT`  
在組態檔案中指定預設參數值的環境名稱。預設：`default`

`--config-file TEXT`  
包含預設參數值的組態檔案。預設：`samconfig.toml`

`--save-params`  
將透過命令列提供的參數儲存至組態檔案。

`--beta-features / --no-beta-features`  
啟用/停用 Beta 版功能。

`--debug`  
開啟偵錯記錄以列印 CLI AWS SAM 產生的偵錯訊息，並顯示時間戳記。

`-h, --help`  
顯示此訊息並結束。

## 範例
<a name="ref-sam-cli-local-callback-fail-examples"></a>

傳送沒有參數的失敗回呼：

```
$ sam local callback fail my-callback-id
```

傳送失敗回呼並顯示錯誤訊息：

```
$ sam local callback fail my-callback-id --error-message 'Task failed'
```

使用所有參數傳送失敗回呼：

```
$ sam local callback fail my-callback-id --error-message 'Task failed' --error-type 'ValidationError' --stack-trace 'at line 42' --error-data '{"code": 500}'
```

# sam local callback heartbeat
<a name="sam-cli-command-reference-sam-local-callback-heartbeat"></a>

將活動訊號回呼傳送至持久的函數執行。

## Usage
<a name="ref-sam-cli-local-callback-heartbeat-usage"></a>

```
$ sam local callback heartbeat CALLBACK_ID [OPTIONS]
```

## 必要的引數
<a name="ref-sam-cli-local-callback-heartbeat-arguments"></a>

`CALLBACK_ID`  
要向其傳送活動訊號的回呼的唯一識別符。

## 選項
<a name="ref-sam-cli-local-callback-heartbeat-options"></a>

`--region TEXT`  
設定服務的 AWS 區域 （例如 `us-east-1`)。

`--profile TEXT`  
從登入資料檔案選取特定設定檔以取得 AWS 登入資料。

`--config-env TEXT`  
在組態檔案中指定預設參數值的環境名稱。預設：`default`

`--config-file TEXT`  
包含預設參數值的組態檔案。預設：`samconfig.toml`

`--save-params`  
將透過命令列提供的參數儲存至組態檔案。

`--beta-features / --no-beta-features`  
啟用/停用 Beta 版功能。

`--debug`  
開啟偵錯記錄以列印 CLI AWS SAM 產生的偵錯訊息，並顯示時間戳記。

`-h, --help`  
顯示此訊息並結束。

## 範例
<a name="ref-sam-cli-local-callback-heartbeat-examples"></a>

傳送活動訊號回呼：

```
$ sam local callback heartbeat my-callback-id
```

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

此頁面提供 AWS Serverless Application Model Command Line Interface (AWS SAM CLI) `sam local execution`命令的參考資訊。

如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)

`sam local execution` 命令可讓您在開發和測試期間管理和檢查本機耐久函數執行。

**注意**  
這些命令可能不需要存取 AWS 登入資料。

## Usage
<a name="sam-cli-command-reference-sam-local-execution-usage"></a>

```
$ sam local execution <subcommand> <options>
```

## 選項
<a name="sam-cli-command-reference-sam-local-execution-options"></a>

`--help, -h`  <a name="sam-cli-command-reference-sam-local-execution-options-help"></a>
顯示此訊息並結束。

## 子命令
<a name="sam-cli-command-reference-sam-local-execution-subcommands"></a>

`get`  <a name="sam-cli-command-reference-sam-local-execution-subcommands-get"></a>
取得耐久函數執行的詳細資訊。如需詳細資訊，請參閱[sam local execution get](sam-cli-command-reference-sam-local-execution-get.md)。

`history`  <a name="sam-cli-command-reference-sam-local-execution-subcommands-history"></a>
取得持久函數執行的執行歷史記錄。如需詳細資訊，請參閱[sam local execution history](sam-cli-command-reference-sam-local-execution-history.md)。

`stop`  <a name="sam-cli-command-reference-sam-local-execution-subcommands-stop"></a>
停止耐用的函數執行。如需詳細資訊，請參閱[sam local execution stop](sam-cli-command-reference-sam-local-execution-stop.md)。

# sam local execution get
<a name="sam-cli-command-reference-sam-local-execution-get"></a>

擷取特定耐用函數執行的詳細資訊。

**注意**  
此命令可能不需要存取 AWS 登入資料。

## Usage
<a name="ref-sam-cli-local-execution-get-usage"></a>

```
$ sam local execution get DURABLE_EXECUTION_ARN [OPTIONS]
```

## 必要的引數
<a name="ref-sam-cli-local-execution-get-arguments"></a>

`DURABLE_EXECUTION_ARN`  
要擷取詳細資訊之耐久函數執行的 Amazon Resource Name (ARN)。

## 選項
<a name="ref-sam-cli-local-execution-get-options"></a>

`--format [summary|json]`  
輸出格式。預設：`summary`

`--region TEXT`  
設定服務的 AWS 區域 （例如 `us-east-1`)。

`--profile TEXT`  
從登入資料檔案選取特定設定檔以取得 AWS 登入資料。

`--config-env TEXT`  
在組態檔案中指定預設參數值的環境名稱。預設：`default`

`--config-file TEXT`  
包含預設參數值的組態檔案。預設：`samconfig.toml`

`--save-params`  
將透過命令列提供的參數儲存至組態檔案。

`--beta-features / --no-beta-features`  
啟用/停用 Beta 版功能。

`--debug`  
開啟偵錯記錄以列印 CLI AWS SAM 產生的偵錯訊息，並顯示時間戳記。

`-h, --help`  
顯示此訊息並結束。

## 範例
<a name="ref-sam-cli-local-execution-get-examples"></a>

取得預設摘要格式的執行詳細資訊：

```
$ sam local execution get arn:aws:lambda:us-east-1:123456789012:function:MyFunction:$LATEST/durable-execution/my-execution-name/my-execution-id
```

取得 JSON 格式的執行詳細資訊：

```
$ sam local execution get arn:aws:lambda:us-east-1:123456789012:function:MyFunction:$LATEST/durable-execution/my-execution-name/my-execution-id --format json
```

# sam local execution history
<a name="sam-cli-command-reference-sam-local-execution-history"></a>

取得持久函數執行的執行歷史記錄。

## Usage
<a name="ref-sam-cli-local-execution-history-usage"></a>

```
$ sam local execution history EXECUTION_ID [OPTIONS]
```

## 必要的引數
<a name="ref-sam-cli-local-execution-history-arguments"></a>

`EXECUTION_ID`  
要擷取歷史記錄之耐久函數執行的唯一識別符。

## 選項
<a name="ref-sam-cli-local-execution-history-options"></a>

`--format [table|json]`  
輸出格式。預設：`table`

`--region TEXT`  
設定服務的 AWS 區域 （例如 `us-east-1`)。

`--profile TEXT`  
從登入資料檔案選取特定設定檔以取得 AWS 登入資料。

`--config-env TEXT`  
在組態檔案中指定預設參數值的環境名稱。預設：`default`

`--config-file TEXT`  
包含預設參數值的組態檔案。預設：`samconfig.toml`

`--save-params`  
將透過命令列提供的參數儲存至組態檔案。

`--beta-features / --no-beta-features`  
啟用/停用 Beta 版功能。

`--debug`  
開啟偵錯記錄以列印 CLI AWS SAM 產生的偵錯訊息，並顯示時間戳記。

`-h, --help`  
顯示此訊息並結束。

## 範例
<a name="ref-sam-cli-local-execution-history-examples"></a>

取得資料表格式的執行歷史記錄：

```
$ sam local execution history my-execution-id
```

取得 JSON 格式的執行歷史記錄：

```
$ sam local execution history my-execution-id --format json
```

# sam local execution stop
<a name="sam-cli-command-reference-sam-local-execution-stop"></a>

停止執行中的耐用函數執行。

**注意**  
此命令可能不需要存取 AWS 登入資料。

## Usage
<a name="ref-sam-cli-local-execution-stop-usage"></a>

```
$ sam local execution stop DURABLE_EXECUTION_ARN [OPTIONS]
```

## 必要的引數
<a name="ref-sam-cli-local-execution-stop-arguments"></a>

`DURABLE_EXECUTION_ARN`  
要停止之耐久函數執行的 Amazon Resource Name (ARN)。

## 選項
<a name="ref-sam-cli-local-execution-stop-options"></a>

`--error-message TEXT`  
要與停止的執行建立關聯的錯誤訊息。

`--error-type TEXT`  
要與停止的執行建立關聯的錯誤類型。

`--error-data TEXT`  
要與停止的執行建立關聯的錯誤資料。

`--stack-trace TEXT`  
堆疊追蹤項目。此選項可指定多次。

`--region TEXT`  
設定服務的 AWS 區域 （例如 `us-east-1`)。

`--profile TEXT`  
從登入資料檔案選取特定設定檔以取得 AWS 登入資料。

`--config-env TEXT`  
在組態檔案中指定預設參數值的環境名稱。預設：`default`

`--config-file TEXT`  
包含預設參數值的組態檔案。預設：`samconfig.toml`

`--save-params`  
將透過命令列提供的參數儲存至組態檔案。

`--beta-features / --no-beta-features`  
啟用/停用 Beta 版功能。

`--debug`  
開啟偵錯記錄以列印 CLI AWS SAM 產生的偵錯訊息，並顯示時間戳記。

`-h, --help`  
顯示此訊息並結束。

## 範例
<a name="ref-sam-cli-local-execution-stop-examples"></a>

在沒有錯誤詳細資訊的情況下停止執行：

```
$ sam local execution stop arn:aws:lambda:us-east-1:123456789012:function:MyFunction:$LATEST/durable-execution/my-execution-name/my-execution-id
```

使用錯誤訊息和類型停止執行：

```
$ sam local execution stop arn:aws:lambda:us-east-1:123456789012:function:MyFunction:$LATEST/durable-execution/my-execution-name/my-execution-id --error-message "Execution cancelled" --error-type "UserCancellation"
```

使用完整錯誤詳細資訊和堆疊追蹤停止執行：

```
$ sam local execution stop arn:aws:lambda:us-east-1:123456789012:function:MyFunction:$LATEST/durable-execution/my-execution-name/my-execution-id --error-message "Task failed" --error-type "TaskFailure" --error-data '{"reason":"timeout"}' --stack-trace "at function1()" --stack-trace "at function2()"
```

# sam local generate-event
<a name="sam-cli-command-reference-sam-local-generate-event"></a>

此頁面提供 AWS Serverless Application Model 命令列界面 (AWS SAM CLI) `sam local generate-event`子命令的參考資訊。
+ 如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)
+ 如需使用 AWS SAM CLI`sam local generate-event`命令的文件，請參閱 [使用 進行測試的簡介 sam local generate-event](using-sam-cli-local-generate-event.md)。

`sam local generate-event` 子命令會為支援的 產生事件承載範例 AWS 服務。

## Usage
<a name="ref-sam-cli-local-generate-event-usage"></a>

```
$ sam local generate-event <options> <service> <event> <event-options>
```

## 選項
<a name="ref-sam-cli-local-generate-event-options"></a>

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

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

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

## 服務
<a name="ref-sam-cli-local-generate-event-service"></a>

若要查看支援的 服務清單，請執行下列動作：

```
$ sam local generate-event
```

## 事件
<a name="ref-sam-cli-local-generate-event-event"></a>

若要查看可為每個服務產生的支援事件清單，請執行下列動作：

```
$ sam local generate-event <service>
```

## 事件選項
<a name="ref-sam-cli-local-generate-event-event-options"></a>

若要查看您可以修改的支援事件選項清單，請執行下列動作：

```
$ sam local generate-event <service> <event> --help
```

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

如需使用 `sam local generate-event` 子命令的範例，請參閱 [產生範例事件](using-sam-cli-local-generate-event.md#using-sam-cli-local-generate-event-generate)。

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

此頁面提供 AWS Serverless Application Model 命令列界面 (AWS SAM CLI) `sam local invoke`子命令的參考資訊。
+ 如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)
+ 如需使用 AWS SAM CLI `sam local invoke` 子命令的文件，請參閱 [使用 進行測試的簡介 sam local invoke](using-sam-cli-local-invoke.md)。

`sam local invoke` 子命令會在本機啟動 AWS Lambda 函數的一次性調用。

**注意**  
不建議在不受信任的程式碼中使用 SAM CLI 的本機調用功能。若要與本機環境完全隔離，請直接在 Lambda 服務中執行程式碼。

**注意**  
對於耐用的函數， `sam local invoke`支援使用自動檢查點和重播的狀態執行。容器會在持久的函數執行期間保持執行，以處理狀態持久性和恢復。

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

```
$ sam local invoke <arguments> <options>
```

**注意**  
如果您在 AWS SAM 範本中定義了多個函數，請提供您要叫用的函數邏輯 ID。

## 引數
<a name="ref-sam-cli-local-invoke-args"></a>

**Resource ID (資源 ID)**  <a name="ref-sam-cli-local-invoke-args-resource-id"></a>
要叫用的 Lambda 函數 ID。  
此為選用引數。如果您的應用程式包含單一 Lambda 函數，CLI AWS SAM 會叫用它。如果您的應用程式包含多個函數，請提供要叫用的函數 ID。  
*有效值*：資源的邏輯 ID 或資源 ARN。

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

`--add-host LIST`  <a name="ref-sam-cli-local-invoke-options-add-host"></a>
將主機名稱傳遞至 Docker 容器主機檔案的 IP 地址映射。此參數可以多次傳遞。  

**Example**  
範例：`--add-host example.com:127.0.0.1`

`--beta-features | --no-beta-features`  <a name="ref-sam-cli-local-invoke-options-beta-features"></a>
允許或拒絕 Beta 版功能。

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

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

`--container-env-vars`  <a name="ref-sam-cli-local-invoke-options-container-env-vars"></a>
（選用） 在本機偵錯時，將環境變數傳遞至 Lambda 函數映像容器。

`--container-host TEXT`  <a name="ref-sam-cli-local-invoke-options-container-host"></a>
本機模擬 Lambda 容器的主機。預設值為 `localhost`。如果您想要在 macOS 的 Docker 容器中執行 AWS SAM CLI ，您可以指定 `host.docker.internal`。如果您想要在與 不同的主機上執行容器 AWS SAM CLI，您可以指定遠端主機的 IP 地址。

`--container-host-interface TEXT`  <a name="ref-sam-cli-local-invoke-options-container-host-interface"></a>
容器連接埠應繫結之主機網路介面的 IP 地址。預設值為 `127.0.0.1`。使用 `0.0.0.0` 繫結至所有介面。

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

`--debug-args TEXT`  <a name="ref-sam-cli-local-invoke-options-debug-args"></a>
要傳遞給偵錯工具的其他引數。

`--debug-port, -d TEXT`  <a name="ref-sam-cli-local-invoke-options-debug-port"></a>
指定時， 會以偵錯模式啟動 Lambda 函數容器，並在本機主機上公開此連接埠。

`--debugger-path TEXT`  <a name="ref-sam-cli-local-invoke-options-debugger-path"></a>
掛載至 Lambda 容器之偵錯工具的主機路徑。

`--docker-network TEXT`  <a name="ref-sam-cli-local-invoke-options-docker-network"></a>
Lambda Docker 容器應連線的現有 Docker 網路的名稱或 ID，以及預設橋接網路。如果未指定，Lambda 容器只會連線到預設橋接器 Docker 網路。

`--docker-volume-basedir, -v TEXT`  <a name="ref-sam-cli-local-invoke-options-docker-volume-basedir"></a>
 AWS SAM 檔案存在的基礎目錄位置。如果 Docker 在遠端機器上執行，您必須掛載 AWS SAM Docker 機器上檔案所在的路徑，並修改此值以符合遠端機器。

`--durable-execution-name TEXT`  <a name="ref-sam-cli-local-invoke-options-durable-execution-name"></a>
持久性執行的名稱 （僅適用於持久性函數）

`--env-vars, -n PATH`  <a name="ref-sam-cli-local-invoke-options-env-vars"></a>
包含 Lambda 函數環境變數值的 JSON 或 `.env` 檔案。系統會自動偵測檔案格式。如需環境變數檔案的詳細資訊，請參閱 [環境變數檔案](serverless-sam-cli-using-invoke.md#serverless-sam-cli-using-invoke-environment-file)。

`--event, -e PATH`  <a name="ref-sam-cli-local-invoke-options-event"></a>
包含事件資料的 JSON 檔案，會在叫用時傳遞至 Lambda 函數。如果您未指定此選項，則不會假設任何事件。若要從 輸入 JSON`stdin`，您必須傳入值 '-'。如需不同 AWS 服務的事件訊息格式詳細資訊，請參閱《 *AWS Lambda 開發人員指南*》中的[使用其他 服務](https://docs.aws.amazon.com/lambda/latest/dg/lambda-services.html)。

`--force-image-build`  <a name="ref-sam-cli-local-invoke-options-force-image-build"></a>
指定 AWS SAM CLI是否應重建用於使用 layer 叫用 Lambda 函數的映像。

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

`--hook-name TEXT`  <a name="ref-sam-cli-local-invoke-options-hook-name"></a>
用於擴展 AWS SAM CLI功能的勾點名稱。  
接受的值：`terraform`。

`--invoke-image TEXT`  <a name="ref-sam-cli-local-invoke-options-invoke-image"></a>
您要用於本機函數調用之容器映像的 URI。根據預設， 會從 Amazon ECR Public AWS SAM 提取容器映像 （列於 )[的影像儲存庫 AWS SAM](serverless-image-repositories.md)。使用此選項從另一個位置提取映像。  
例如 `sam local invoke MyFunction --invoke-image amazon/aws-sam-cli-emulation-image-python3.8`。

`--layer-cache-basedir DIRECTORY`  <a name="ref-sam-cli-local-invoke-options-layer-cache-basedir"></a>
指定下載範本所用層的基礎目錄位置。

`--log-file, -l TEXT`  <a name="ref-sam-cli-local-invoke-options-log-file"></a>
要傳送執行期日誌的日誌檔案。

`--mount-symlinks`  <a name="ref-sam-cli-local-invoke-options-mount-symlinks"></a>
確保 AWS SAM CLI 一律掛載檔案中存在的符號連結，以建置或叫用。這僅適用於頂層目錄上的符號連結 （也就是直接在函數根目錄上的符號連結）。根據預設，符號連結不會掛載，除了在 NodeJS `node_modules`中使用 `build-in-source` 時需要的符號連結。

`--no-event`  <a name="ref-sam-cli-local-invoke-options-no-event"></a>
使用空白事件叫用 函數。

`--no-memory-limit`  <a name="ref-sam-cli-local-invoke-options-no-memory-limit"></a>
在本機調用期間移除容器中的記憶體限制，即使 AWS SAM 範本中已設定記憶體也一樣。

`--parameter-overrides`  <a name="ref-sam-cli-local-invoke-options-parameter-overrides"></a>
包含 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`

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

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

`--runtime TEXT`  <a name="ref-sam-cli-local-invoke-options-runtime"></a>
使用指定的執行時間在本機叫用 Lambda 函數。這會覆寫 `template.yml` 檔案中定義的執行時間。這也允許使用不同的執行時間測試 Lambda 函數，而無需修改原始函數組態。

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

`--shutdown`  <a name="ref-sam-cli-local-invoke-options-shutdown"></a>
在調用完成後模擬關機事件，以測試關機行為的延伸處理。

`--skip-prepare-infra`  <a name="ref-sam-cli-local-invoke-options-skip-prepare-infra"></a>
如果未進行任何基礎設施變更，請略過準備階段。使用 搭配 `--hook-name`選項。

`--skip-pull-image`  <a name="ref-sam-cli-local-invoke-options-skip-pull-image"></a>
根據預設， 會 AWS SAM CLI檢查 Lambda 最新的遠端執行期環境，並自動更新本機映像以保持同步。  
指定此選項可略過提取 Lambda 執行時間環境的最新Docker映像。

`--template, -t PATH`  <a name="ref-sam-cli-local-invoke-options-template"></a>
 AWS SAM 範本檔案。  
此選項與 不相容`--hook-name`。  
如果您指定此選項， 只會 AWS SAM 載入範本及其指向的本機資源。

`--tenant-id TEXT`  <a name="ref-sam-cli-local-invoke-options-tenancyconfig"></a>
多租用戶 Lambda 函數的租用戶 ID。用來確保不同租用戶之間的運算隔離。叫用使用租戶隔離模式設定的函數時為必要。

`--terraform-plan-file`  <a name="ref-sam-cli-local-invoke-options-terraform-plan-file"></a>
搭配 使用 時，本機Terraform計劃檔案的 AWS SAM CLI相對或絕對路徑Terraform Cloud。此選項需要`--hook-name`將 設定為 `terraform`。

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

下列範例使用產生的事件進行本機測試，方法是使用`s3.json`事件在本機叫用 Lambda 函數

```
$ sam local invoke --event events/s3.json S3JsonLoggerFunction
```

下列範例` HelloWorldFunction`使用 Python 3.11 執行時間測試函數

```
$ sam local invoke --runtime python3.11 HelloWorldFunction
```

下列範例會測試` HelloWorldFunction`具有耐久執行名稱的函數

```
$ sam local invoke HelloWorldFunction --durable-execution-name my-execution
```

# sam local start-api
<a name="sam-cli-command-reference-sam-local-start-api"></a>

此頁面提供 AWS Serverless Application Model 命令列界面 (AWS SAM CLI) `sam local start-api`子命令的參考資訊。
+ 如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)
+ 如需使用 AWS SAM CLI `sam local start-api` 子命令的文件，請參閱 [使用 進行測試的簡介 sam local start-api](using-sam-cli-local-start-api.md)。

`sam local start-api` 子命令 AWS Lambda 會在本機執行函數，以透過本機 HTTP 伺服器主機進行測試。

## Usage
<a name="ref-sam-cli-local-start-api-usage"></a>

```
$ sam local start-api <options>
```

## 選項
<a name="ref-sam-cli-local-start-api-options"></a>

`--add-host LIST`  <a name="ref-sam-cli-local-start-api-options-add-host"></a>
將主機名稱傳遞至 Docker 容器主機檔案的 IP 地址映射。此參數可以多次傳遞。  

**Example**  
範例：`--add-host example.com:127.0.0.1`

`--beta-features | --no-beta-features`  <a name="ref-sam-cli-local-start-api-options-beta-features"></a>
允許或拒絕 Beta 版功能。

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

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

`--container-env-vars`  <a name="ref-sam-cli-local-start-api-options-container-env-vars"></a>
選用。在本機偵錯時，將環境變數傳遞至映像容器。

`--container-host TEXT`  <a name="ref-sam-cli-local-start-api-options-container-host"></a>
本機模擬 Lambda 容器的主機。預設值為 `localhost`。如果您想要在 macOS 的 Docker 容器中執行 AWS SAM CLI ，您可以指定 `host.docker.internal`。如果您想要在與 不同的主機上執行容器 AWS SAM CLI，您可以指定遠端主機的 IP 地址。

`--container-host-interface TEXT`  <a name="ref-sam-cli-local-start-api-options-container-host-interface"></a>
容器連接埠應繫結之主機網路介面的 IP 地址。預設值為 `127.0.0.1`。使用 `0.0.0.0` 繫結至所有介面。

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

`--debug-args TEXT`  <a name="ref-sam-cli-local-start-api-options-debug-args"></a>
要傳遞給偵錯工具的其他引數。

`--debug-function`  <a name="ref-sam-cli-local-start-api-options-debug-function"></a>
選用。指定指定 時要套用偵錯選項的 Lambda `--warm-containers` 函數。此參數適用於 `--debug-port`、 `--debugger-path`和 `--debug-args`。

`--debug-port, -d TEXT`  <a name="ref-sam-cli-local-start-api-options-debug-port"></a>
指定時， 會以偵錯模式啟動 Lambda 函數容器，並在本機主機上公開此連接埠。

`--debugger-path TEXT`  <a name="ref-sam-cli-local-start-api-options-debugger-path"></a>
要掛載到 Lambda 容器的偵錯工具的主機路徑。

`--docker-network TEXT`  <a name="ref-sam-cli-local-start-api-options-docker-network"></a>
Lambda Docker 容器應連線的現有 Docker 網路的名稱或 ID，以及預設橋接網路。如果未指定，Lambda 容器只會連線到預設橋接器 Docker 網路。

` --docker-volume-basedir, -v TEXT`  <a name="ref-sam-cli-local-start-api-options-docker-volume-basedir"></a>
 AWS SAM 檔案存在的基礎目錄位置。如果 Docker 在遠端機器上執行，您必須掛載 AWS SAM Docker 機器上檔案所在的路徑，並修改此值以符合遠端機器。

`--env-vars, -n PATH`  <a name="ref-sam-cli-local-start-api-options-env-vars"></a>
包含 Lambda 函數環境變數值的 JSON 或 `.env` 檔案。系統會自動偵測檔案格式。

`--force-image-build`  <a name="ref-sam-cli-local-start-api-options-force-image-build"></a>
指定 是否 AWS SAM CLI應重建用於使用 layer 叫用函數的映像。

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

`--hook-name TEXT`  <a name="ref-sam-cli-local-start-api-options-hook-name"></a>
用於擴展 AWS SAM CLI功能的勾點名稱。  
接受的值：`terraform`。

`--host TEXT`  <a name="ref-sam-cli-local-start-api-options-host"></a>
要繫結的本機主機名稱或 IP 地址 （預設：'127.0.0.1')。

`--invoke-image TEXT`  <a name="ref-sam-cli-local-start-api-options-invoke-image"></a>
您要用於 Lambda 函數之容器映像的 URI。根據預設， 會從 Amazon ECR Public AWS SAM 提取容器映像。使用此選項從另一個位置提取映像。  
您可以多次指定此選項。此選項的每個執行個體都可以採用字串或鍵值對。如果您指定字串，它是用於應用程式中所有函數的容器映像的 URI。例如 `sam local start-api --invoke-image public.ecr.aws/sam/emu-python3.8`。如果您指定金鑰/值對，則金鑰為資源名稱，而值為容器映像的 URI，以用於該資源。例如 `sam local start-api --invoke-image public.ecr.aws/sam/emu-python3.8 --invoke-image Function1=amazon/aws-sam-cli-emulation-image-python3.8 `。使用鍵/值對，您可以為不同的資源指定不同的容器映像。

`--layer-cache-basedir DIRECTORY`  <a name="ref-sam-cli-local-start-api-options-layer-cache-basedir"></a>
指定下載範本所用 Layers 的位置基礎。

`--log-file, -l TEXT`  <a name="ref-sam-cli-local-start-api-options-log-file"></a>
要傳送執行期日誌的日誌檔案。

`--no-memory-limit`  <a name="ref-sam-cli-local-start-api-options-no-memory-limit"></a>
在本機調用期間移除容器中的記憶體限制，即使 AWS SAM 範本中已設定記憶體也一樣。

`--parameter-overrides`  <a name="ref-sam-cli-local-start-api-options-parameter-overrides"></a>
包含 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`

`--port, -p INTEGER`  <a name="ref-sam-cli-local-start-api-options-port"></a>
要接聽的本機連接埠號碼 （預設值：'3000')。

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

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

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

`--shutdown`  <a name="ref-sam-cli-local-start-api-options-shutdown"></a>
在調用完成後模擬關機事件，以測試關機行為的延伸處理。

`--skip-prepare-infra`  <a name="ref-sam-cli-local-start-api-options-skip-prepare-infra"></a>
如果未進行任何基礎設施變更，請略過準備階段。使用 搭配 `--hook-name`選項。

`--skip-pull-image`  <a name="ref-sam-cli-local-start-api-options-skip-pull-image"></a>
指定 CLI 是否應該略過提取 Lambda 執行時間的最新 Docker 映像。

`--ssl-cert-file PATH`  <a name="ref-sam-cli-local-start-api-options-ssl-cert-file"></a>
SSL 憑證檔案的路徑 （預設值：無）。使用此選項時，也必須使用 `--ssl-key-file`選項。

`--ssl-key-file PATH`  <a name="ref-sam-cli-local-start-api-options-static-dir"></a>
SSL 金鑰檔案的路徑 （預設：無）。使用此選項時，也必須使用 `--ssl-cert-file`選項。

`--static-dir, -s TEXT`  <a name="ref-sam-cli-local-start-api-options-static-dir"></a>
位於此目錄中的任何靜態資產 （例如 CSS/JavaScript/HTML) 檔案會顯示在 `/`。

`--template, -t PATH`  <a name="ref-sam-cli-local-start-api-options-template"></a>
 AWS SAM 範本檔案。  
如果您指定此選項， 只會 AWS SAM 載入範本及其指向的本機資源。

`--terraform-plan-file`  <a name="ref-sam-cli-local-start-api-options-terraform-plan-file"></a>
搭配 使用 時，本機Terraform計劃檔案的 AWS SAM CLI相對或絕對路徑Terraform Cloud。此選項需要`--hook-name`將 設定為 `terraform`。

`--warm-containers [EAGER | LAZY]`  <a name="ref-sam-cli-local-start-api-options-warm-containers"></a>
選用。指定 如何 AWS SAM CLI管理每個函數的容器。  
有兩個可用選項：  
   `EAGER`：所有函數的容器會在啟動時載入，並在叫用之間保留。  
   `LAZY`：只有在第一次叫用每個 函數時，才會載入容器。這些容器會持續進行其他調用。

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

下列範例會啟動本機伺服器，讓您透過 API 測試應用程式。若要讓此命令運作，必須安裝應用程式，且 Docker 必須正在執行。

```
$ sam local start-api --port 3000
```

# sam local start-lambda
<a name="sam-cli-command-reference-sam-local-start-lambda"></a>

此頁面提供 AWS Serverless Application Model 命令列界面 (AWS SAM CLI) `sam local start-lambda`子命令的參考資訊。
+ 如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)
+ 如需使用 AWS SAM CLI `sam local start-lambda` 子命令的文件，請參閱 [使用 進行測試的簡介 sam local start-lambda](using-sam-cli-local-start-lambda.md)。

`sam local start-lambda` 子命令會啟動要模擬的本機端點 AWS Lambda。

## Usage
<a name="ref-sam-cli-local-start-lambda-usage"></a>

```
$ sam local start-lambda <options>
```

## 選項
<a name="ref-sam-cli-local-start-lambda-options"></a>

`--add-host LIST`  <a name="ref-sam-cli-local-start-lambda-options-add-host"></a>
將主機名稱傳遞至 Docker 容器主機檔案的 IP 地址映射。此參數可以多次傳遞。  

**Example**  
範例：`--add-host example.com:127.0.0.1`

`--beta-features | --no-beta-features`  <a name="ref-sam-cli-local-start-lambda-options-beta-features"></a>
允許或拒絕 Beta 版功能。

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

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

`--container-env-vars`  <a name="ref-sam-cli-local-start-lambda-options-container-env-vars"></a>
選用。在本機偵錯時，將環境變數傳遞至映像容器。

`--container-host TEXT`  <a name="ref-sam-cli-local-start-lambda-options-container-host"></a>
本機模擬 Lambda 容器的主機。預設值為 `localhost`。如果您想要在 macOS 的 Docker 容器中執行 AWS SAM CLI ，您可以指定 `host.docker.internal`。如果您想要在與 不同的主機上執行容器 AWS SAM CLI，您可以指定遠端主機的 IP 地址。

`--container-host-interface TEXT`  <a name="ref-sam-cli-local-start-lambda-options-container-host-interface"></a>
容器連接埠應繫結之主機網路介面的 IP 地址。預設值為 `127.0.0.1`。使用 `0.0.0.0` 繫結至所有介面。

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

`--debug-args TEXT`  <a name="ref-sam-cli-local-start-lambda-options-debug-args"></a>
要傳遞給偵錯工具的其他引數。

`--debug-function`  <a name="ref-sam-cli-local-start-lambda-options-debug-function"></a>
選用。指定指定 時要套用偵錯選項的 Lambda `--warm-containers` 函數。此參數適用於 `--debug-port`、 `--debugger-path`和 `--debug-args`。

`--debug-port, -d TEXT`  <a name="ref-sam-cli-local-start-lambda-options-debug-port"></a>
指定時， 會以偵錯模式啟動 Lambda 函數容器，並在本機主機上公開此連接埠。

`--debugger-path TEXT`  <a name="ref-sam-cli-local-start-lambda-options-debugger-path"></a>
要掛載至 Lambda 容器之偵錯工具的主機路徑。

`--docker-network TEXT`  <a name="ref-sam-cli-local-start-lambda-options-docker-network"></a>
Lambda Docker 容器應連線的現有 Docker 網路的名稱或 ID，以及預設橋接網路。如果指定此選項，Lambda 容器只會連線到預設橋接器 Docker 網路。

`--docker-volume-basedir, -v TEXT`  <a name="ref-sam-cli-local-start-lambda-options-docker-volume-basedir"></a>
 AWS SAM 檔案存在的基礎目錄位置。如果 Docker 在遠端機器上執行，您必須掛載 AWS SAM Docker 機器上檔案所在的路徑，並修改此值以符合遠端機器。

`--env-vars, -n PATH`  <a name="ref-sam-cli-local-start-lambda-options-env-vars"></a>
包含 Lambda 函數環境變數值的 JSON 或 `.env` 檔案。系統會自動偵測檔案格式。

`--force-image-build`  <a name="ref-sam-cli-local-start-lambda-options-force-image-build"></a>
指定 是否CLI應重建用於使用 layer 叫用函數的映像。

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

`--hook-name TEXT`  <a name="ref-sam-cli-local-start-lambda-options-hook-name"></a>
用於擴展 AWS SAM CLI功能的勾點名稱。  
接受的值：`terraform`。

`--host TEXT`  <a name="ref-sam-cli-local-start-lambda-options-host"></a>
要繫結的本機主機名稱或 IP 地址 （預設：'127.0.0.1')。

`--invoke-image TEXT`  <a name="ref-sam-cli-local-start-lambda-options-invoke-image"></a>
您要用於本機函數調用之容器映像的 URI。根據預設， 會從 Amazon ECR Public AWS SAM 提取容器映像。使用此選項從另一個位置提取映像。  
例如 `sam local start-lambda MyFunction --invoke-image amazon/aws-sam-cli-emulation-image-python3.8`。

`--layer-cache-basedir DIRECTORY`  <a name="ref-sam-cli-local-start-lambda-options-layer-cache-basedir"></a>
指定下載範本所用圖層的位置基數。

`--log-file, -l TEXT`  <a name="ref-sam-cli-local-start-lambda-options-log-file"></a>
要傳送執行期日誌的日誌檔案。

`--no-memory-limit`  <a name="ref-sam-cli-local-start-lambda-options-no-memory-limit"></a>
在本機調用期間移除容器中的記憶體限制，即使 AWS SAM 範本中已設定記憶體也一樣。

`--parameter-overrides`  <a name="ref-sam-cli-local-start-lambda-options-parameter-overrides"></a>
包含 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`

`--port, -p INTEGER`  <a name="ref-sam-cli-local-start-lambda-options-port"></a>
要接聽的本機連接埠號碼 （預設值：'3001')。

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

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

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

`--shutdown`  <a name="ref-sam-cli-local-start-lambda-options-shutdown"></a>
在調用完成後模擬關機事件，以測試關機行為的延伸處理。

`--skip-prepare-infra`  <a name="ref-sam-cli-local-start-lambda-options-skip-prepare-infra"></a>
如果未進行任何基礎設施變更，請略過準備階段。使用 搭配 `--hook-name`選項。

`--skip-pull-image`  <a name="ref-sam-cli-local-start-lambda-options-skip-pull-image"></a>
指定 是否CLI應該略過提取 Lambda 執行時間的最新 Docker 映像。

`--template, -t PATH`  <a name="ref-sam-cli-local-start-lambda-options-template"></a>
 AWS SAM 範本檔案。  
如果您指定此選項， 只會 AWS SAM 載入範本及其指向的本機資源。此選項與 不相容`--hook-name`。

`--terraform-plan-file`  <a name="ref-sam-cli-local-start-lambda-options-terraform-plan-file"></a>
搭配 使用 時，本機Terraform計劃檔案的 AWS SAM CLI相對或絕對路徑Terraform Cloud。此選項需要`--hook-name`將 設定為 `terraform`。

`--warm-containers [EAGER | LAZY]`  <a name="ref-sam-cli-local-start-lambda-options-warm-containers"></a>
選用。指定 如何 AWS SAM CLI管理每個函數的容器。  
有兩個可用選項：  
+ `EAGER`：所有函數的容器會在啟動時載入，並在叫用之間保留。
+ `LAZY`：只有在第一次叫用每個 函數時，才會載入容器。這些容器會持續進行其他調用。

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

如需使用 `sam local start-lambda` 子命令的詳細範例和深入演練，請參閱 [使用 進行測試的簡介 sam local start-lambda](using-sam-cli-local-start-lambda.md)。

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

此頁面提供 AWS Serverless Application Model Command Line Interface (AWS SAM CLI) `sam logs`命令的參考資訊。

如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)

`sam logs` 命令會擷取 AWS Lambda 函數產生的日誌。

## Usage
<a name="sam-cli-command-reference-sam-logs-usage"></a>

```
$ sam logs <options>
```

## 選項
<a name="sam-cli-command-reference-sam-logs-options"></a>

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

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

`--cw-log-group LIST`  <a name="sam-cli-command-reference-sam-logs-options-cw-log-group"></a>
包含您指定之 CloudWatch Logs 日誌群組的日誌。如果您指定此選項與 ，除了來自具名資源的日誌之外`name`， 還 AWS SAM 包含來自指定日誌群組的日誌。

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

`---end-time, e TEXT`  <a name="sam-cli-command-reference-sam-logs-options-end-time"></a>
擷取截至目前為止的日誌。時間可以是「5 分鐘前」、「明天」等相對值，或「2018-01-01 10：10：10」等格式化時間戳記。

`--filter TEXT`  <a name="sam-cli-command-reference-sam-logs-options-filter"></a>
可讓您指定表達式，以快速尋找符合日誌事件中詞彙、片語或值的日誌。這可以是簡單的關鍵字 （例如「錯誤」) 或 Amazon CloudWatch Logs 支援的模式。如需語法，請參閱 [Amazon CloudWatch Logs 文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)。

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

`--include-traces`  <a name="sam-cli-command-reference-sam-logs-options-include-traces"></a>
在日誌輸出中包含 X-Ray 追蹤。

`--name, -n TEXT`  <a name="sam-cli-command-reference-sam-logs-options-name"></a>
要擷取日誌的資源名稱。如果此資源是 CloudFormation 堆疊的一部分，這可以是 CloudFormation/AWS SAM template 中函數資源的邏輯 ID。您可以再次重複 參數來提供多個名稱。如果資源位於巢狀堆疊中，則可以在巢狀堆疊名稱前面加上名稱，以從該資源提取日誌 (NestedStackLogicalId/ResourceLogicalId)。如果未提供資源名稱，則會掃描指定的堆疊，並提取所有支援資源的日誌資訊。如果您未指定此選項， 會為您指定的堆疊中的所有資源 AWS SAM 擷取日誌。支援下列資源類型：  
+ `AWS::Serverless::Function`
+ `AWS::Lambda::Function`
+ `AWS::Serverless::Api`
+ `AWS::ApiGateway::RestApi`
+ `AWS::Serverless::HttpApi`
+ `AWS::ApiGatewayV2::Api`
+ `AWS::Serverless::StateMachine`
+ `AWS::StepFunctions::StateMachine`

`--output TEXT`  <a name="sam-cli-command-reference-sam-logs-options-output"></a>
指定日誌的輸出格式。若要列印格式化日誌，請指定 `text`。若要將日誌列印為 JSON，請指定 `json`。

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

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

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

`--stack-name TEXT`  <a name="sam-cli-command-reference-sam-logs-options-stack-name"></a>
資源所屬的 CloudFormation 堆疊名稱。

`--start-time, -s TEXT`  <a name="sam-cli-command-reference-sam-logs-options-start-time"></a>
擷取此時開始的日誌。時間可以是「5 分鐘前」、「昨天」等相對值，或是「2018-01-01 10：10：10」等格式化時間戳記。預設為 '10 分鐘前'。

` --tail, -t`  <a name="sam-cli-command-reference-sam-logs-options-tail"></a>
尾隨日誌輸出。這會忽略結束時間引數，並在日誌可用時繼續擷取日誌。

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

當您的函數是 CloudFormation 堆疊的一部分時，您可以在指定堆疊名稱時使用函數的邏輯 ID 來擷取日誌。

```
$ sam logs -n HelloWorldFunction --stack-name myStack
```

使用 -s (--start-time) 和 -e (--end-time) 選項檢視特定時間範圍的日誌。

```
$ sam logs -n HelloWorldFunction --stack-name myStack -s '10min ago' -e '2min ago'
```

您也可以新增 `--tail`選項來等待新的日誌，並在它們送達時看到它們。

```
$ sam logs -n HelloWorldFunction --stack-name myStack --tail
```

使用 `--filter`選項快速尋找符合日誌事件中詞彙、片語或值的日誌。

```
$ sam logs -n HelloWorldFunction --stack-name myStack --filter "error"
```

檢視子堆疊中資源的日誌。

```
$ sam logs --stack-name myStack -n childStack/HelloWorldFunction
```

您應用程式中所有支援資源的自訂日誌。

```
$ sam logs --stack-name sam-app --tail
```

擷取應用程式中特定 Lambda 函數和 API Gateway API 的日誌。

```
$ sam logs --stack-name sam-app --name HelloWorldFunction --name HelloWorldRestApi
```

擷取應用程式中所有支援資源的日誌，以及從指定的日誌群組另外擷取。

```
$ sam logs --cw-log-group /aws/lambda/myfunction-123 --cw-log-group /aws/lambda/myfunction-456
```

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

 AWS Serverless Application Model 命令列界面 (AWS SAM CLI) 會封裝 AWS SAM 應用程式。

此命令會建立程式碼和相依性`.zip`的檔案，並將檔案上傳到 Amazon Simple Storage Service (Amazon S3)。 會針對存放在 Amazon S3 中的所有檔案 AWS SAM 啟用加密。然後，它會傳回 AWS SAM 範本的副本，將本機成品的參考取代為命令上傳成品的 Amazon S3 位置。

根據預設，當您使用此命令時， AWS SAM CLI會假設您目前的工作目錄是專案的根目錄。 AWS SAM CLI 第一個嘗試尋找使用 [sam build](sam-cli-command-reference-sam-build.md)命令建置的範本檔案，位於 `.aws-sam` 子資料夾中，並命名為 `template.yaml`。接著， AWS SAM CLI會嘗試`template.yml`在目前的工作目錄中尋找名為 `template.yaml`或 的範本檔案。如果您指定 `--template`選項，則會覆寫 AWS SAM CLI的預設行為，並將僅封裝該 AWS SAM 範本及其指向的本機資源。

**注意**  
[sam deploy](sam-cli-command-reference-sam-deploy.md) 現在會隱含執行 的功能`sam package`。您可以直接使用 [sam deploy](sam-cli-command-reference-sam-deploy.md)命令來封裝和部署您的應用程式。

## Usage
<a name="sam-cli-command-reference-sam-package-usage"></a>

```
$ sam package <arguments> <options>
```

## 引數
<a name="sam-cli-command-reference-sam-package-args"></a>

**Resource ID (資源 ID)**  <a name="sam-cli-command-reference-sam-package-args-resource-id"></a>
要封裝的 Lambda 函數 ID。  
此為選用引數。如果您的應用程式包含單一 Lambda 函數，CLI AWS SAM 會封裝它。如果您的應用程式包含多個函數，請提供函數的 ID 來封裝單一函數。  
*有效值*：資源的邏輯 ID 或資源 ARN。

## 選項
<a name="sam-cli-command-reference-sam-package-options"></a>

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

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

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

`--force-upload`  <a name="sam-cli-command-reference-sam-package-options-force-upload"></a>
覆寫 Amazon S3 儲存貯體中的現有檔案。指定此旗標以上傳成品，即使它們符合 Amazon S3 儲存貯體中的現有成品。

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

`--image-repository TEXT`  <a name="sam-cli-command-reference-sam-package-options-image-repository"></a>
Amazon Elastic Container Registry (Amazon ECR) 儲存庫的 URI，此命令會上傳函數的映像。使用 `Image`套件類型宣告的函數需要。

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

`--metadata`  <a name="sam-cli-command-reference-sam-package-options-metadata"></a>
（選用） 要連接到範本中參考之所有成品的中繼資料映射。

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

`--output-template-file PATH`  <a name="sam-cli-command-reference-sam-package-options-output-template-file"></a>
命令寫入封裝範本的檔案路徑。如果您未指定路徑，命令會將範本寫入標準輸出。

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

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

`--resolve-s3`  <a name="sam-cli-command-reference-sam-package-options-resolve-s3"></a>
自動建立 Amazon S3 儲存貯體以用於封裝。如果您同時指定 `--s3-bucket`和 `--resolve-s3`選項，則會產生錯誤。

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

`--s3-prefix TEXT`  <a name="sam-cli-command-reference-sam-package-options-s3-prefix"></a>
新增至上傳到 Amazon S3 儲存貯體之成品名稱的字首。字首名稱是 Amazon S3 儲存貯體的路徑名稱 （資料夾名稱）。這僅適用於使用`Zip`套件類型宣告的函數。

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

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

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

`--use-json`  <a name="sam-cli-command-reference-sam-package-options-use-json"></a>
 CloudFormation 範本的輸出 JSON。預設會使用 YAML。

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

下列範例會為 Lambda 函數和 CodeDeploy 應用程式建立並封裝成品。成品會上傳至 Amazon S3 儲存貯體。命令的輸出是名為 `package.yml` 的新檔案。

```
$ sam package \
  --template-file template.yml \
  --output-template-file package.yml \
  --s3-bucket amzn-s3-demo-bucket
```

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

此頁面提供 AWS Serverless Application Model 命令列界面 (AWS SAM CLI) `sam local pipeline bootstrap`子命令的參考資訊。

如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)

`sam pipeline bootstrap` 子命令會產生必要的 AWS 基礎設施資源，以連線至您的 CI/CD 系統。執行 **sam pipeline init**命令之前，必須針對管道中的每個部署階段執行此步驟。

此子命令會設定下列 AWS 基礎設施資源：
+ 透過下列方式設定管道許可的選項：
  + 具有要與 CI/CD 系統共用之存取金鑰 ID 和私密金鑰存取憑證的管道 IAM 使用者。
**注意**  
建議您定期輪換存取金鑰。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[針對需要長期憑證的使用案例定期輪換存取金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#rotate-credentials)。
  + 透過 OIDC 支援的 CI/CD 平台。如需搭配 AWS SAM 管道使用 OIDC 的簡介，請前往 [如何搭配 AWS SAM 管道使用 OIDC 身分驗證](deploying-with-oidc.md)。
+ 由 擔任 CloudFormation 以部署 AWS SAM 應用程式的 CloudFormation 執行 IAM 角色。
+ 保存 AWS SAM 成品的 Amazon S3 儲存貯體。
+ 或者，用於保存容器映像 Lambda 部署套件的 Amazon ECR 映像儲存庫 （如果您有套件類型 的資源`Image`)。

## Usage
<a name="sam-cli-command-reference-sam-pipeline-bootstrap-usage"></a>

```
$ sam pipeline bootstrap <options>
```

## 選項
<a name="sam-cli-command-reference-sam-pipeline-bootstrap-options"></a>

`--bitbucket-repo-uuid TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-bitbucket-repo-uuid"></a>
 Bitbucket 儲存庫的 UUID。此選項專用於將 Bitbucket OIDC 用於許可。  
您可以在 https://bitbucket.org/：//*workspace*/*repository*/admin/addon/admin/pipelines/openid-connect 找到此值 

`--bucket TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-bucket"></a>
存放 AWS SAM 成品之 Amazon S3 儲存貯體的 ARN。

`--cicd-provider TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-cicd-provider"></a>
 AWS SAM 管道的 CI/CD 平台。

`--cloudformation-execution-role TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-cloudformation-execution-role"></a>
部署應用程式堆疊 CloudFormation 時，要由 擔任之 IAM 角色的 ARN。只有在您想要使用自己的角色時才提供 。否則，命令會建立新的角色。

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

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

`--confirm-changeset | --no-confirm-changeset`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-confirm-changeset"></a>
提示 確認 資源的部署。

`--create-image-repository | --no-create-image-repository`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-create-image-repository"></a>
如果未提供，請指定是否建立 Amazon ECR 映像儲存庫。Amazon ECR 儲存庫會保留 Lambda 函數的容器映像，或套件類型為 的層`Image`。預設值為 `--no-create-image-repository`。

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

`--deployment-branch TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-deployment-branch"></a>
部署將從中發生的分支名稱。此選項專用於將 GitHub Actions OIDC 用於許可。

`--github-org TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-github-org"></a>
儲存庫所屬的 GitHub 組織。如果沒有組織，請輸入儲存庫擁有者的使用者名稱。此選項專用於將 GitHub Actions OIDC 用於許可。

`--github-repo TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-github-repo"></a>
部署將從中發生的 GitHub 儲存庫名稱。此選項專用於將 GitHub Actions OIDC 用於許可。

`--gitlab-group TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-gitlab-group"></a>
儲存庫所屬的 GitLab 群組。此選項專用於將 GitLab OIDC 用於許可。

`--gitlab-project TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-gitlab-project"></a>
GitLab 專案名稱。此選項專用於將 GitLab OIDC 用於許可。

`--help, -h`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-help"></a>
顯示此訊息並結束。

`--image-repository TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-image-repository"></a>
Amazon ECR 映像儲存庫的 ARN，該儲存庫存放 Lambda 函數的容器映像，或套件類型為 的層`Image`。如果提供，則會忽略`--create-image-repository`選項。如果未提供 且`--create-image-repository`已指定 ，則命令會建立一個。

`--interactive | --no-interactive`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-interactive"></a>
停用引導參數的互動式提示，如果缺少任何必要的參數，則失敗。預設值為 `--interactive`。對於此命令， `--stage`是唯一必要的參數。  
如果 `--no-interactive` 與 一起指定`--use-oidc-provider`，則必須包含 OIDC 供應商的所有必要參數。

`--oidc-client-id TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-oidc-client-id"></a>
設定為搭配 OIDC 提供者使用的用戶端 ID。

`--oidc-provider [github-actions | gitlab | bitbucket-pipelines]`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-oidc-provider"></a>
將用於 OIDC 許可的 CI/CD 提供者名稱。支援 GitLab、GitHub 和 Bitbucket。

`--oidc-provider-url TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-oidc-provider-url"></a>
OIDC 提供者的 URL。值必須以 開頭**https://**。

`--permissions-provider [oidc | iam]`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-permissions-provider"></a>
選擇許可提供者以擔任管道執行角色。預設值為 **iam**。

`--pipeline-execution-role TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-pipeline-execution-role"></a>
管道使用者要擔任以在此階段操作之 IAM 角色的 ARN。只有在您想要使用自己的角色時才提供 。如果未提供，此命令將建立新的角色。

`--pipeline-user TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-pipeline-user"></a>
IAM 使用者的 Amazon Resource Name (ARN)，其存取金鑰 ID 和私密存取金鑰與 CI/CD 系統共用。它用於授予此 IAM 使用者存取對應 AWS 帳戶的許可。如果未提供，命令將建立 IAM 使用者以及存取金鑰 ID 和私密存取金鑰憑證。

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

`--region TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-region"></a>
 AWS 要部署的區域。例如 `us-east-1`。

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

`--stage TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-stage"></a>
對應部署階段的名稱。它用作所建立 AWS 基礎設施資源的尾碼。

## 疑難排解
<a name="sam-cli-command-reference-sam-pipeline-bootstrap-troubleshooting"></a>

### 錯誤：缺少必要的參數
<a name="sam-cli-command-reference-sam-pipeline-bootstrap-troubleshooting-example1"></a>

當 `--no-interactive` 與 一起指定`--use-oidc-provider`，且未提供任何必要的參數時，此錯誤訊息將與遺失參數的描述一起顯示。

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

下列範例會建立建立 CI/CD 系統所需的 AWS 資源，並開啟偵錯記錄，並列印 產生的偵錯訊息 AWS SAM CLI： 使用產生的事件進行本機測試，方法是使用 `s3.json` 事件在本機叫用 Lambda 函數

```
$ sam pipeline bootstrap --debug
```

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

此頁面提供 AWS Serverless Application Model 命令列界面 (AWS SAM CLI) `sam pipeline init`子命令的參考資訊。

如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)

`sam pipeline init` 子命令會產生管道組態檔案，您的 CI/CD 系統可使用該檔案來部署無伺服器應用程式 AWS SAM。

使用 之前**sam pipeline init**，您必須為管道中的每個階段引導必要的資源。您可以執行 **sam pipeline init --bootstrap** 以引導完成設定和組態檔案產生程序，或參考您先前使用 **sam pipeline bootstrap**命令建立的資源。

## Usage
<a name="sam-cli-command-reference-sam-pipeline-init-usage"></a>

```
$ sam pipeline init <options>
```

## 選項
<a name="sam-cli-command-reference-sam-pipeline-init-options"></a>

`--bootstrap`  <a name="sam-cli-command-reference-sam-pipeline-init-options-bootstrap"></a>
啟用互動式模式，引導使用者建立必要的 AWS 基礎設施資源。

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

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

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

`--help, -h`  <a name="sam-cli-command-reference-sam-pipeline-init-options-help"></a>
顯示此訊息並結束。

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

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

下列範例說明如何使用 `--bootstrap`選項，讓您演練互動式模式，逐步引導您建立必要的 AWS 基礎設施資源：

```
$ sam pipeline init --bootstrap
```

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

此頁面提供 AWS Serverless Application Model Command Line Interface (AWS SAM CLI) `sam publish`命令的參考資訊。

如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)

`sam publish` 命令會將 AWS SAM 應用程式發佈至 AWS Serverless Application Repository。此命令採用封裝 AWS SAM 範本，並將應用程式發佈至指定的 AWS 區域。

`sam publish` 命令預期 AWS SAM 範本包含包含發佈所需應用程式中繼資料的`Metadata`區段。在 `Metadata`區段中， `LicenseUrl`和 `ReadmeUrl` 屬性必須參考 Amazon Simple Storage Service (Amazon S3) 儲存貯體，而非本機檔案。如需 AWS SAM 範本 `Metadata`區段的詳細資訊，請參閱 [使用 發佈您的應用程式 AWS SAM CLI](serverless-sam-template-publishing-applications.md)。

根據預設， `sam publish`會將應用程式建立為私有。在允許其他 AWS 帳戶檢視和部署您的應用程式之前，您必須共用它。如需共用應用程式的資訊，請參閱《 *AWS Serverless Application Repository 開發人員指南*》中的以[AWS Serverless Application Repository 資源為基礎的政策範例](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/security_iam_resource-based-policy-examples.html)。

**注意**  
目前`sam publish`不支援發佈本機指定的巢狀應用程式。如果您的應用程式包含巢狀應用程式，您必須先將它們分別發佈到 ， AWS Serverless Application Repository 然後再發佈父應用程式。

## Usage
<a name="sam-cli-command-reference-sam-publish-usage"></a>

```
$ sam publish <options>
```

## 選項
<a name="sam-cli-command-reference-sam-publish-options"></a>

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

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

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

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

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

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

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

`--semantic-version TEXT`  <a name="sam-cli-command-reference-sam-publish-options-semantic-version"></a>
（選用） 使用此選項提供應用程式的語意版本，覆寫範本檔案 `Metadata`區段中的 `SemanticVersion` 屬性。如需語意版本控制的詳細資訊，請參閱[語意版本控制規格](https://semver.org/)。

`--template, -t PATH`  <a name="sam-cli-command-reference-sam-publish-options-template"></a>
 AWS SAM 範本檔案 的路徑`[default: template.[yaml|yml]]`。

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

若要發佈應用程式：

```
$ sam publish --template packaged.yaml --region us-east-1
```

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

此頁面提供 AWS Serverless Application Model Command Line Interface (AWS SAM CLI) `sam remote callback`命令的參考資訊。

如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)

`sam remote callback` 命令可讓您將回呼傳送至在 AWS Lambda 中執行的遠端耐久函數執行。

**注意**  
這些命令需要存取 AWS 登入資料。

## Usage
<a name="sam-cli-command-reference-sam-remote-callback-usage"></a>

```
$ sam remote callback <subcommand> <options>
```

## 選項
<a name="sam-cli-command-reference-sam-remote-callback-options"></a>

`--help, -h`  <a name="sam-cli-command-reference-sam-remote-callback-options-help"></a>
顯示此訊息並結束。

## 子命令
<a name="sam-cli-command-reference-sam-remote-callback-subcommands"></a>

`succeed`  <a name="sam-cli-command-reference-sam-remote-callback-subcommands-succeed"></a>
將回呼成功傳送至遠端耐用函數執行。如需詳細資訊，請參閱[sam remote callback succeed](sam-cli-command-reference-sam-remote-callback-succeed.md)。

`fail`  <a name="sam-cli-command-reference-sam-remote-callback-subcommands-fail"></a>
將回呼失敗傳送至遠端耐用函數執行。如需詳細資訊，請參閱[sam remote callback fail](sam-cli-command-reference-sam-remote-callback-fail.md)。

`heartbeat`  <a name="sam-cli-command-reference-sam-remote-callback-subcommands-heartbeat"></a>
將回呼活動訊號傳送至遠端耐用的函數執行。如需詳細資訊，請參閱[sam remote callback heartbeat](sam-cli-command-reference-sam-remote-callback-heartbeat.md)。

# sam remote callback succeed
<a name="sam-cli-command-reference-sam-remote-callback-succeed"></a>

將回呼成功傳送至遠端耐用函數執行。

**注意**  
此命令需要存取 AWS 登入資料。

## Usage
<a name="ref-sam-cli-remote-callback-succeed-usage"></a>

```
$ sam remote callback succeed CALLBACK_ID [OPTIONS]
```

## 必要的引數
<a name="ref-sam-cli-remote-callback-succeed-arguments"></a>

`CALLBACK_ID`  
要傳送成功回應的回呼的唯一識別符。

## 選項
<a name="ref-sam-cli-remote-callback-succeed-options"></a>

`-r, --result TEXT`  
成功結果承載做為字串。

`--region TEXT`  
設定服務的 AWS 區域 （例如 `us-east-1`)。

`--profile TEXT`  
從登入資料檔案選取特定設定檔以取得 AWS 登入資料。

`--config-env TEXT`  
在組態檔案中指定預設參數值的環境名稱。預設：`default`

`--config-file TEXT`  
包含預設參數值的組態檔案。預設：`samconfig.toml`

`--save-params`  
將透過命令列提供的參數儲存至組態檔案。

`--beta-features / --no-beta-features`  
啟用/停用 Beta 版功能。

`--debug`  
開啟偵錯記錄以列印 CLI AWS SAM 產生的偵錯訊息，並顯示時間戳記。

`-h, --help`  
顯示此訊息並結束。

## 範例
<a name="ref-sam-cli-remote-callback-succeed-examples"></a>

傳送沒有結果的成功回呼：

```
$ sam remote callback succeed my-callback-id
```

傳送成功回呼，結果為：

```
$ sam remote callback succeed my-callback-id --result 'Task completed successfully'
```

# sam remote callback fail
<a name="sam-cli-command-reference-sam-remote-callback-fail"></a>

將回呼失敗傳送至遠端耐用函數執行。

**注意**  
此命令需要存取 AWS 登入資料。

## Usage
<a name="ref-sam-cli-remote-callback-fail-usage"></a>

```
$ sam remote callback fail CALLBACK_ID [OPTIONS]
```

## 必要的引數
<a name="ref-sam-cli-remote-callback-fail-arguments"></a>

`CALLBACK_ID`  
要傳送失敗回應的回呼的唯一識別符。

## 選項
<a name="ref-sam-cli-remote-callback-fail-options"></a>

`--error-data TEXT`  
其他錯誤資料。

`--stack-trace TEXT`  
堆疊追蹤項目。此選項可指定多次。

`--error-type TEXT`  
錯誤類型。

`--error-message TEXT`  
詳細的錯誤訊息。

`--region TEXT`  
設定服務的 AWS 區域 （例如 `us-east-1`)。

`--profile TEXT`  
從登入資料檔案選取特定設定檔以取得 AWS 登入資料。

`--config-env TEXT`  
在組態檔案中指定預設參數值的環境名稱。預設：`default`

`--config-file TEXT`  
包含預設參數值的組態檔案。預設：`samconfig.toml`

`--save-params`  
將透過命令列提供的參數儲存至組態檔案。

`--beta-features / --no-beta-features`  
啟用/停用 Beta 版功能。

`--debug`  
開啟偵錯記錄以列印 CLI AWS SAM 產生的偵錯訊息，並顯示時間戳記。

`-h, --help`  
顯示此訊息並結束。

## 範例
<a name="ref-sam-cli-remote-callback-fail-examples"></a>

傳送沒有參數的失敗回呼：

```
$ sam remote callback fail my-callback-id
```

傳送失敗回呼並顯示錯誤訊息：

```
$ sam remote callback fail my-callback-id --error-message 'Task failed'
```

使用所有參數傳送失敗回呼：

```
$ sam remote callback fail my-callback-id --error-message 'Task failed' --error-type 'ValidationError' --stack-trace 'at line 42' --error-data '{"code": 500}'
```

# sam remote callback heartbeat
<a name="sam-cli-command-reference-sam-remote-callback-heartbeat"></a>

將回呼活動訊號傳送至遠端耐用的函數執行。

**注意**  
此命令需要存取 AWS 登入資料。

## Usage
<a name="ref-sam-cli-remote-callback-heartbeat-usage"></a>

```
$ sam remote callback heartbeat CALLBACK_ID [OPTIONS]
```

## 必要的引數
<a name="ref-sam-cli-remote-callback-heartbeat-arguments"></a>

`CALLBACK_ID`  
要向其傳送活動訊號的回呼的唯一識別符。

## 選項
<a name="ref-sam-cli-remote-callback-heartbeat-options"></a>

`--region TEXT`  
設定服務的 AWS 區域 （例如 `us-east-1`)。

`--profile TEXT`  
從登入資料檔案選取特定設定檔以取得 AWS 登入資料。

`--config-env TEXT`  
在組態檔案中指定預設參數值的環境名稱。預設：`default`

`--config-file TEXT`  
包含預設參數值的組態檔案。預設：`samconfig.toml`

`--save-params`  
將透過命令列提供的參數儲存至組態檔案。

`--beta-features / --no-beta-features`  
啟用/停用 Beta 版功能。

`--debug`  
開啟偵錯記錄以列印 CLI AWS SAM 產生的偵錯訊息，並顯示時間戳記。

`-h, --help`  
顯示此訊息並結束。

## 範例
<a name="ref-sam-cli-remote-callback-heartbeat-examples"></a>

傳送活動訊號回呼：

```
$ sam remote callback heartbeat my-callback-id
```

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

此頁面提供 AWS Serverless Application Model Command Line Interface (AWS SAM CLI) `sam remote execution`命令的參考資訊。

如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)

`sam remote execution` 命令可讓您管理和檢查在 AWS Lambda 中執行的遠端耐久函數執行。

**注意**  
這些命令需要存取 AWS 登入資料。

## Usage
<a name="sam-cli-command-reference-sam-remote-execution-usage"></a>

```
$ sam remote execution <subcommand> <options>
```

## 選項
<a name="sam-cli-command-reference-sam-remote-execution-options"></a>

`--help, -h`  <a name="sam-cli-command-reference-sam-remote-execution-options-help"></a>
顯示此訊息並結束。

## 子命令
<a name="sam-cli-command-reference-sam-remote-execution-subcommands"></a>

`get`  <a name="sam-cli-command-reference-sam-remote-execution-subcommands-get"></a>
取得耐久執行的詳細資訊。如需詳細資訊，請參閱[sam remote execution get](sam-cli-command-reference-sam-remote-execution-get.md)。

`history`  <a name="sam-cli-command-reference-sam-remote-execution-subcommands-history"></a>
取得持久函數執行的執行歷史記錄。如需詳細資訊，請參閱[sam remote execution history](sam-cli-command-reference-sam-remote-execution-history.md)。

`stop`  <a name="sam-cli-command-reference-sam-remote-execution-subcommands-stop"></a>
停止耐用的函數執行。如需詳細資訊，請參閱[sam remote execution stop](sam-cli-command-reference-sam-remote-execution-stop.md)。

# sam remote execution get
<a name="sam-cli-command-reference-sam-remote-execution-get"></a>

從 AWS Lambda 擷取特定耐用函數執行的詳細資訊。

執行 ARN 應採用叫用傳回的格式，或在執行日誌中找到。

**注意**  
此命令需要存取 AWS 登入資料。

## Usage
<a name="ref-sam-cli-remote-execution-get-usage"></a>

```
$ sam remote execution get DURABLE_EXECUTION_ARN [OPTIONS]
```

## 必要的引數
<a name="ref-sam-cli-remote-execution-get-arguments"></a>

`DURABLE_EXECUTION_ARN`  
要擷取詳細資訊之耐久函數執行的 Amazon Resource Name (ARN)。

## 選項
<a name="ref-sam-cli-remote-execution-get-options"></a>

`--format [summary|json]`  
輸出格式。預設：`summary`

`--region TEXT`  
設定服務的 AWS 區域 （例如 `us-east-1`)。

`--profile TEXT`  
從登入資料檔案選取特定設定檔以取得 AWS 登入資料。

`--config-env TEXT`  
在組態檔案中指定預設參數值的環境名稱。預設：`default`

`--config-file TEXT`  
包含預設參數值的組態檔案。預設：`samconfig.toml`

`--save-params`  
將透過命令列提供的參數儲存至組態檔案。

`--beta-features / --no-beta-features`  
啟用/停用 Beta 版功能。

`--debug`  
開啟偵錯記錄以列印 CLI AWS SAM 產生的偵錯訊息，並顯示時間戳記。

`-h, --help`  
顯示此訊息並結束。

## 範例
<a name="ref-sam-cli-remote-execution-get-examples"></a>

取得預設摘要格式的執行詳細資訊：

```
$ sam remote execution get 'arn:aws:lambda:us-east-1:123456789012:function:my-function:$LATEST/durable-execution/c63eec67-3415-4eb4-a495-116aa3a86278/1d454231-a3ad-3694-aa03-c917c175db55'
```

取得 JSON 格式的執行詳細資訊：

```
$ sam remote execution get 'arn:aws:lambda:us-east-1:123456789012:function:my-function:$LATEST/durable-execution/c63eec67-3415-4eb4-a495-116aa3a86278/1d454231-a3ad-3694-aa03-c917c175db55' --format json
```

**注意**  
您必須確保在使用 shell 命令時，如 等執行 ARN 中的控制字元`$`會正確逸出。

# sam remote execution history
<a name="sam-cli-command-reference-sam-remote-execution-history"></a>

從 AWS Lambda 擷取特定耐久函數執行的執行歷史記錄。

執行 ARN 應採用 StartDurableExecution 傳回的格式，或在執行日誌中找到。

**注意**  
此命令需要存取 AWS 登入資料。

## Usage
<a name="ref-sam-cli-remote-execution-history-usage"></a>

```
$ sam remote execution history DURABLE_EXECUTION_ARN [OPTIONS]
```

## 必要的引數
<a name="ref-sam-cli-remote-execution-history-arguments"></a>

`DURABLE_EXECUTION_ARN`  
要擷取其歷史記錄之耐久函數執行的 Amazon Resource Name (ARN)。

## 選項
<a name="ref-sam-cli-remote-execution-history-options"></a>

`--format [table|json]`  
輸出格式。預設：`table`

`--region TEXT`  
設定服務的 AWS 區域 （例如 `us-east-1`)。

`--profile TEXT`  
從登入資料檔案選取特定設定檔以取得 AWS 登入資料。

`--config-env TEXT`  
在組態檔案中指定預設參數值的環境名稱。預設：`default`

`--config-file TEXT`  
包含預設參數值的組態檔案。預設：`samconfig.toml`

`--save-params`  
將透過命令列提供的參數儲存至組態檔案。

`--beta-features / --no-beta-features`  
啟用/停用 Beta 版功能。

`--debug`  
開啟偵錯記錄以列印 CLI AWS SAM 產生的偵錯訊息，並顯示時間戳記。

`-h, --help`  
顯示此訊息並結束。

## 範例
<a name="ref-sam-cli-remote-execution-history-examples"></a>

使用預設資料表格式取得執行歷史記錄：

```
$ sam remote execution history arn:aws:lambda:us-east-1:123456789012:function:MyFunction:$LATEST/durable-execution/my-execution-name/my-execution-id
```

取得 JSON 格式的執行歷史記錄：

```
$ sam remote execution history arn:aws:lambda:us-east-1:123456789012:function:MyFunction:$LATEST/durable-execution/my-execution-name/my-execution-id --format json
```

# sam remote execution stop
<a name="sam-cli-command-reference-sam-remote-execution-stop"></a>

在 AWS Lambda 中停止執行中的耐用函數執行。

執行 ARN 應採用 StartDurableExecution 傳回的格式，或在執行日誌中找到。

**注意**  
此命令需要存取 AWS 登入資料。

## Usage
<a name="ref-sam-cli-remote-execution-stop-usage"></a>

```
$ sam remote execution stop DURABLE_EXECUTION_ARN [OPTIONS]
```

## 必要的引數
<a name="ref-sam-cli-remote-execution-stop-arguments"></a>

`DURABLE_EXECUTION_ARN`  
要停止之耐久函數執行的 Amazon Resource Name (ARN)。

## 選項
<a name="ref-sam-cli-remote-execution-stop-options"></a>

`--error-message TEXT`  
要與停止的執行建立關聯的錯誤訊息。

`--error-type TEXT`  
要與已停止執行建立關聯的錯誤類型。

`--error-data TEXT`  
要與已停止執行建立關聯的錯誤資料。

`--stack-trace TEXT`  
堆疊追蹤項目。此選項可指定多次。

`--region TEXT`  
設定服務的 AWS 區域 （例如 `us-east-1`)。

`--profile TEXT`  
從登入資料檔案選取特定設定檔以取得 AWS 登入資料。

`--config-env TEXT`  
在組態檔案中指定預設參數值的環境名稱。預設：`default`

`--config-file TEXT`  
包含預設參數值的組態檔案。預設：`samconfig.toml`

`--save-params`  
將透過命令列提供的參數儲存至組態檔案。

`--beta-features / --no-beta-features`  
啟用/停用 Beta 版功能。

`--debug`  
開啟偵錯記錄以列印 CLI AWS SAM 產生的偵錯訊息，並顯示時間戳記。

`-h, --help`  
顯示此訊息並結束。

## 範例
<a name="ref-sam-cli-remote-execution-stop-examples"></a>

在沒有錯誤詳細資訊的情況下停止執行：

```
$ sam remote execution stop arn:aws:lambda:us-east-1:123456789012:function:MyFunction:$LATEST/durable-execution/my-execution-name/my-execution-id
```

使用錯誤訊息和類型停止執行：

```
$ sam remote execution stop arn:aws:lambda:us-east-1:123456789012:function:MyFunction:$LATEST/durable-execution/my-execution-name/my-execution-id --error-message "Execution cancelled" --error-type "UserCancellation"
```

使用完整的錯誤詳細資訊和堆疊追蹤停止執行：

```
$ sam remote execution stop arn:aws:lambda:us-east-1:123456789012:function:MyFunction:$LATEST/durable-execution/my-execution-name/my-execution-id --error-message "Task failed" --error-type "TaskFailure" --error-data '{"reason":"timeout"}' --stack-trace "at function1()" --stack-trace "at function2()"
```

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

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

`sam remote invoke` 命令會在 中叫用支援的資源 AWS 雲端。

## Usage
<a name="sam-cli-command-reference-remote-invoke-usage"></a>

```
$ sam remote invoke <arguments> <options>
```

## 引數
<a name="sam-cli-command-reference-remote-invoke-args"></a>

**Resource ID (資源 ID)**  <a name="sam-cli-command-reference-remote-invoke-args-resource-id"></a>
要叫用之受支援資源的 ID。  
此引數接受下列值：  
+ **Amazon Resource Name (ARN)** – 資源的 ARN。
**提示**  
使用 `sam list stack-outputs --stack-name <stack-name>`取得 資源的 ARN。
+ **邏輯 ID** – 資源的邏輯 ID。您還必須使用 `--stack-name`選項提供 AWS CloudFormation 堆疊名稱。
+ **實體 ID** – 資源的實體 ID。當您使用 部署資源時，會建立此 ID CloudFormation。
**提示**  
使用 `sam list resources --stack-name <stack-name>`取得 資源的實體 ID。  
**當您提供 ARN 或實體 ID 時：**  
如果您提供 ARN 或實體 ID，請勿提供堆疊名稱。使用 `--stack-name`選項提供堆疊名稱時，或在組態檔案中定義堆疊名稱時， AWS SAM CLI會自動將您的資源 ID 處理為 CloudFormation 堆疊中的邏輯 ID 值。  
**當您不提供資源 ID 時：**  
如果您不提供資源 ID，但使用 `--stack-name`選項提供堆疊名稱，CLI AWS SAM 將嘗試使用以下邏輯自動調用 CloudFormation 堆疊中的資源：  

1.  AWS SAM CLI 將依下列順序識別資源類型，並在堆疊中找到資源類型後移至下一個步驟：

   1. Lambda

   1. 步驟函數

   1. Amazon SQS

   1. Kinesis Data Streams

1. 如果資源類型在您的堆疊中有單一資源， AWS SAM CLI會叫用它。如果您的堆疊中存在多個資源類型，則 AWS SAM CLI會傳回錯誤。
以下是 AWS SAM CLI將執行的操作範例：  
+ **包含兩個 Lambda 函數和 Amazon SQS 佇列的堆疊** – AWS SAM CLI將尋找 Lambda 資源類型，並傳回 和 錯誤，因為堆疊包含多個 Lambda 函數。
+ **包含 Lambda 函數和兩個 Amazon Kinesis Data Streams 應用程式的堆疊** – AWS SAM CLI將尋找 Lambda 函數並將其叫用，因為堆疊包含單一 Lambda 資源。
+ **包含單一 Amazon SQS 佇列和兩個 Kinesis Data Streams 應用程式的堆疊** – AWS SAM CLI將尋找 Amazon SQS 佇列並將其叫用，因為堆疊包含單一 Amazon SQS 佇列。

## 選項
<a name="sam-cli-command-reference-remote-invoke-options"></a>

`--beta-features | --no-beta-features`  <a name="sam-cli-command-reference-remote-invoke-options-beta-features"></a>
允許或拒絕 Beta 版功能。

`--config-env TEXT`  <a name="sam-cli-command-reference-remote-invoke-options-config-env"></a>
從 AWS SAM CLI組態檔案指定要使用的環境。  
*預設*：`default`

`--config-file FILENAME`  <a name="sam-cli-command-reference-remote-invoke-options-config-file"></a>
指定組態檔案的路徑和檔案名稱。  
如需關於組態檔案的詳細資訊，請參閱 [設定 AWS SAM CLI](using-sam-cli-configure.md)。  
*預設*：在專案目錄的`samconfig.toml`根目錄。

`--debug`  <a name="sam-cli-command-reference-remote-invoke-options-debug"></a>
啟用除錯記錄。這會列印 產生的偵錯訊息和時間戳記 AWS SAM CLI。

`--event, -e TEXT`  <a name="sam-cli-command-reference-remote-invoke-options-event"></a>
要傳送至目標資源的事件。

`--event-file FILENAME`  <a name="sam-cli-command-reference-remote-invoke-options-event-file"></a>
檔案的路徑，其中包含要傳送至目標資源的事件。

`--help, -h`  <a name="sam-cli-command-reference-remote-invoke-options-help"></a>
顯示說明訊息並結束。

`--output [ text | json ]`  <a name="sam-cli-command-reference-remote-invoke-options-output"></a>
以特定輸出格式輸出調用的結果。  
`json` – 請求中繼資料和資源回應會以 JSON 結構傳回。回應包含完整的 SDK 輸出。  
`text` – 請求中繼資料會以文字結構傳回。資源回應會以叫用資源的輸出格式傳回。

`--parameter`  <a name="sam-cli-command-reference-remote-invoke-options-parameter"></a>
您可以傳遞給要叫用之資源的其他[https://boto3.amazonaws.com/v1/documentation/api/latest/index.html](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html)參數。    
**Amazon Kinesis Data Streams**  <a name="sam-cli-command-reference-remote-invoke-options-parameter-kinesis"></a>
下列其他參數可用來將記錄放入 Kinesis 資料串流：  
+ `ExplicitHashKey='string'`
+ `PartitionKey='string'`
+ `SequenceNumberForOrdering='string'`
+ `StreamARN='string'`
如需每個參數的說明，請參閱 [Kinesis.Client.put\$1record](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/kinesis/client/put_record.html)。  
**AWS Lambda**  <a name="sam-cli-command-reference-remote-invoke-options-parameter-lambda"></a>
下列其他參數可用來叫用 Lambda 資源並接收緩衝回應：  
+ `ClientContext='base64-encoded string'`
+ `InvocationType='[ DryRun | Event | RequestResponse ]'`
+ `LogType='[ None | Tail ]'`
+ `Qualifier='string'`
下列其他參數可用來透過回應串流叫用 Lambda 資源：  
+ `ClientContext='base64-encoded string'`
+ `InvocationType='[ DryRun | RequestResponse ]'`
+ `LogType='[ None | Tail ]'`
+ `Qualifier='string'`
如需每個參數的說明，請參閱下列內容：  
+ 具有緩衝回應的 Lambda – [Lambda.Client.invoke](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lambda/client/invoke.html)
+ 具有回應串流的 Lambda – [Lambda.Client.invoke\$1with\$1response\$1stream](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lambda/client/invoke_with_response_stream.html)  
**Amazon Simple Queue Service (Amazon SQS)**  <a name="sam-cli-command-reference-remote-invoke-options-parameter-sqs"></a>
下列其他參數可用來傳送訊息至 Amazon SQS 佇列：  
+ `DelaySeconds=integer`
+ `MessageAttributes='json string'`
+ `MessageDeduplicationId='string'`
+ `MessageGroupId='string'`
+ `MessageSystemAttributes='json string'`
如需每個參數的說明，請參閱 [SQS.Client.send\$1message](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sqs/client/send_message.html)。  
**AWS Step Functions**  <a name="sam-cli-command-reference-remote-invoke-options-parameter-sf"></a>
下列其他參數可用來啟動狀態機器執行：  
+ `name='string'`
+ `traceHeader='string'`
如需每個參數的說明，請參閱 [SFN.Client.start\$1execution](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/stepfunctions/client/start_execution.html)。

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

`--region TEXT`  <a name="sam-cli-command-reference-remote-invoke-options-region"></a>
資源 AWS 區域 的 。例如 `us-east-1`。

`--stack-name TEXT`  <a name="sam-cli-command-reference-remote-invoke-options-stack-name"></a>
資源所屬的 CloudFormation 堆疊名稱。

`--tenant-id TEXT`  <a name="ref-sam-cli-local-invoke-options-tenancyconfig"></a>
多租用戶 Lambda 函數的租用戶 ID。用來確保不同租用戶之間的運算隔離。叫用使用租戶隔離模式設定的函數時為必要。

`--test-event-name NAME`  <a name="sam-cli-command-reference-remote-invoke-options-test-event-name"></a>
要傳遞至 Lambda 函數的可共用測試事件名稱。  
此選項僅支援 Lambda 函數。

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

下列範例會叫用 AWS 雲端中支援的資源，並啟用偵錯記錄，以列印 產生的偵錯訊息和時間戳記 AWS SAM CLI：

```
$ sam remote invoke--debug
```

# sam remote test-event
<a name="sam-cli-command-reference-remote-test-event"></a>

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

`sam remote test-event` 命令會與 Amazon EventBridge 結構描述登錄檔中的可共用測試事件互動。

## Usage
<a name="sam-cli-command-reference-remote-test-event-usage"></a>

```
$ sam remote test-event <options> <subcommand>
```

## 選項
<a name="sam-cli-command-reference-remote-test-event-options"></a>

`--help, -h`  <a name="sam-cli-command-reference-remote-invoke-options-help"></a>
顯示說明訊息並結束。

## 子命令
<a name="sam-cli-command-reference-remote-test-event-subcommands"></a>

`delete`  
從 EventBridge 結構描述登錄檔中刪除可共用的測試事件。如需更多參考資訊，請參閱 [sam remote test-event delete](sam-cli-command-reference-remote-test-event-delete.md)。

`get`  
從 EventBridge 結構描述登錄檔取得可共用的測試事件。如需更多參考資訊，請參閱 [sam remote test-event get](sam-cli-command-reference-remote-test-event-get.md)。

`list`  
列出 AWS Lambda 函數的現有可共用測試事件。如需更多參考資訊，請參閱 [sam remote test-event list](sam-cli-command-reference-remote-test-event-list.md)。

`put`  
將事件從本機檔案儲存至 EventBridge 結構描述登錄檔。如需更多參考資訊，請參閱 [sam remote test-event put](sam-cli-command-reference-remote-test-event-put.md)。

# sam remote test-event delete
<a name="sam-cli-command-reference-remote-test-event-delete"></a>

此頁面提供 AWS Serverless Application Model 命令列界面 (AWS SAM CLI) `sam remote test-event delete`子命令的參考資訊。
+ 如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)
+ 如需使用 AWS SAM CLI`sam remote test-event`命令的文件，請參閱 [使用 進行雲端測試的簡介 sam remote test-event](using-sam-cli-remote-test-event.md)。

`sam remote test-event delete` 子命令會從 Amazon EventBridge 結構描述登錄檔中刪除可共用的測試事件。

## Usage
<a name="sam-cli-command-reference-remote-test-event-delete-usage"></a>

```
$ sam remote test-event delete <arguments> <options>
```

## 引數
<a name="sam-cli-command-reference-remote-test-event-delete-args"></a>

**Resource ID (資源 ID)**  <a name="sam-cli-command-reference-remote-test-event-delete-args-resource-id"></a>
與可共用測試事件相關聯的 AWS Lambda 函數 ID。  
如果您提供邏輯 ID，您還必須使用 `--stack-name`選項為與 Lambda 函數相關聯的 AWS CloudFormation 堆疊提供值。  
*有效值*：資源的邏輯 ID 或資源 ARN。

## 選項
<a name="sam-cli-command-reference-remote-test-event-delete-options"></a>

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

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

`--help, -h`  <a name="sam-cli-command-reference-remote-test-event-delete-options-help"></a>
顯示說明訊息並結束。

`--name TEXT`  <a name="sam-cli-command-reference-remote-test-event-delete-options-name"></a>
要刪除的可共用測試事件的名稱。

`--stack-name TEXT`  <a name="sam-cli-command-reference-remote-test-event-delete-options-stack-name"></a>
與 Lambda 函數相關聯的 CloudFormation 堆疊名稱。  
如果您要提供 Lambda 函數邏輯 ID 做為 引數，則需要此選項。

# sam remote test-event get
<a name="sam-cli-command-reference-remote-test-event-get"></a>

此頁面提供 AWS Serverless Application Model 命令列界面 (AWS SAM CLI) `sam remote test-event get`子命令的參考資訊。
+ 如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)
+ 如需使用 AWS SAM CLI`sam remote test-event`命令的文件，請參閱 [使用 進行雲端測試的簡介 sam remote test-event](using-sam-cli-remote-test-event.md)。

`sam remote test-event get` 子命令會從 Amazon EventBridge 結構描述登錄檔取得可共用的測試事件。

## Usage
<a name="sam-cli-command-reference-remote-test-event-get-usage"></a>

```
$ sam remote test-event get <arguments> <options>
```

## 引數
<a name="sam-cli-command-reference-remote-test-event-get-args"></a>

**Resource ID (資源 ID)**  <a name="sam-cli-command-reference-remote-test-event-get-args-resource-id"></a>
與要取得的可共用測試事件相關聯的 AWS Lambda 函數 ID。  
如果您提供邏輯 ID，您還必須使用 `--stack-name`選項為與 Lambda 函數相關聯的 AWS CloudFormation 堆疊提供值。  
*有效值*：資源的邏輯 ID 或資源 ARN。

## 選項
<a name="sam-cli-command-reference-remote-test-event-get-options"></a>

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

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

`--help, -h`  <a name="sam-cli-command-reference-remote-test-event-get-options-help"></a>
顯示說明訊息並結束。

`--name TEXT`  <a name="sam-cli-command-reference-remote-test-event-get-options-name"></a>
要取得的可共用測試事件名稱。

`--output-file FILENAME`  <a name="sam-cli-command-reference-remote-test-event-get-options-output-file"></a>
將事件儲存至本機電腦上的檔案路徑和名稱。  
如果您不提供此選項， AWS SAM CLI會將可共用測試事件的內容輸出到您的主控台。

`--stack-name TEXT`  <a name="sam-cli-command-reference-remote-test-event-get-options-stack-name"></a>
與 Lambda 函數相關聯的 CloudFormation 堆疊名稱。  
如果您要提供 Lambda 函數邏輯 ID 做為引數，則需要此選項。

# sam remote test-event list
<a name="sam-cli-command-reference-remote-test-event-list"></a>

此頁面提供 AWS Serverless Application Model 命令列界面 (AWS SAM CLI) `sam remote test-event list`子命令的參考資訊。
+ 如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)
+ 如需使用 AWS SAM CLI`sam remote test-event`命令的文件，請參閱 [使用 進行雲端測試的簡介 sam remote test-event](using-sam-cli-remote-test-event.md)。

`sam remote test-event list` 子命令會從 Amazon EventBridge 結構描述登錄檔列出特定 AWS Lambda 函數的現有可共用測試事件。

## Usage
<a name="sam-cli-command-reference-remote-test-event-list-usage"></a>

```
$ sam remote test-event list <arguments> <options>
```

## 引數
<a name="sam-cli-command-reference-remote-test-event-list-args"></a>

**Resource ID (資源 ID)**  <a name="sam-cli-command-reference-remote-test-event-list-args-resource-id"></a>
與可共用測試事件相關聯的 Lambda 函數 ID。  
如果您提供邏輯 ID，您還必須使用 `--stack-name`選項為與 Lambda 函數相關聯的 AWS CloudFormation 堆疊提供值。  
*有效值*：資源的邏輯 ID 或資源 ARN。

## 選項
<a name="sam-cli-command-reference-remote-test-event-list-options"></a>

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

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

`--help, -h`  <a name="sam-cli-command-reference-remote-test-event-list-options-help"></a>
顯示說明訊息並結束。

`--stack-name TEXT`  <a name="sam-cli-command-reference-remote-test-event-list-options-stack-name"></a>
與 Lambda 函數相關聯的 CloudFormation 堆疊名稱。  
如果您要提供 Lambda 函數邏輯 ID 做為引數，則需要此選項。

## 範例
<a name="sam-cli-command-reference-remote-test-event-list-examples"></a>

如需使用此命令的範例，請參閱 [列出可共用的測試事件](using-sam-cli-remote-test-event.md#using-sam-cli-remote-test-event-use-list)。

# sam remote test-event put
<a name="sam-cli-command-reference-remote-test-event-put"></a>

此頁面提供 AWS Serverless Application Model 命令列界面 (AWS SAM CLI) `sam remote test-event put`子命令的參考資訊。
+ 如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)
+ 如需使用 AWS SAM CLI`sam remote test-event`命令的文件，請參閱 [使用 進行雲端測試的簡介 sam remote test-event](using-sam-cli-remote-test-event.md)。

`sam remote test-event put` 子命令會將本機電腦的可共用測試事件儲存至 Amazon EventBridge 結構描述登錄檔。

## Usage
<a name="sam-cli-command-reference-remote-test-event-put-usage"></a>

```
$ sam remote test-event put <arguments> <options>
```

## 引數
<a name="sam-cli-command-reference-remote-test-event-put-args"></a>

**Resource ID (資源 ID)**  <a name="sam-cli-command-reference-remote-test-event-put-args-resource-id"></a>
與可共用測試事件相關聯的 AWS Lambda 函數 ID。  
如果您提供邏輯 ID，您還必須使用 `--stack-name`選項為與 Lambda 函數相關聯的 AWS CloudFormation 堆疊提供值。  
*有效值*：資源的邏輯 ID 或資源 ARN。

## 選項
<a name="sam-cli-command-reference-remote-test-event-put-options"></a>

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

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

`--file FILENAME`  <a name="sam-cli-command-reference-remote-test-event-put-options-file"></a>
事件到本機電腦上 的檔案路徑和名稱。  
提供 `-`做為要從 讀取的檔案名稱值`stdin`。  
此選項為必要。

`--force`, `-f`  <a name="sam-cli-command-reference-remote-test-event-put-options-force"></a>
以相同名稱覆寫可共用的測試事件。

`--help, -h`  <a name="sam-cli-command-reference-remote-test-event-put-options-help"></a>
顯示說明訊息並結束。

`--name TEXT`  <a name="sam-cli-command-reference-remote-test-event-put-options-name"></a>
儲存可共用測試事件的名稱。  
如果 EventBridge 結構描述登錄檔中存在同名的可共用測試事件，則 AWS SAM CLI不會覆寫它。若要覆寫，請新增 `--force`選項。

`--output-file FILENAME`  <a name="sam-cli-command-reference-remote-test-event-put-options-output-file"></a>
將事件儲存至本機電腦上的檔案路徑和名稱。  
如果您不提供此選項， AWS SAM CLI會將可共用測試事件的內容輸出到您的主控台。

`--stack-name TEXT`  <a name="sam-cli-command-reference-remote-test-event-put-options-stack-name"></a>
與 Lambda 函數相關聯的 CloudFormation 堆疊名稱。  
如果您要提供 Lambda 函數邏輯 ID 做為 引數，則需要此選項。

## 範例
<a name="sam-cli-command-reference-remote-test-event-put-examples"></a>

如需使用此命令的範例，請參閱 [儲存可共用的測試事件](using-sam-cli-remote-test-event.md#using-sam-cli-remote-test-event-use-put)。

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

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

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

## Usage
<a name="sam-cli-command-reference-sam-sync-usage"></a>

```
$ sam sync <options>
```

## 選項
<a name="sam-cli-command-reference-sam-sync-options"></a>

`--base-dir, -s DIRECTORY`  <a name="sam-cli-command-reference-sam-sync-options-base-dir"></a>
針對此目錄，解析函數或 layer 原始程式碼的相對路徑。使用此選項可變更原始程式碼資料夾的相對路徑解析方式。根據預設，相對路徑會根據 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`  <a name="sam-cli-command-reference-sam-sync-options-build-image"></a>
您要在建置應用程式時使用的[容器映像](serverless-image-repositories.md#serverless-image-repository-uris)的 URI。根據預設， AWS SAM 會使用來自 [Amazon Elastic Container Registry (Amazon ECR) Public 的容器](https://docs.aws.amazon.com/AmazonECR/latest/public/what-is-ecr.html)映像儲存庫 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`  <a name="sam-cli-command-reference-sam-sync-options-build-in-source"></a>
`--build-in-source` 可讓您直接在來源資料夾中建置專案。  
`--build-in-source` 選項支援下列執行時間和建置方法：  
+ **執行時間** – `sam init --runtime`選項支援的任何Node.js執行時間。
+ **組建方法** – `Makefile`、`esbuild`。
`--build-in-source` 選項與下列選項不相容：  
+ `--use-container `
*預設*：`--no-build-in-source`

`--capabilities LIST`  <a name="sam-cli-command-reference-sam-sync-options-capabilities"></a>
您指定 CloudFormation 允許 建立特定堆疊的功能清單。有些堆疊範本可能包含可能影響 許可的資源 AWS 帳戶。例如，透過建立新的 AWS Identity and Access Management (IAM) 使用者。指定此選項以覆寫預設值。有效值包括下列項目：  
+ CAPABILITY\$1IAM
+ CAPABILITY\$1NAMED\$1IAM
+ CAPABILITY\$1RESOURCE\$1POLICY
+ CAPABILITY\$1AUTO\$1EXPAND
*預設*： `CAPABILITY_NAMED_IAM`和 `CAPABILITY_AUTO_EXPAND`

`--code`  <a name="sam-cli-command-reference-sam-sync-options-code"></a>
根據預設， 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 使用 AWS 服務 APIs，而不是透過 部署 AWS CloudFormation。若要更新您的 CloudFormation 堆疊，請執行 **sam sync --watch**或 **sam deploy**。

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

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

`--dependency-layer | --no-dependency-layer`  <a name="sam-cli-command-reference-sam-sync-options-dependency-layer"></a>
指定是否要將個別函數的相依性分隔為另一層，以加速同步程序。  
*預設*：`--dependency-layer`

`--image-repository TEXT`  <a name="sam-cli-command-reference-sam-sync-options-image-repository"></a>
此命令上傳函數映像的 Amazon Elastic Container Registry (Amazon ECR) 儲存庫名稱。使用 `Image`套件類型宣告的函數需要。

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

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

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

`--metadata`  <a name="sam-cli-command-reference-sam-sync-options-metadata"></a>
中繼資料映射，以連接到您在範本中參考的所有成品。

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

`--no-use-container`  <a name="ref-sam-cli-sync-options-no-use-container"></a>
可讓您使用 IDE 工具組來設定預設行為的選項。

`--parameter-overrides`  <a name="sam-cli-command-reference-sam-sync-options-parameter-overrides"></a>
包含 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`  <a name="sam-cli-command-reference-sam-sync-options-resource"></a>
指定要同步的資源類型。若要同步多個資源，您可以多次指定此選項。選項支援`--code`此選項。此值必須是 下列出的資源之一`--code`。例如 `--resource AWS::Serverless::Function --resource AWS::Serverless::LayerVersion`。

`--resource-id TEXT`  <a name="sam-cli-command-reference-sam-sync-options-resource-id"></a>
指定要同步的資源 ID。若要同步多個資源，您可以多次指定此選項。選項支援`--code`此選項。例如 `--resource-id Function1 --resource-id Function2`。

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

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

`--s3-prefix TEXT`  <a name="sam-cli-command-reference-sam-sync-options-s3-prefix"></a>
字首會新增至您上傳至 Amazon S3 儲存貯體的成品名稱。字首名稱是 Amazon S3 儲存貯體的路徑名稱 （資料夾名稱）。這僅適用於使用 `Zip`套件類型宣告的函數。

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

`--skip-deploy-sync | --no-skip-deploy-sync`  <a name="sam-cli-command-reference-sam-sync-options-skip-deploy-sync"></a>
指定在不需要時`--skip-deploy-sync`略過初始基礎設施同步。 AWS SAM CLI 將比較您的本機 AWS SAM 範本與部署的 CloudFormation 範本，並只在偵測到變更時才執行部署。  
指定 在每次執行`sam sync`時`--no-skip-deploy-sync`執行 CloudFormation 部署。  
如需詳細資訊，請參閱 [略過初始 CloudFormation 部署](using-sam-cli-sync.md#using-sam-cli-sync-options-skip-deploy-sync)。  
*預設*：`--skip-deploy-sync`

`--stack-name TEXT`  <a name="sam-cli-command-reference-sam-sync-options-stack-name"></a>
您應用程式的 CloudFormation 堆疊名稱。  
此選項為必要。

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

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

`--use-container, -u`  <a name="sam-cli-command-reference-sam-sync-options-use-container"></a>
如果您的函數依賴於具有原生編譯相依性的套件，請使用此選項在 AWS Lambda類似 Docker 容器內建置函數。  
目前，此選項與 不相容`--dependency-layer`。如果您`--use-container`搭配 使用 `--dependency-layer`， AWS SAM CLI會通知您並繼續搭配 使用`--no-dependency-layer`。

`--watch`  <a name="sam-cli-command-reference-sam-sync-options-watch"></a>
啟動可監控本機應用程式變更的程序，並自動將其同步至 AWS 雲端。根據預設，當您指定此選項時， 會在您更新應用程式中的所有資源時 AWS SAM 同步。使用此選項， AWS SAM 會執行初始 CloudFormation 部署。然後， AWS SAM 會使用 AWS 服務 APIs來更新程式碼資源。當您更新 AWS SAM 範本時， AWS SAM 會使用 CloudFormation 來更新基礎設施資源。

`--watch-exclude TEXT`  <a name="sam-cli-command-reference-sam-sync-options-watch-exclude"></a>
排除觀察檔案或資料夾以進行檔案變更。若要使用此選項，`--watch`也必須提供 。  
此選項會收到金鑰/值對：  
+ **金鑰** – 應用程式中 Lambda 函數的邏輯 ID。
+ **值** – 要排除的關聯檔案名稱或資料夾。
當您更新使用 `--watch-exclude`選項指定的任何檔案或資料夾時， AWS SAM CLI將不會啟動同步。不過，當其他檔案或資料夾的更新啟動同步時，這些檔案或資料夾會包含在該同步中。  
您可以在單一命令中多次提供此選項。

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

如需使用此命令的範例，請參閱 [sam 同步命令的選項](using-sam-cli-sync.md#using-sam-cli-sync-options)。

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

此頁面提供 AWS Serverless Application Model Command Line Interface (AWS SAM CLI) `sam traces`命令的參考資訊。

如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)

`sam traces` 命令會在 的 中擷取 AWS X-Ray 追蹤 AWS 帳戶 AWS 區域。

## Usage
<a name="sam-cli-command-reference-sam-traces-usage"></a>

```
$ sam traces <options>
```

## 選項
<a name="sam-cli-command-reference-sam-traces-options"></a>

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

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

`--end-time TEXT`  <a name="sam-cli-command-reference-sam-traces-options-end-time"></a>
擷取截至目前為止的追蹤。時間可以是「5 分鐘前」、「明天」等相對值，或「2018-01-01 10：10：10」等格式化時間戳記。

`--output TEXT`  <a name="sam-cli-command-reference-sam-traces-options-output"></a>
指定日誌的輸出格式。若要列印格式化日誌，請指定 `text`。若要將日誌列印為 JSON，請指定 `json`。

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

`--start-time TEXT`  <a name="sam-cli-command-reference-sam-traces-options-start-time"></a>
擷取此時開始的追蹤。時間可以是「5 分鐘前」、「昨天」等相對值，或「2018-01-01 10：10：10」等格式化時間戳記。預設為 '10 分鐘前'。

`--tail`  <a name="sam-cli-command-reference-sam-traces-options-tail"></a>
尾隨追蹤輸出。這會忽略結束時間引數，並在追蹤可用時繼續顯示追蹤。

`--trace-id TEXT`  <a name="sam-cli-command-reference-sam-traces-options-trace-id"></a>
X-Ray 追蹤的唯一識別符。

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

執行下列命令，依 ID 擷取 X-Ray 追蹤。

```
$ sam traces --trace-id tracing-id-1 --trace-id tracing-id-2
```

執行下列命令，以在 X-Ray 追蹤可用時結尾。

```
$ sam traces --tail
```

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

此頁面提供 AWS Serverless Application Model Command Line Interface (AWS SAM CLI) `sam validate`命令的參考資訊。

如需 的簡介 AWS SAM CLI，請參閱 [什麼是 AWS SAM CLI？](what-is-sam-overview.md#what-is-sam-cli)

`sam validate` 命令會驗證 AWS SAM 範本檔案是否有效。

## Usage
<a name="sam-cli-command-reference-sam-validate-usage"></a>

```
$ sam validate <options>
```

## 選項
<a name="sam-cli-command-reference-sam-validate-options"></a>

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

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

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

`--lint`  <a name="sam-cli-command-reference-sam-validate-options-lint"></a>
 透過 在範本上執行 linting 驗證**cfn-lint**。建立`cfnlintrc`組態檔案以指定其他參數。如需詳細資訊，請參閱 *CloudFormation GitHub 儲存庫*中的 [cfn-lint](https://github.com/aws-cloudformation/cfn-lint)。

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

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

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

`--template-file, --template, -t PATH`  <a name="sam-cli-command-reference-sam-validate-options-template-file"></a>
 AWS SAM 範本檔案。預設值為 `template.[yaml|yml]`。  
 如果您的範本位於目前的工作目錄中，且名為 `template.[yaml|yml|json]`，則不需要此選項。  
 如果您只執行 **sam build**，則不需要此選項。

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

如需使用此命令驗證範本的範例，請參閱 [驗證 AWS SAM 範本檔案](serverless-sam-cli-using-validate.md)。

如需搭配 cfn-lint 使用此命令的範例，請參閱 [使用 CloudFormation Linter 驗證您的 AWS SAM 應用程式](validate-cfn-lint.md)。

# AWS SAM CLI 管理
<a name="reference-sam-cli"></a>

本節包含有關如何管理和自訂 版本的資訊 AWS SAM CLI。這包括如何使用專案層級組態檔案設定 AWS SAM CLI命令參數值的相關資訊。它也包含管理不同 版本的資訊 AWS SAM CLI、設定 AWS 登入資料，讓 AWS SAM 可以代表您呼叫 AWS 服務，以及您可以自訂的不同方式 AWS SAM。本節以一般 AWS SAM 疑難排解的區段結尾。

**Topics**
+ [

# AWS SAM CLI 組態檔案
](serverless-sam-cli-config.md)
+ [

# 管理 AWS SAM CLI版本
](manage-sam-cli-versions.md)
+ [

# 設定 AWS 登入資料
](serverless-getting-started-set-up-credentials.md)
+ [

# 中的遙測 AWS SAM CLI
](serverless-sam-telemetry.md)
+ [

# AWS SAM CLI 故障診斷
](sam-cli-troubleshooting.md)

# AWS SAM CLI 組態檔案
<a name="serverless-sam-cli-config"></a>

 AWS Serverless Application Model 命令列界面 (AWS SAM CLI) 支援專案層級組態檔案，可用來設定 AWS SAM CLI命令參數值。

如需建立和使用組態檔案的文件，請參閱 [設定 AWS SAM CLI](using-sam-cli-configure.md)。

**Topics**
+ [

## 預設組態檔案設定
](#serverless-sam-cli-config-default)
+ [

## 支援的組態檔案格式
](#serverless-sam-cli-config-formats)
+ [

## 指定組態檔案
](#serverless-sam-cli-config-specify)
+ [

## 組態檔案基本概念
](#serverless-sam-cli-config-basics)
+ [

## 參數值規則
](#serverless-sam-cli-config-rules)
+ [

## 組態優先順序
](#serverless-sam-cli-config-precedence)
+ [

## 建立和修改組態檔案
](#serverless-sam-cli-config-using)

## 預設組態檔案設定
<a name="serverless-sam-cli-config-default"></a>

AWS SAM 使用以下預設組態檔案設定：
+ **Name** (名稱) – `samconfig`。
+ **位置** – 位於專案的根目錄。這與 `template.yaml` 檔案的位置相同。
+ **格式** – `TOML`。若要進一步了解，請參閱 *TOML 文件*中的 [TOML](https://toml.io/en/)。

以下是包含預設組態檔案名稱和位置的範例專案結構：

```
sam-app
├── README.md
├── __init__.py
├── events
├── hello_world
├── samconfig.toml
├── template.yaml
└── tests
```

以下是範例 `samconfig.toml` 檔案：

```
...
version = 0.1

[default]
[default.global]
[default.global.parameters]
stack_name = "sam-app"

[default.build.parameters]
cached = true
parallel = true

[default.deploy.parameters]
capabilities = "CAPABILITY_IAM"
confirm_changeset = true
resolve_s3 = true

[default.sync.parameters]
watch = true

[default.local_start_api.parameters]
warm_containers = "EAGER"

[prod]
[prod.sync]
[prod.sync.parameters]
watch = false
```

## 支援的組態檔案格式
<a name="serverless-sam-cli-config-formats"></a>

`TOML` 支援 和 `[YAML|YML]` 格式。請參閱下列基本語法：

### TOML
<a name="serverless-sam-cli-config-formats-toml"></a>

```
version = 0.1
[environment]
[environment.command]
[environment.command.parameters]
option = parameter value
```

### YAML
<a name="serverless-sam-cli-config-formats-yaml"></a>

```
version: 0.1
environment:
  command:
    parameters:
      option: parameter value
```

## 指定組態檔案
<a name="serverless-sam-cli-config-specify"></a>

根據預設， AWS SAM CLI會依下列順序尋找組態檔案：

1. **自訂組態檔案** – 如果您使用 `--config-file`選項來指定檔案名稱和位置，則 AWS SAM CLI會先尋找此檔案。

1. **預設`samconfig.toml`檔案** – 這是位於專案根目錄的預設組態檔案名稱和格式。如果您未指定自訂組態檔案，則 AWS SAM CLI會接著尋找此檔案。

1. **`samconfig.[yaml|yml]` 檔案** – 如果 `samconfig.toml`不存在於專案的根目錄，則 AWS SAM CLI 會尋找此檔案。

以下是使用 `--config-file`選項指定自訂組態檔案的範例：

```
$ sam deploy --config-file myconfig.yaml
```

**注意**  
`--config-file` 參數必須相對於 AWS SAM 範本檔案的位置，因為 AWS SAM CLI需要判斷套用組態的內容。`samconfig.toml` 檔案會管理您 版本的組態設定 AWS SAM CLI，而 CLI 會在 `samconfig.toml` 檔案的相對資料夾中尋找 `template.yaml` 檔案 （或覆寫組態檔案參數）。

## 組態檔案基本概念
<a name="serverless-sam-cli-config-basics"></a>

### Environment
<a name="serverless-sam-cli-config-basics-environment"></a>

**環境**是具名識別符，其中包含一組唯一的組態設定。您可以在單一 AWS SAM 應用程式中擁有多個環境。

預設環境名稱為 `default`。

使用 AWS SAM CLI`--config-env`選項來指定要使用的環境。

### 命令
<a name="serverless-sam-cli-config-basics-command"></a>

**命令**是 AWS SAM CLI指定 參數值的命令。

若要為所有命令指定參數值，請使用 `global`識別符。

參考命令 AWS SAM CLI時，請以底線 (` `) 取代空格 (`–`) 和連字號 ()`_`。請參閱以下範例：
+ `build`
+ `local_invoke`
+ `local_start_api`

### Parameters
<a name="serverless-sam-cli-config-basics-parameters"></a>

**參數**指定為鍵/值對。
+ **索引鍵**是 AWS SAM CLI命令選項名稱。
+ **值**是要指定的值。

指定金鑰時，請使用長格式的命令選項名稱，並以底線 (`–`) 取代連字號 ()`_`。範例如下：
+ `region`
+ `stack_name`
+ `template_file`

## 參數值規則
<a name="serverless-sam-cli-config-rules"></a>

### TOML
<a name="serverless-sam-cli-config-rules-toml"></a>
+ 布林值可以是 `true`或 `false`。例如 `confirm_changeset = true`。
+ 對於字串值，請使用引號 (`""`)。例如 `region = "us-west-2"`。
+ 對於清單值，請使用引號 (`""`)，並使用空格 () 分隔每個值` `。例如：`capabilities = "CAPABILITY_IAM CAPABILITY_NAMED_IAM"`。
+ 對於包含鍵/值對清單的值，對是空格分隔的 (` `)，每個對的值由編碼的引號 () 包圍`\" \"`。例如 `tags = "project=\"my-application\" stage=\"production\""`。
+ 對於可多次指定的參數值，該值是引數陣列。例如：`image_repositories = ["my-function-1=image-repo-1", "my-function-2=image-repo-2"]`。

### YAML
<a name="serverless-sam-cli-config-rules-yaml"></a>
+ 布林值可以是 `true`或 `false`。例如 `confirm_changeset: true`。
+ 對於包含單一字串值的項目，引號 (`""`) 是選用的。例如 `region: us-west-2`。這包括包含以單一字串提供的多個鍵值對的項目。以下是範例：

  ```
  $ sam deploy --tags "foo=bar hello=world"
  ```

  ```
  default:
    deploy:
      parameters:
        tags: foo=bar hello=world
  ```
+ 對於包含值清單的項目，或可在單一命令中多次使用的項目，請將它們指定為字串清單。

  以下是範例：

  ```
  $ sam remote invoke --parameter "InvocationType=Event" --parameter "LogType=None"
  ```

  ```
  default:
    remote_invoke:
      parameters:
          parameter:
          - InvocationType=Event
          - LogType=None
  ```

## 組態優先順序
<a name="serverless-sam-cli-config-precedence"></a>

設定值時，會發生下列優先順序：
+ 您在命令列提供的參數值優先於組態檔案和範本檔案`Parameters`區段中的對應值。
+ 如果在命令列或具有 `parameter_overrides`金鑰的組態檔案中使用 `--parameter-overrides`選項，則其值優先於範本檔案 `Parameters`區段中的值。
+ 在您的組態檔案中，針對特定命令提供的項目優先於全域項目。在下列範例中， `sam deploy`命令將使用堆疊名稱 `my-app-stack`。

------
#### [ TOML ]

  ```
  [default.global.parameters]
  stack_name = "common-stack"
  
  [default.deploy.parameters]
  stack_name = "my-app-stack"
  ```

------
#### [ YAML ]

  ```
  default:
    global:
      parameters:
        stack_name: common-stack
    deploy:
      parameters:
        stack_name: my-app-stack
  ```

------

## 建立和修改組態檔案
<a name="serverless-sam-cli-config-using"></a>

### 建立組態檔案
<a name="serverless-sam-cli-config-using-create"></a>

當您使用 建立應用程式時`sam init`，會建立預設`samconfig.toml`檔案。您也可以手動建立組態檔案。

### 修改組態檔案
<a name="serverless-sam-cli-config-using-modify"></a>

您可以手動修改您的組態檔案。此外，在任何 AWS SAM CLI互動式流程中，設定的數值會顯示在括號 () 中`[ ]`。如果您修改這些值， AWS SAM CLI會更新您的組態檔案。

以下是使用 `sam deploy --guided`命令的範例互動式流程：

```
$ sam deploy --guided

Configuring SAM deploy
======================

    Looking for config file [samconfig.toml] :  Found
    Reading default arguments  :  Success

    Setting default arguments for 'sam deploy'
    =========================================
    Stack Name [sam-app]: ENTER
    AWS Region [us-west-2]: ENTER
    #Shows you resources changes to be deployed and require a 'Y' to initiate deploy
    Confirm changes before deploy [Y/n]: n
    #SAM needs permission to be able to create roles to connect to the resources in your template
    Allow SAM CLI IAM role creation [Y/n]: ENTER
    #Preserves the state of previously provisioned resources when an operation fails
    Disable rollback [y/N]: ENTER
    HelloWorldFunction may not have authorization defined, Is this okay? [y/N]: y
    Save arguments to configuration file [Y/n]: ENTER
    SAM configuration file [samconfig.toml]: ENTER
    SAM configuration environment [default]: ENTER
```

修改組態檔案時， AWS SAM CLI會處理全域值，如下所示：
+ 如果 參數值存在於組態檔案的 `global`區段中，則 AWS SAM CLI不會將值寫入特定命令區段。
+ 如果 參數值同時存在於 `global`和特定命令區段中，則 會 AWS SAM CLI刪除特定項目，以便全域值。

# 管理 AWS SAM CLI版本
<a name="manage-sam-cli-versions"></a>

透過升級、降級和解除安裝來管理您的 AWS Serverless Application Model 命令列界面 (AWS SAM CLI) 版本。或者，您可以下載並安裝 AWS SAM CLI每晚組建。

**Topics**
+ [

## 升級 AWS SAM CLI
](#manage-sam-cli-versions-upgrade)
+ [

## 解除安裝 AWS SAM CLI
](#manage-sam-cli-versions-uninstall)
+ [

## 從 切換Homebrew為使用 來管理 AWS SAM CLI
](#manage-sam-cli-versions-switch)
+ [

## 管理 AWS SAM CLI每夜組建
](#manage-sam-cli-versions-nightly-build)
+ [

## 使用 將 AWS SAM CLI 安裝到虛擬環境中 pip
](#manage-sam-cli-versions-install-virtual)
+ [

## 使用 AWS SAM CLI管理 Homebrew
](#manage-sam-cli-versions-homebrew)
+ [

## 疑難排解
](#manage-sam-cli-versions-troubleshoot)

## 升級 AWS SAM CLI
<a name="manage-sam-cli-versions-upgrade"></a>

### Linux
<a name="manage-sam-cli-versions-upgrade-linux"></a>

若要升級 Linux AWS SAM CLI上的 ，請遵循 中的安裝說明[安裝 AWS SAM CLI](install-sam-cli.md#install-sam-cli-instructions)，但將 `--update`選項新增至安裝命令，如下所示：

```
sudo ./sam-installation/install --update
```

### macOS
<a name="manage-sam-cli-versions-upgrade-macos"></a>

必須透過用來安裝它的 AWS SAM CLI相同方法進行升級。我們建議您使用 套件安裝程式來安裝和升級 AWS SAM CLI。

 若要使用套件安裝程式升級 AWS SAM CLI，請安裝最新的套件版本。如需說明，請參閱[安裝 AWS SAM CLI](install-sam-cli.md#install-sam-cli-instructions)。

### Windows
<a name="manage-sam-cli-versions-upgrade-windows"></a>

若要升級 AWS SAM CLI，請[安裝 AWS SAM CLI](install-sam-cli.md)再次重複 中的 Windows 安裝步驟。

## 解除安裝 AWS SAM CLI
<a name="manage-sam-cli-versions-uninstall"></a>

### Linux
<a name="manage-sam-cli-versions-uninstall-linux"></a>

若要在 Linux 上解除安裝 AWS SAM CLI，您必須執行下列命令來刪除 symlink 和安裝目錄：

1. 找到符號連結並安裝路徑。
   + 使用 **which**命令尋找符號連結：

     ```
     which sam
     ```

     輸出會顯示 AWS SAM 二進位檔所在的路徑，例如：

     ```
      /usr/local/bin/sam
     ```
   + 使用 **ls**命令尋找符號連結指向的目錄：

     ```
     ls -l /usr/local/bin/sam
     ```

     在下列範例中，安裝目錄為 `/usr/local/aws-sam-cli`。

     ```
      lrwxrwxrwx 1 ec2-user ec2-user 49 Oct 22 09:49 /usr/local/bin/sam -> /usr/local/aws-sam-cli/current/bin/sam
     ```

1. 刪除符號連結。

   ```
   sudo rm /usr/local/bin/sam
   ```

1. 刪除安裝目錄。

   ```
   sudo rm -rf /usr/local/aws-sam-cli
   ```

### macOS
<a name="manage-sam-cli-versions-uninstall-macos"></a>

透過用來安裝 AWS SAM CLI的相同方法解除安裝 。我們建議您使用 套件安裝程式來安裝 AWS SAM CLI。

如果您使用套件安裝程式安裝 AWS SAM CLI，請依照下列步驟解除安裝 。

**若要解除安裝 AWS SAM CLI**

1.  修改並執行下列動作以移除 AWS SAM CLI程式：

   ```
   $ sudo rm -rf /path-to/aws-sam-cli
   ```

   1.  *sudo* – 如果您的使用者擁有 AWS SAM CLI程式安裝位置的寫入許可，**sudo**則不需要 。否則，**sudo** 是必要的。

   1.  */path-to* – 您安裝 AWS SAM CLI程式的路徑。預設位置為 `/usr/local`。

1.  透過修改並執行以下項目`$PATH`來 AWS SAM CLI移除 ：

   ```
   $ sudo rm -rf /path-to-symlink-directory/sam
   ```

   1.  *sudo* – 如果您的使用者具有 的寫入許可`$PATH`，**sudo**則不需要 。否則，**sudo** 是必要的。

   1.  *path-to-symlink-directory* – 您的`$PATH`環境變數。預設位置為 `/usr/local/bin`。

1.  執行下列動作，確認已解除安裝 AWS SAM CLI：

   ```
   $ sam --version
   command not found: sam
   ```

### Windows
<a name="manage-sam-cli-versions-uninstall-windows"></a>

若要使用 Windows 設定解除安裝 AWS SAM CLI，請遵循下列步驟：

1. 從開始功能表中，搜尋「新增或移除程式」。

1. 選擇名為**AWS SAM 命令列界面**的結果，然後選擇**解除安裝**以啟動解除安裝程式。

1. 確認您要解除安裝 AWS SAM CLI。

## 從 切換Homebrew為使用 來管理 AWS SAM CLI
<a name="manage-sam-cli-versions-switch"></a>

如果您使用 Homebrew 安裝和升級 AWS SAM CLI，建議您使用 AWS 支援的 方法。請依照這些指示切換到支援的 方法。

**使用 從 切換 Homebrew**

1. 請依照 的指示[解除安裝Homebrew已安裝的 AWS SAM CLI](#manage-sam-cli-versions-homebrew-uninstall)解除安裝 Homebrew受管版本。

1. 遵循 中的指示[安裝 AWS SAM CLI](install-sam-cli.md)，使用支援的方法安裝 AWS SAM CLI。

## 管理 AWS SAM CLI每夜組建
<a name="manage-sam-cli-versions-nightly-build"></a>

您可以下載並安裝 AWS SAM CLI每晚組建。它包含程式碼的 AWS SAM CLI發行前版本，可能比生產版本不穩定。安裝後，您可以搭配 `sam-nightly`命令使用夜間組建。您可以同時安裝和使用 AWS SAM CLI的生產版本和夜間建置版本。

**注意**  
每夜組建不包含組建映像的發行前版本。因此，使用 **--use-container**選項建置您的無伺服器應用程式會使用建置映像的最新生產版本。

### 安裝 AWS SAM CLI每晚組建
<a name="manage-sam-cli-versions-nightly-build-install"></a>

若要安裝 AWS SAM CLI每晚組建，請遵循下列指示。

#### Linux
<a name="manage-sam-cli-versions-nightly-build-install-linux"></a>

您可以使用 套件安裝程式，在 Linux x86\$164 平台上安裝 的夜間建置版本 AWS SAM CLI。

**安裝 AWS SAM CLI每晚組建**

1. 在 *aws-sam-cliGitHub*-sam-cli 儲存庫中，從 [sam-cli-nightly](https://github.com/aws/aws-sam-cli/releases/sam-cli-nightly/) 下載套件安裝程式。

1. 請依照[安裝 AWS SAM CLI](install-sam-cli.md) 的步驟，安裝夜間建置套件。

#### macOS
<a name="manage-sam-cli-versions-nightly-build-install-macos"></a>

您可以使用夜間建置套件安裝程式macOS，在 上安裝 的夜間建置版本 AWS SAM CLI。

**安裝 AWS SAM CLI每晚組建**

1. 從 aws-sam-cli 儲存庫中的 [sam-cli-nightly](https://github.com/aws/aws-sam-cli/releases/sam-cli-nightly/) 下載您平台的套件安裝程式。 *aws-sam-cli GitHub *

1. 請依照[安裝 AWS SAM CLI](install-sam-cli.md)的步驟，安裝夜間建置套件。

#### Windows
<a name="manage-sam-cli-versions-nightly-build-windows"></a>

此下載連結提供 的 AWS SAM CLI每夜建置版本：[AWS SAM CLI每夜建置](https://github.com/aws/aws-sam-cli/releases/download/sam-cli-nightly/AWS_SAM_CLI_64_PY3.msi)。若要在 Windows 上安裝每夜組建，請執行與 相同的步驟[安裝 AWS SAM CLI](install-sam-cli.md)，但改用每夜組建下載連結。

若要確認您已安裝每晚建置版本，請執行 **sam-nightly --version**命令。此命令的輸出格式為 `1.X.Y.dev<YYYYMMDDHHmm>`，例如：

```
SAM CLI, version 1.20.0.dev202103151200
```

### 從 切換Homebrew到套件安裝程式
<a name="manage-sam-cli-versions-nightly-build-switch"></a>

如果您使用 Homebrew來安裝和升級 AWS SAM CLI每夜組建，並想要使用套件安裝程式切換到 ，請遵循以下步驟。

**從 切換Homebrew到套件安裝程式**

1. 解除安裝Homebrew已安裝 AWS SAM CLI的夜間組建。

   ```
   $ brew uninstall aws-sam-cli-nightly
   ```

1. 執行下列動作， AWS SAM CLI確認已解除安裝每夜組建：

   ```
   $ sam-nightly --version
   zsh: command not found: sam-nightly
   ```

1. 請依照上一節中的步驟安裝 AWS SAM CLI每夜組建。

## 使用 將 AWS SAM CLI 安裝到虛擬環境中 pip
<a name="manage-sam-cli-versions-install-virtual"></a>

我們建議您使用原生套件安裝程式來安裝 AWS SAM CLI。如果您必須使用 pip，我們建議您將 AWS SAM CLI 安裝到虛擬環境中。這可確保乾淨的安裝環境，並在發生錯誤時隔離環境。

**注意**  
截至 2023 AWS SAM CLI 年 10 月 24 日， 不再支援 Python 3.7。如需詳細資訊，請參閱 [AWS SAM CLI 停止對 的支援 Python 3.7](important-notes.md#important-notes-2023-10-python)。

**將 AWS SAM CLI 安裝到虛擬環境**

1. 從您選擇的起始目錄中，建立虛擬環境並將其命名。

------
#### [ Linux / macOS ]

   ```
   $ mkdir project
   $ cd project
   $ python3 -m venv venv
   ```

------
#### [ Windows ]

   ```
   > mkdir project
   > cd project
   > py -3 -m venv venv
   ```

------

1. 啟用虛擬環境

------
#### [ Linux / macOS ]

   ```
   $ . venv/bin/activate
   ```

   提示會變更以顯示您的虛擬環境處於作用中狀態。

   ```
   (venv) $ 
   ```

------
#### [ Windows ]

   ```
   > venv\Scripts\activate
   ```

   提示會變更以顯示您的虛擬環境處於作用中狀態。

   ```
   (venv) > 
   ```

------

1. 將 AWS SAM CLI 安裝到您的虛擬環境。

   ```
   (venv) $ pip install --upgrade aws-sam-cli
   ```

1. 確認 AWS SAM CLI 已正確安裝。

   ```
   (venv) $ sam --version
   SAM CLI, version 1.94.0
   ```

1. 您可以使用 `deactivate` 命令來離開虛擬環境。每當您啟動新的工作階段時，您都必須重新啟用環境。

## 使用 AWS SAM CLI管理 Homebrew
<a name="manage-sam-cli-versions-homebrew"></a>

**注意**  
從 2023 年 9 月開始， AWS 將不再維護 () AWS SAM CLI的 AWS 受管Homebrew安裝程式`aws/tap/aws-sam-cli`。若要繼續使用 Homebrew，您可以使用 社群受管安裝程式 (`aws-sam-cli`)。從 2023 年 9 月開始，任何參考 的Homebrew命令`aws/tap/aws-sam-cli`都會重新導向至 `aws-sam-cli`。  
我們建議您使用我們支援的[安裝](install-sam-cli.md)和[升級](#manage-sam-cli-versions-upgrade)方法。

### 使用 安裝 AWS SAM CLI Homebrew
<a name="manage-sam-cli-versions-homebrew-install"></a>

**注意**  
這些指示使用社群受 AWS SAM CLI管Homebrew安裝程式。如需進一步支援，請參閱 *[homebrew-core](https://github.com/Homebrew/homebrew-core/issues) 儲存庫*。

**安裝 AWS SAM CLI**

1. 執行下列命令：

   ```
   $ brew install aws-sam-cli
   ```

1. 驗證安裝：

   ```
   $ sam --version
   ```

   成功安裝 後 AWS SAM CLI，您應該會看到如下所示的輸出：

   ```
   SAM CLI, version 1.94.0
   ```

### 使用 升級 AWS SAM CLI Homebrew
<a name="manage-sam-cli-versions-homebrew-upgrade"></a>

若要使用 升級 AWS SAM CLI Homebrew，請執行下列命令：

```
$ brew upgrade aws-sam-cli
```

### 解除安裝Homebrew已安裝的 AWS SAM CLI
<a name="manage-sam-cli-versions-homebrew-uninstall"></a>

如果 AWS SAM CLI使用 安裝 Homebrew，請依照下列步驟解除安裝它。

**解除安裝 AWS SAM CLI**

1. 執行下列命令：

   ```
   $ brew uninstall aws-sam-cli
   ```

1. 執行下列動作，確認已解除安裝 AWS SAM CLI：

   ```
   $ sam --version
   command not found: sam
   ```

### 切換到社群受管Homebrew安裝程式
<a name="manage-sam-cli-versions-homebrew-switch"></a>

如果您使用的是 AWS 受管Homebrew安裝程式 (`aws/tap/aws-sam-cli`)，而且偏好繼續使用 Homebrew，建議您切換到 社群受管Homebrew安裝程式 (`aws-sam-cli`)。

若要在單一命令中切換，請執行下列動作：

```
$ brew uninstall aws-sam-cli && brew untap aws/tap && brew cleanup aws/tap && brew update && brew install aws-sam-cli
```

請依照這些指示個別執行每個命令。

**切換到社群受管Homebrew安裝程式**

1. 解除安裝 的 AWS 受管Homebrew版本 AWS SAM CLI：

   ```
   $ brew uninstall aws-sam-cli
   ```

1. 確認 AWS SAM CLI 已解除安裝：

   ```
   $ which sam
   sam not found
   ```

1. 移除 AWS 受管 AWS SAM CLI點選：

   ```
   $ brew untap aws/tap
   ```

   如果您收到類似以下的錯誤，請新增 `--force`選項，然後再試一次。

   ```
   Error: Refusing to untap aws/tap because it contains the following installed formulae or casks:
   aws-sam-cli-nightly
   ```

1. 移除 AWS 受管安裝程式的快取檔案：

   ```
   $ brew cleanup aws/tap
   ```

1. 更新Homebrew和所有公式：

   ```
   $ brew update
   ```

1. 安裝 的社群受管版本 AWS SAM CLI：

   ```
   $ brew install aws-sam-cli
   ```

1. 確認已成功安裝 AWS SAM CLI：

   ```
   $ sam --version
   SAM CLI, version 1.94.0
   ```

## 疑難排解
<a name="manage-sam-cli-versions-troubleshoot"></a>

如果您在安裝或使用 時遇到錯誤 AWS SAM CLI，請參閱 [AWS SAM CLI 故障診斷](sam-cli-troubleshooting.md)。

# 設定 AWS 登入資料
<a name="serverless-getting-started-set-up-credentials"></a>

 AWS SAM 命令列界面 (CLI) 需要您設定 AWS 登入資料，以便可以代表您呼叫 AWS 服務。例如， AWS SAM CLI會呼叫 Amazon S3 和 CloudFormation。

您可能已經設定 AWS 登入資料來使用 AWS 工具，例如其中一個 AWS SDKs或 AWS CLI。如果您尚未這麼做，本主題會顯示設定 AWS 登入資料的建議方法。

若要設定 AWS 登入資料，您必須擁有要設定的 IAM 使用者的*存取金鑰 ID* 和*私密存取金鑰*。如需有關存取金鑰 IDs和私密存取金鑰的資訊，請參閱《[IAM 使用者指南》中的管理 IAM 使用者的存取金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html)。 **

接著，判斷您是否 AWS CLI 已安裝 。然後遵循下列其中一個區段中的指示：

## 使用 AWS CLI
<a name="serverless-getting-started-set-up-credentials-cli"></a>

如果您 AWS CLI 已安裝 ，請使用 `aws configure`命令並依照提示操作：

```
$ aws configure
AWS Access Key ID [None]: your_access_key_id
AWS Secret Access Key [None]: your_secret_access_key
Default region name [None]: 
Default output format [None]:
```

如需 `aws configure`命令的相關資訊，請參閱*AWS Command Line Interface 《 使用者指南*》中的[快速設定 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration) 。

## 不使用 AWS CLI
<a name="serverless-getting-started-set-up-credentials-no-cli"></a>

如果您沒有 AWS CLI 安裝 ，您可以建立登入資料檔案或設定環境變數：
+ **登入資料檔案** – 您可以在本機系統的登入資料檔案中設定 AWS 登入資料。此檔案必須位於下列其中一個位置：
  + `~/.aws/credentials` Linux 或 macOS 上的
  + Windows 上的 `C:\Users\USERNAME\.aws\credentials`

  此檔案應該包含下列格式的行：

  ```
  [default]
  aws_access_key_id = your_access_key_id
  aws_secret_access_key = your_secret_access_key
  ```

   
+ **環境變數** – 您可以設定 `AWS_ACCESS_KEY_ID`和 `AWS_SECRET_ACCESS_KEY`環境變數。

  若要在 Linux 或 macOS 上設定這些變數，請使用**匯出**命令：

  ```
  export AWS_ACCESS_KEY_ID=your_access_key_id
  export AWS_SECRET_ACCESS_KEY=your_secret_access_key
  ```

  若要在 Windows 上設定這些變數，請使用 **set** 命令：

  ```
  set AWS_ACCESS_KEY_ID=your_access_key_id
  set AWS_SECRET_ACCESS_KEY=your_secret_access_key
  ```

# 中的遙測 AWS SAM CLI
<a name="serverless-sam-telemetry"></a>

在 AWS，我們根據與客戶互動的經驗來開發和啟動服務。我們使用客戶意見回饋來反覆查看我們的產品。遙測是額外資訊，有助於我們進一步了解客戶的需求、診斷問題，以及提供可改善客戶體驗的功能。

 AWS SAM 命令列界面 (CLI) 會收集遙測，例如一般用量指標、系統和環境資訊和錯誤。如需所收集遙測類型的詳細資訊，請參閱 [收集的資訊類型](#serverless-sam-telemtry-data-collected)。

 AWS SAM CLI **不會**收集個人資訊，例如使用者名稱或電子郵件地址。同時也不會擷取敏感的專案層級資訊。

客戶會控制是否開啟遙測，也可以隨時變更其設定。如果遙測保持開啟， AWS SAM CLI會在背景傳送遙測資料，而不需要任何額外的客戶互動。

## 關閉工作階段的遙測
<a name="serverless-sam-telemtry-opt-out"></a>

在 macOS 和 Linux 作業系統中，您可以關閉單一工作階段的遙測功能。若要關閉目前工作階段的遙測功能，請執行下列命令，將環境變數 `SAM_CLI_TELEMETRY` 設定為 `false`。針對每個新的終端或工作階段重複此命令。

```
export SAM_CLI_TELEMETRY=0
```

## 在所有工作階段中關閉您的設定檔的遙測功能
<a name="serverless-sam-telemtry-opt-out-profile"></a>

當您在作業系統上執行 AWS SAM CLI時，請執行下列命令來關閉所有工作階段的遙測。

### 關閉 Linux 中的遙測功能
<a name="w2aac28c19c16c15b5"></a>

1. 執行：

   ```
   echo "export SAM_CLI_TELEMETRY=0" >>~/.profile
   ```

1. 執行：

   ```
   source ~/.profile
   ```

### 關閉 macOS 中的遙測功能
<a name="w2aac28c19c16c15b7"></a>

1. 執行：

   ```
   echo "export SAM_CLI_TELEMETRY=0" >>~/.profile
   ```

1. 執行：

   ```
   source ~/.profile
   ```

### 關閉 Windows 中的遙測功能
<a name="w2aac28c19c16c15b9"></a>

您可以使用下列命令，在終端機視窗的生命週期內暫時設定環境變數：

如果使用命令提示字元：

```
set SAM_CLI_TELEMETRY=0
```

如果使用 PowerShell：

```
$env:SAM_CLI_TELEMETRY=0
```

若要在 Command Prompt 或 PowerShell 中永久設定環境變數，請使用下列命令：

```
setx SAM_CLI_TELEMETRY 0
```

**注意**  
在終端機關閉並重新開啟之前，變更不會生效。

## 收集的資訊類型
<a name="serverless-sam-telemtry-data-collected"></a>
+ **用量資訊** – 客戶執行的一般命令和子命令。
+ **錯誤和診斷資訊** – 客戶執行的命令狀態和持續時間，包括結束代碼、內部例外名稱，以及連線至 Docker 時失敗。
+ **系統和環境資訊** – Python 版本、作業系統 (Windows、Linux 或 macOS)、執行環境 AWS SAM CLI（例如 AWS CodeBuild IDE AWS 工具組或終端機），以及用量屬性的雜湊值。

## 進一步了解
<a name="serverless-sam-telemtry-learn-more"></a>

收集的 AWS SAM CLI遙測資料符合 AWS 資料隱私權政策。如需詳細資訊，請參閱下列內容：
+ [AWS 服務條款](https://aws.amazon.com/service-terms/)
+ [資料隱私權常見問答集](https://aws.amazon.com/compliance/data-privacy-faq/)

# AWS SAM CLI 故障診斷
<a name="sam-cli-troubleshooting"></a>

本節提供如何使用、安裝和管理 AWS Serverless Application Model 命令列界面 () 疑難排解錯誤訊息的詳細資訊AWS SAM CLI。

**Topics**
+ [

## 疑難排解
](#install-sam-cli-troubleshooting)
+ [

## 錯誤訊息
](#sam-cli-troubleshoot-messages)
+ [

## 警告訊息
](#sam-cli-troubleshoot-warning)

## 疑難排解
<a name="install-sam-cli-troubleshooting"></a>

如需與 相關的疑難排解指引 AWS SAM CLI，請參閱 [對安裝錯誤進行故障診斷](install-sam-cli.md#sam-cli-troubleshoot-install)。

## 錯誤訊息
<a name="sam-cli-troubleshoot-messages"></a>

### Curl 錯誤：「curl： (6) 無法解析：...」
<a name="sam-cli-troubleshoot-messages-curl"></a>

嘗試叫用 API Gateway 端點時，您會看到下列錯誤：

```
curl: (6) Could not resolve: endpointdomain (Domain name not found)
```

這表示您嘗試將請求傳送至無效的網域。如果您的無伺服器應用程式無法成功部署，或您的**curl**命令中有錯別字，就會發生這種情況。使用 CloudFormation 主控台或 驗證應用程式是否已成功部署 AWS CLI，並驗證您的**curl**命令是否正確。

### 錯誤：找不到具有指定堆疊名稱的確切資源資訊
<a name="sam-cli-troubleshoot-messages-exact-resource"></a>

在包含單一 Lambda 函數資源的應用程式上執行 `sam remote invoke`命令時，您會看到下列錯誤：

```
Error: Can't find exact resource information with given <stack-name>. Please provide full resource ARN or --stack-name to resolve the ambiguity.
```

**可能原因：您未提供 `--stack-name`選項。**  
如果未提供函數 ARN 做為引數，則`sam remote invoke`命令需要提供 `--stack-name`選項。

**解決方案：提供 `--stack-name`選項。**  
以下是範例：  

```
$ sam remote invoke --stack-name sam-app

Invoking Lambda Function HelloWorldFunction                                                                                                                                                                                                                     
START RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82 Version: $LATEST
END RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82
REPORT RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82  Duration: 11.31 ms      Billed Duration: 12 ms  Memory Size: 128 MB     Max Memory Used: 67 MB  Init Duration: 171.71 ms
{"statusCode":200,"body":"{\"message\":\"hello world\"}"}%
```

### 錯誤：找不到堆疊名稱中的資源資訊
<a name="sam-cli-troubleshoot-messages-stack-name"></a>

執行 `sam remote invoke`命令並以引數形式傳遞 Lambda 函數 ARN 時，您會看到下列錯誤：

```
Error: Can't find resource information from stack name (<stack-name>) and resource id (<function-id>)
```

**可能原因：您在 `samconfig.toml` 檔案中已定義堆疊名稱值。**  
 AWS SAM CLI 先檢查您的`samconfig.toml`檔案是否有堆疊名稱。如果指定，引數會以邏輯 ID 值傳遞。

**解決方案：改為傳遞函數的邏輯 ID。**  
您可以傳遞函數的邏輯 ID 做為引數，而不是函數的 ARN。

**解決方案：從您的組態檔案移除堆疊名稱值。**  
您可以從組態檔案移除堆疊名稱值。這可防止 AWS SAM CLI將函數 ARN 做為邏輯 ID 值傳遞。  
修改組態檔案`sam build`後執行 。

### 錯誤：無法建立受管資源：找不到登入資料
<a name="sam-cli-troubleshoot-messages-credentials"></a>

執行 **sam deploy**命令時，您會看到下列錯誤：

```
Error: Failed to create managed resources: Unable to locate credentials
```

這表示您尚未設定 AWS 登入資料，讓 AWS SAM CLI能夠進行 AWS 服務呼叫。若要修正此問題，您必須設定 AWS 登入資料。如需詳細資訊，請參閱[設定 AWS 登入資料](serverless-getting-started-set-up-credentials.md)。

### 錯誤：Windows 中的 FileNotFoundError
<a name="sam-cli-troubleshoot-messages-filenotfound-win"></a>

在 Windows 上執行 命令 AWS SAM CLI時，您可能會看到下列錯誤：

```
Error: FileNotFoundError
```

可能原因： AWS SAM CLI可能會與超過 Windows 路徑上限的檔案路徑互動。

解決方案：若要解決此問題，必須啟用新的長路徑行為。若要這樣做，請參閱 *Microsoft* [Windows 應用程式開發文件中的在 Windows 10 版本 1607 和更新版本中啟用長路徑](https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=powershell#enable-long-paths-in-windows-10-version-1607-and-later)。

### 錯誤：pip 的相依性解析程式...
<a name="sam-cli-troubleshoot-messages-pip"></a>

*範例錯誤文字：*

```
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. 
aws-sam-cli 1.58.0 requires aws-sam-translator==1.51.0, but you have aws-sam-translator 1.58.0 which is incompatible. 
aws-sam-cli 1.58.0 requires typing-extensions==3.10.0.0, but you have typing-extensions 4.4.0 which is incompatible.
```

**可能原因：如果您使用 pip 來安裝套件，套件之間的相依性可能會衝突。**  
套件的每個版本`aws-sam-cli`都取決於`aws-sam-translator`套件的版本。例如，`aws-sam-cli`v1.58.0 可能取決於 `aws-sam-translator` v1.51.0。  
如果您使用 安裝 AWS SAM CLI pip，然後安裝另一個取決於較新版本 的套件`aws-sam-translator`，則會發生下列情況：  
+ `aws-sam-translator` 將安裝較新版本的 。
+ 目前版本的 `aws-sam-cli`和較新版本的 `aws-sam-translator`可能不相容。
+ 當您使用 時 AWS SAM CLI，會發生相依性解析程式錯誤。

**解決方案：**

1. 使用 AWS SAM CLI原生套件安裝程式。

   1. 使用 pip 解除安裝 AWS SAM CLI。如需說明，請參閱[解除安裝 AWS SAM CLI](manage-sam-cli-versions.md#manage-sam-cli-versions-uninstall)。

   1. 使用原生套件安裝程式安裝 AWS SAM CLI。如需說明，請參閱[安裝 AWS SAM CLI](install-sam-cli.md)。

   1. 必要時，請使用原生套件安裝程式升級 AWS SAM CLI。如需說明，請參閱[升級 AWS SAM CLI](manage-sam-cli-versions.md#manage-sam-cli-versions-upgrade)。

1. 如果您必須使用 pip，我們建議您將 AWS SAM CLI 安裝到虛擬環境中。這可確保乾淨的安裝環境，並在發生錯誤時隔離環境。如需說明，請參閱[使用 將 AWS SAM CLI 安裝到虛擬環境中 pip](manage-sam-cli-versions.md#manage-sam-cli-versions-install-virtual)。

### 錯誤：沒有這類命令「遠端」
<a name="sam-cli-troubleshoot-messages-command-remote"></a>

執行 `sam remote invoke`命令時，您會看到下列錯誤：

```
$ sam remote invoke ...
2023-06-20 08:15:07 Command remote not available
Usage: sam [OPTIONS] COMMAND [ARGS]...
Try 'sam -h' for help.

Error: No such command 'remote'.
```

**可能原因：您的 AWS SAM CLI版本已過期。**  
此 AWS SAM CLI`sam remote invoke`命令已發行 AWS SAM CLI1.88.0 版。您可以執行 `sam --version`命令來檢查您的版本。

**解決方案：將您的 AWS SAM CLI 升級至最新版本。**  
如需說明，請參閱[升級 AWS SAM CLI](manage-sam-cli-versions.md#manage-sam-cli-versions-upgrade)。

### 錯誤：在本機執行 AWS SAM 專案需要 Docker。是否已安裝？
<a name="sam-cli-troubleshoot-messages-docker"></a>

執行 **sam local start-api**命令時，您會看到下列錯誤：

```
Error: Running AWS SAM projects locally requires Docker. Have you got it installed?
```

這表示您尚未Docker正確安裝 。 Docker 需要在本機測試您的應用程式。若要修正此問題，請遵循為您的開發主機安裝 Docker 的指示。如需詳細資訊，請參閱[安裝 Docker](install-docker.md)。

### 錯誤：未滿足安全限制
<a name="sam-cli-troubleshoot-messages-security-constraints"></a>

執行 時**sam deploy --guided**，系統會提示您輸入問題 `Function may not have authorization defined, Is this okay? [y/N]`。如果您以 **N**（預設回應） 回應此提示，您會看到下列錯誤：

```
Error: Security Constraints Not Satisfied
```

提示會通知您，您即將部署的應用程式可能已設定可公開存取的 Amazon API Gateway API，無需授權。透過**N**回應此提示，您表示這不行。

若要修正此問題，您有下列選項：
+ 使用授權設定您的應用程式。如需設定授權的資訊，請參閱 [使用 AWS SAM 範本控制 API 存取](serverless-controlling-access-to-apis.md)。
+ 如果您的目的是在未經授權的情況下擁有可公開存取的 API 端點，請重新啟動您的部署，並使用 回應此問題**Y**，以指出您可以進行部署。

### 訊息：缺少身分驗證字符
<a name="sam-cli-troubleshoot-messages-auth-token"></a>

嘗試叫用 API Gateway 端點時，您會看到下列錯誤：

```
{"message":"Missing Authentication Token"}
```

這表示您嘗試將請求傳送至正確的網域，但無法辨識 URI。若要修正此問題，請驗證完整的 URL，並使用正確的 URL 更新**curl**命令。

## 警告訊息
<a name="sam-cli-troubleshoot-warning"></a>

### 警告：... AWS 將不再維護 的Homebrew安裝程式 AWS SAM ...
<a name="sam-cli-troubleshoot-warning-homebrew"></a>

使用 安裝 AWS SAM CLI 時Homebrew，您會看到下列警告訊息：

```
Warning: ... AWS will no longer maintain the Homebrew installer for AWS SAM (aws/tap/aws-sam-cli). 
				For AWS supported installations, use the first party installers ...
```

**潛在原因： AWS 不再維持Homebrew支援。**  
從 2023 年 9 月開始， AWS 將不再維護 的Homebrew安裝程式 AWS SAM CLI。  

**解決方案：使用 AWS 支援的安裝方法。**
+ 您可以在 找到 AWS 支援的安裝方法[安裝 AWS SAM CLI](install-sam-cli.md)。

**解決方案：若要繼續使用 Homebrew，請使用 社群受管安裝程式。**
+ 您可以自行決定使用 社群受管Homebrew安裝程式。如需說明，請參閱[使用 AWS SAM CLI管理 Homebrew](manage-sam-cli-versions.md#manage-sam-cli-versions-homebrew)。

# AWS SAM 連接器參考
<a name="reference-sam-connector"></a>

本節包含 AWS Serverless Application Model (AWS SAM) 連接器資源類型的參考資訊。如需連接器的簡介，請參閱 [使用 AWS SAM 連接器管理資源許可](managing-permissions-connectors.md)。

## 連接器支援的來源和目的地資源類型
<a name="supported-connector-resource-types"></a>

`AWS::Serverless::Connector` 資源類型支援來源和目的地資源之間的選取連線數。在 AWS SAM 範本中設定連接器時，請使用下表來參考支援的連線，以及需要為每個來源和目的地資源類型定義的屬性。如需在範本中設定連接器的詳細資訊，請參閱 [AWS::Serverless::Connector](sam-resource-connector.md)。

對於來源和目的地資源，當在相同範本中定義時，請使用 `Id` 屬性。或者，`Qualifier`您可以新增 來縮小已定義資源的範圍。當資源不在相同的範本內時，請使用支援的屬性組合。

 若要請求新的連線，請在 *serverless-application-model AWS GitHub儲存庫*[提交新問題](https://github.com/aws/serverless-application-model/issues/new?assignees=&labels=area%2Fconnectors,stage%2Fneeds-triage&template=other.md&title=%28New%20Connector%20Profile%29)。


| Source type (來源類型) | 目的地類型 | 許可 | 來源屬性 | 目的地屬性 | 
| --- | --- | --- | --- | --- | 
| `AWS::ApiGateway::RestApi` | `AWS::Lambda::Function` | `Write` | `Id` 或 `ResourceId`、 `Qualifier`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::ApiGateway::RestApi` | `AWS::Serverless::Function` | `Write` | `Id` 或 `ResourceId`、 `Qualifier`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::ApiGatewayV2::Api` | `AWS::Lambda::Function` | `Write` | `Id` 或 `ResourceId`、 `Qualifier`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::ApiGatewayV2::Api` | `AWS::Serverless::Function` | `Write` | `Id` 或 `ResourceId`、 `Qualifier`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::AppSync::DataSource` | `AWS::DynamoDB::Table` | `Read` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::AppSync::DataSource` | `AWS::DynamoDB::Table` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::AppSync::DataSource` | `AWS::Events::EventBus` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::AppSync::DataSource` | `AWS::Lambda::Function` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::AppSync::DataSource` | `AWS::Serverless::Function` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::AppSync::DataSource` | `AWS::Serverless::SimpleTable` | `Read` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::AppSync::DataSource` | `AWS::Serverless::SimpleTable` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::AppSync::GraphQLApi` | `AWS::Lambda::Function` | `Write` | `Id` 或 `ResourceId`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::AppSync::GraphQLApi` | `AWS::Serverless::Function` | `Write` | `Id` 或 `ResourceId`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::DynamoDB::Table` | `AWS::Lambda::Function` | `Read` | `Id` 或 `Arn`和 `Type` | `Id` 或 `RoleName`和 `Type` | 
| `AWS::DynamoDB::Table` | `AWS::Serverless::Function` | `Read` | `Id` 或 `Arn`和 `Type` | `Id` 或 `RoleName`和 `Type` | 
| `AWS::Events::Rule` | `AWS::Events::EventBus` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Events::Rule` | `AWS::Lambda::Function` | `Write` | `Id` 或 `Arn`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Events::Rule` | `AWS::Serverless::Function` | `Write` | `Id` 或 `Arn`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Events::Rule` | `AWS::Serverless::StateMachine` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Events::Rule` | `AWS::SNS::Topic` | `Write` | `Id` 或 `Arn`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Events::Rule` | `AWS::SQS::Queue` | `Write` | `Id` 或 `Arn`和 `Type` | `Id` 或 `QueueUrl`、 `Arn`和 `Type` | 
| `AWS::Events::Rule` | `AWS::StepFunctions::StateMachine` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Lambda::Function` | `AWS::DynamoDB::Table` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Lambda::Function` | `AWS::Events::EventBus` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Lambda::Function` | `AWS::Lambda::Function` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Lambda::Function` | `AWS::Location::PlaceIndex` | `Read` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Lambda::Function` | `AWS::S3::Bucket` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Lambda::Function` | `AWS::Serverless::Function` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Lambda::Function` | `AWS::Serverless::SimpleTable` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Lambda::Function` | `AWS::Serverless::StateMachine` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Name`、 `Arn`和 `Type` | 
| `AWS::Lambda::Function` | `AWS::SNS::Topic` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Lambda::Function` | `AWS::SQS::Queue` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Lambda::Function` | `AWS::StepFunctions::StateMachine` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Name`、 `Arn`和 `Type` | 
| `AWS::S3::Bucket` | `AWS::Lambda::Function` | `Write` | `Id` 或 `Arn`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::S3::Bucket` | `AWS::Serverless::Function` | `Write` | `Id` 或 `Arn`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::Api` | `AWS::Lambda::Function` | `Write` | `Id` 或 `ResourceId`、 `Qualifier`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::Api` | `AWS::Serverless::Function` | `Write` | `Id` 或 `ResourceId`、 `Qualifier`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::Function` | `AWS::DynamoDB::Table` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::Function` | `AWS::Events::EventBus` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::Function` | `AWS::Lambda::Function` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::Function` | `AWS::S3::Bucket` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::Function` | `AWS::Serverless::Function` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::Function` | `AWS::Serverless::SimpleTable` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::Function` | `AWS::Serverless::StateMachine` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Name`、 `Arn`和 `Type` | 
| `AWS::Serverless::Function` | `AWS::SNS::Topic` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::Function` | `AWS::SQS::Queue` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::Function` | `AWS::StepFunctions::StateMachine` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Name`、 `Arn`和 `Type` | 
| `AWS::Serverless::HttpApi` | `AWS::Lambda::Function` | `Write` | `Id` 或 `ResourceId`、 `Qualifier`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::HttpApi` | `AWS::Serverless::Function` | `Write` | `Id` 或 `ResourceId`、 `Qualifier`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::SimpleTable` | `AWS::Lambda::Function` | `Read` | `Id` 或 `Arn`和 `Type` | `Id` 或 `RoleName`和 `Type` | 
| `AWS::Serverless::SimpleTable` | `AWS::Serverless::Function` | `Read` | `Id` 或 `Arn`和 `Type` | `Id` 或 `RoleName`和 `Type` | 
| `AWS::Serverless::StateMachine` | `AWS::DynamoDB::Table` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::StateMachine` | `AWS::Events::EventBus` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::StateMachine` | `AWS::Lambda::Function` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::StateMachine` | `AWS::S3::Bucket` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::StateMachine` | `AWS::Serverless::Function` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::StateMachine` | `AWS::Serverless::SimpleTable` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::StateMachine` | `AWS::Serverless::StateMachine` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Name`、 `Arn`和 `Type` | 
| `AWS::Serverless::StateMachine` | `AWS::SNS::Topic` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::StateMachine` | `AWS::SQS::Queue` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::Serverless::StateMachine` | `AWS::StepFunctions::StateMachine` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Name`、 `Arn`和 `Type` | 
| `AWS::SNS::Topic` | `AWS::Lambda::Function` | `Write` | `Id` 或 `Arn`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::SNS::Topic` | `AWS::Serverless::Function` | `Write` | `Id` 或 `Arn`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::SNS::Topic` | `AWS::SQS::Queue` | `Write` | `Id` 或 `Arn`和 `Type` | `Id` 或 `QueueUrl`、 `Arn`和 `Type` | 
| `AWS::SQS::Queue` | `AWS::Lambda::Function` | `Read`, `Write` | `Id` 或 `Arn`和 `Type` | `Id` 或 `RoleName`和 `Type` | 
| `AWS::SQS::Queue` | `AWS::Serverless::Function` | `Read`, `Write` | `Id` 或 `Arn`和 `Type` | `Id` 或 `RoleName`和 `Type` | 
| `AWS::StepFunctions::StateMachine` | `AWS::DynamoDB::Table` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::StepFunctions::StateMachine` | `AWS::Events::EventBus` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::StepFunctions::StateMachine` | `AWS::Lambda::Function` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::StepFunctions::StateMachine` | `AWS::S3::Bucket` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::StepFunctions::StateMachine` | `AWS::Serverless::Function` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::StepFunctions::StateMachine` | `AWS::Serverless::SimpleTable` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::StepFunctions::StateMachine` | `AWS::Serverless::StateMachine` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Name`、 `Arn`和 `Type` | 
| `AWS::StepFunctions::StateMachine` | `AWS::SNS::Topic` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::StepFunctions::StateMachine` | `AWS::SQS::Queue` | `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Arn`和 `Type` | 
| `AWS::StepFunctions::StateMachine` | `AWS::StepFunctions::StateMachine` | `Read`, `Write` | `Id` 或 `RoleName`和 `Type` | `Id` 或 `Name`、 `Arn`和 `Type` | 

## 連接器建立的 IAM 政策
<a name="reference-sam-connector-policies"></a>

本節記錄使用連接器 AWS SAM 時由 建立的 AWS Identity and Access Management (IAM) 政策。

`AWS::DynamoDB::Table` 至 `AWS::Lambda::Function`  
**政策類型**  
連接至`AWS::Lambda::Function`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Read`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "dynamodb:DescribeStream",
        "dynamodb:GetRecords",
        "dynamodb:GetShardIterator",
        "dynamodb:ListStreams"
      ],
      "Resource": [
        "%{Source.Arn}/stream/*"
      ]
    }
  ]
}
```

`AWS::Events::Rule` 至 `AWS::SNS::Topic`  
**政策類型**  
[https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topicpolicy.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topicpolicy.html) 連接到 `AWS::SNS::Topic`。  
**存取類別**  
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "events.amazonaws.com"
      },
      "Resource": "%{Destination.Arn}",
      "Action": "sns:Publish",
      "Condition": {
        "ArnEquals": {
          "aws:SourceArn": "%{Source.Arn}"
        }
      }
    }
  ]
}
```

`AWS::Events::Rule` 至 `AWS::Events::EventBus`  
**政策類型**  
連接至`AWS::Events::Rule`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Resource": [
        "%{Destination.Arn}"
      ]
    }
  ]
}
```

`AWS::Events::Rule` 至 `AWS::StepFunctions::StateMachine`  
**政策類型**  
連接至`AWS::Events::Rule`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:StartExecution"
      ],
      "Resource": [
        "%{Destination.Arn}"
      ]
    }
  ]
}
```

`AWS::Events::Rule` 至 `AWS::Lambda::Function`  
**政策類型**  
`[AWS::Lambda::Permission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html)` 連接到 `AWS::Lambda::Function`。  
**存取類別**  
`Write`  

```
{
  "Action": "lambda:InvokeFunction",
  "Principal": "events.amazonaws.com",
  "SourceArn": "%{Source.Arn}"
}
```

`AWS::Events::Rule` 至 `AWS::SQS::Queue`  
**政策類型**  
`[AWS::SQS::QueuePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queuepolicy.html)` 連接到 `AWS::SQS::Queue`。  
**存取類別**  
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "events.amazonaws.com"
      },
      "Resource": "%{Destination.Arn}",
      "Action": "sqs:SendMessage",
      "Condition": {
        "ArnEquals": {
          "aws:SourceArn": "%{Source.Arn}"
        }
      }
    }
  ]
}
```

`AWS::Lambda::Function` 至 `AWS::Lambda::Function`  
**政策類型**  
連接至`AWS::Lambda::Function`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "lambda:InvokeAsync",
        "lambda:InvokeFunction"
      ],
      "Resource": [
        "%{Destination.Arn}"
      ]
    }
  ]
}
```

`AWS::Lambda::Function` 至 `AWS::S3::Bucket`  
**政策類型**  
連接至`AWS::Lambda::Function`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Read`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:GetObjectAcl",
        "s3:GetObjectLegalHold",
        "s3:GetObjectRetention",
        "s3:GetObjectTorrent",
        "s3:GetObjectVersion",
        "s3:GetObjectVersionAcl",
        "s3:GetObjectVersionForReplication",
        "s3:GetObjectVersionTorrent",
        "s3:ListBucket",
        "s3:ListBucketMultipartUploads",
        "s3:ListBucketVersions",
        "s3:ListMultipartUploadParts"
      ],
      "Resource": [
        "%{Destination.Arn}",
        "%{Destination.Arn}/*"
      ]
    }
  ]
}
```
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:AbortMultipartUpload",
        "s3:DeleteObject",
        "s3:DeleteObjectVersion",
        "s3:PutObject",
        "s3:PutObjectLegalHold",
        "s3:PutObjectRetention",
        "s3:RestoreObject"
      ],
      "Resource": [
        "%{Destination.Arn}",
        "%{Destination.Arn}/*"
      ]
    }
  ]
}
```

`AWS::Lambda::Function` 至 `AWS::DynamoDB::Table`  
**政策類型**  
連接至`AWS::Lambda::Function`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Read`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "dynamodb:GetItem",
        "dynamodb:Query",
        "dynamodb:Scan",
        "dynamodb:BatchGetItem",
        "dynamodb:ConditionCheckItem",
        "dynamodb:PartiQLSelect"
      ],
      "Resource": [
        "%{Destination.Arn}",
        "%{Destination.Arn}/index/*"
      ]
    }
  ]
}
```
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "dynamodb:PutItem",
        "dynamodb:UpdateItem",
        "dynamodb:DeleteItem",
        "dynamodb:BatchWriteItem",
        "dynamodb:PartiQLDelete",
        "dynamodb:PartiQLInsert",
        "dynamodb:PartiQLUpdate"
      ],
      "Resource": [
        "%{Destination.Arn}",
        "%{Destination.Arn}/index/*"
      ]
    }
  ]
}
```

`AWS::Lambda::Function` 至 `AWS::SQS::Queue`  
**政策類型**  
連接至`AWS::Lambda::Function`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Read`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sqs:ReceiveMessage",
        "sqs:GetQueueAttributes"
      ],
      "Resource": [
        "%{Destination.Arn}"
      ]
    }
  ]
}
```
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sqs:DeleteMessage",
        "sqs:SendMessage",
        "sqs:ChangeMessageVisibility",
        "sqs:PurgeQueue"
      ],
      "Resource": [
        "%{Destination.Arn}"
      ]
    }
  ]
}
```

`AWS::Lambda::Function` 至 `AWS::SNS::Topic`  
**政策類型**  
連接至`AWS::Lambda::Function`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sns:Publish"
      ],
      "Resource": [
        "%{Destination.Arn}"
      ]
    }
  ]
}
```

`AWS::Lambda::Function` 至 `AWS::StepFunctions::StateMachine`  
**政策類型**  
連接至`AWS::Lambda::Function`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:StartExecution",
        "states:StartSyncExecution"
      ],
      "Resource": [
        "%{Destination.Arn}"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "states:StopExecution"
      ],
      "Resource": [
        "arn:${AWS::Partition}:states:${AWS::Region}:${AWS::AccountId}:execution:%{Destination.Name}:*"
      ]
    }
  ]
}
```
`Read`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeStateMachine",
        "states:ListExecutions"
      ],
      "Resource": [
        "%{Destination.Arn}"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeExecution",
        "states:DescribeStateMachineForExecution",
        "states:GetExecutionHistory"
      ],
      "Resource": [
        "arn:${AWS::Partition}:states:${AWS::Region}:${AWS::AccountId}:execution:%{Destination.Name}:*"
      ]
    }
  ]
}
```

`AWS::Lambda::Function` 至 `AWS::Events::EventBus`  
**政策類型**  
連接至`AWS::Lambda::Function`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Resource": [
        "%{Destination.Arn}"
      ]
    }
  ]
}
```

`AWS::Lambda::Function` 至 `AWS::Location::PlaceIndex`  
**政策類型**  
連接至`AWS::Lambda::Function`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Read`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "geo:DescribePlaceIndex",
        "geo:GetPlace",
        "geo:SearchPlaceIndexForPosition",
        "geo:SearchPlaceIndexForSuggestions",
        "geo:SearchPlaceIndexForText"
      ],
      "Resource": [
        "%{Destination.Arn}"
      ]
    }
  ]
}
```

`AWS::ApiGatewayV2::Api` 至 `AWS::Lambda::Function`  
**政策類型**  
`[AWS::Lambda::Permission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html)` 連接到 `AWS::Lambda::Function`。  
**存取類別**  
`Write`  

```
{
  "Action": "lambda:InvokeFunction",
  "Principal": "apigateway.amazonaws.com",
  "SourceArn": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:%{Source.ResourceId}/%{Source.Qualifier}"
}
```

`AWS::ApiGateway::RestApi` 至 `AWS::Lambda::Function`  
**政策類型**  
`[AWS::Lambda::Permission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html)` 連接到 `AWS::Lambda::Function`。  
**存取類別**  
`Write`  

```
{
  "Action": "lambda:InvokeFunction",
  "Principal": "apigateway.amazonaws.com",
  "SourceArn": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:%{Source.ResourceId}/%{Source.Qualifier}"
}
```

`AWS::SNS::Topic` 至 `AWS::SQS::Queue`  
**政策類型**  
`[AWS::SQS::QueuePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queuepolicy.html)` 連接到 `AWS::SQS::Queue`。  
**存取類別**  
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "sns.amazonaws.com"
      },
      "Resource": "%{Destination.Arn}",
      "Action": "sqs:SendMessage",
      "Condition": {
        "ArnEquals": {
          "aws:SourceArn": "%{Source.Arn}"
        }
      }
    }
  ]
}
```

`AWS::SNS::Topic` 至 `AWS::Lambda::Function`  
**政策類型**  
`[AWS::Lambda::Permission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html)` 連接到 `AWS::Lambda::Function`。  
**存取類別**  
`Write`  

```
{
  "Action": "lambda:InvokeFunction",
  "Principal": "sns.amazonaws.com",
  "SourceArn": "%{Source.Arn}"
}
```

`AWS::SQS::Queue` 至 `AWS::Lambda::Function`  
**政策類型**  
連接至`AWS::Lambda::Function`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sqs:DeleteMessage"
      ],
      "Resource": [
        "%{Source.Arn}"
      ]
    }
  ]
}
```
`Read`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sqs:ReceiveMessage",
        "sqs:GetQueueAttributes"
      ],
      "Resource": [
        "%{Source.Arn}"
      ]
    }
  ]
}
```

`AWS::S3::Bucket` 至 `AWS::Lambda::Function`  
**政策類型**  
`[AWS::Lambda::Permission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html)` 連接到 `AWS::Lambda::Function`。  
**存取類別**  
`Write`  

```
{
  "Action": "lambda:InvokeFunction",
  "Principal": "s3.amazonaws.com",
  "SourceArn": "%{Source.Arn}",
  "SourceAccount": "${AWS::AccountId}"
}
```

`AWS::StepFunctions::StateMachine` 至 `AWS::Lambda::Function`  
**政策類型**  
連接至`AWS::StepFunctions::StateMachine`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "lambda:InvokeAsync",
        "lambda:InvokeFunction"
      ],
      "Resource": [
        "%{Destination.Arn}"
      ]
    }
  ]
}
```

`AWS::StepFunctions::StateMachine` 至 `AWS::SNS::Topic`  
**政策類型**  
連接至`AWS::StepFunctions::StateMachine`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sns:Publish"
      ],
      "Resource": [
        "%{Destination.Arn}"
      ]
    }
  ]
}
```

`AWS::StepFunctions::StateMachine` 至 `AWS::SQS::Queue`  
**政策類型**  
連接至`AWS::StepFunctions::StateMachine`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sqs:SendMessage"
      ],
      "Resource": [
        "%{Destination.Arn}"
      ]
    }
  ]
}
```

`AWS::StepFunctions::StateMachine` 至 `AWS::S3::Bucket`  
**政策類型**  
連接至`AWS::StepFunctions::StateMachine`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Read`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:GetObjectAcl",
        "s3:GetObjectLegalHold",
        "s3:GetObjectRetention",
        "s3:GetObjectTorrent",
        "s3:GetObjectVersion",
        "s3:GetObjectVersionAcl",
        "s3:GetObjectVersionForReplication",
        "s3:GetObjectVersionTorrent",
        "s3:ListBucket",
        "s3:ListBucketMultipartUploads",
        "s3:ListBucketVersions",
        "s3:ListMultipartUploadParts"
      ],
      "Resource": [
        "%{Destination.Arn}",
        "%{Destination.Arn}/*"
      ]
    }
  ]
}
```
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:AbortMultipartUpload",
        "s3:DeleteObject",
        "s3:DeleteObjectVersion",
        "s3:PutObject",
        "s3:PutObjectLegalHold",
        "s3:PutObjectRetention",
        "s3:RestoreObject"
      ],
      "Resource": [
        "%{Destination.Arn}",
        "%{Destination.Arn}/*"
      ]
    }
  ]
}
```

`AWS::StepFunctions::StateMachine` 至 `AWS::DynamoDB::Table`  
**政策類型**  
連接至`AWS::StepFunctions::StateMachine`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Read`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "dynamodb:GetItem",
        "dynamodb:Query",
        "dynamodb:Scan",
        "dynamodb:BatchGetItem",
        "dynamodb:ConditionCheckItem",
        "dynamodb:PartiQLSelect"
      ],
      "Resource": [
        "%{Destination.Arn}",
        "%{Destination.Arn}/index/*"
      ]
    }
  ]
}
```
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "dynamodb:PutItem",
        "dynamodb:UpdateItem",
        "dynamodb:DeleteItem",
        "dynamodb:BatchWriteItem",
        "dynamodb:PartiQLDelete",
        "dynamodb:PartiQLInsert",
        "dynamodb:PartiQLUpdate"
      ],
      "Resource": [
        "%{Destination.Arn}",
        "%{Destination.Arn}/index/*"
      ]
    }
  ]
}
```

`AWS::StepFunctions::StateMachine` 至 `AWS::StepFunctions::StateMachine`  
**政策類型**  
連接至`AWS::StepFunctions::StateMachine`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Read`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeExecution"
      ],
      "Resource": [
        "arn:${AWS::Partition}:states:${AWS::Region}:${AWS::AccountId}:execution:%{Destination.Name}:*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "events:DescribeRule"
      ],
      "Resource": [
        "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:rule/StepFunctionsGetEventsForStepFunctionsExecutionRule"
      ]
    }
  ]
}
```
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:StartExecution"
      ],
      "Resource": [
        "%{Destination.Arn}"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "states:StopExecution"
      ],
      "Resource": [
        "arn:${AWS::Partition}:states:${AWS::Region}:${AWS::AccountId}:execution:%{Destination.Name}:*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "events:PutTargets",
        "events:PutRule"
      ],
      "Resource": [
        "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:rule/StepFunctionsGetEventsForStepFunctionsExecutionRule"
      ]
    }
  ]
}
```

`AWS::StepFunctions::StateMachine` 至 `AWS::Events::EventBus`  
**政策類型**  
連接至`AWS::StepFunctions::StateMachine`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Resource": [
        "%{Destination.Arn}"
      ]
    }
  ]
}
```

`AWS::AppSync::DataSource` 至 `AWS::DynamoDB::Table`  
**政策類型**  
連接至`AWS::AppSync::DataSource`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Read`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "dynamodb:GetItem",
        "dynamodb:Query",
        "dynamodb:Scan",
        "dynamodb:BatchGetItem",
        "dynamodb:ConditionCheckItem",
        "dynamodb:PartiQLSelect"
      ],
      "Resource": [
        "%{Destination.Arn}",
        "%{Destination.Arn}/index/*"
      ]
    }
  ]
}
```
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "dynamodb:PutItem",
        "dynamodb:UpdateItem",
        "dynamodb:DeleteItem",
        "dynamodb:BatchWriteItem",
        "dynamodb:PartiQLDelete",
        "dynamodb:PartiQLInsert",
        "dynamodb:PartiQLUpdate"
      ],
      "Resource": [
        "%{Destination.Arn}",
        "%{Destination.Arn}/index/*"
      ]
    }
  ]
}
```

`AWS::AppSync::DataSource` 至 `AWS::Lambda::Function`  
**政策類型**  
連接至`AWS::AppSync::DataSource`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "lambda:InvokeAsync",
        "lambda:InvokeFunction"
      ],
      "Resource": [
        "%{Destination.Arn}",
        "%{Destination.Arn}:*"
      ]
    }
  ]
}
```

`AWS::AppSync::DataSource` 至 `AWS::Events::EventBus`  
**政策類型**  
連接至`AWS::AppSync::DataSource`角色[的客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。  
**存取類別**  
`Write`  

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Resource": [
        "%{Destination.Arn}"
      ]
    }
  ]
}
```

`AWS::AppSync::GraphQLApi` 至 `AWS::Lambda::Function`  
**政策類型**  
`[AWS::Lambda::Permission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html)` 連接到 `AWS::Lambda::Function`。  
**存取類別**  
`Write`  

```
{
  "Action": "lambda:InvokeFunction",
  "Principal": "appsync.amazonaws.com",
  "SourceArn": "arn:${AWS::Partition}:appsync:${AWS::Region}:${AWS::AccountId}:apis/%{Source.ResourceId}"
}
```

# 安裝 Docker 以搭配 使用 AWS SAM CLI
<a name="install-docker"></a>

Docker 是在您的機器上執行容器的應用程式。透過 Docker， AWS SAM 可以提供類似於 AWS Lambda 容器的本機環境，以建置、測試和偵錯無伺服器應用程式。

**注意**  
Docker 只有在本機測試您的應用程式，以及使用 `--use-container`選項建置部署套件時，才需要 。

**Topics**
+ [

## 安裝 Docker
](#install-docker-instructions)
+ [

## 後續步驟
](#install-docker-next-steps)

## 安裝 Docker
<a name="install-docker-instructions"></a>

請依照這些指示，在您的作業系統Docker上安裝 。

### Linux
<a name="install-docker-instructions-linux"></a>

Docker 可在許多不同的作業系統上使用，包括最現代化的 Linux 發行版本，例如 CentOS、 Debian和 Ubuntu。如需有關在特定作業系統Docker上安裝 的資訊，請參閱 [Docker 文件網站上的取得](https://docs.docker.com/get-docker/) Docker。

**在 Amazon Linux 2 或 Amazon Linux 2023 Docker上安裝**

1. 更新已安裝的套裝服務，並在執行個體上封裝快取。

   ```
   $ sudo yum update -y
   ```

1. 安裝最新的 Docker Community Edition 套件。
   + 對於 Amazon Linux 2，請執行下列動作：

     ```
     $ sudo amazon-linux-extras install docker
     ```
   + 對於 Amazon Linux 2023，請執行下列動作：

     ```
     $ sudo yum install -y docker
     ```

1. 啟動 Docker 服務。

   ```
   $ sudo service docker start
   ```

1. 將 `ec2-user`新增至 `docker`群組，讓您無需使用 即可執行Docker命令**sudo**。

   ```
   $ sudo usermod -a -G docker ec2-user
   ```

1. 登出並重新登入，以挑選新的`docker`群組許可。若要執行此作業，請關閉目前的 SSH 終端機視窗，然後重新連線至新的執行個體。您的新 SSH 工作階段應具有適當的`docker`群組許可。

1. 確認 `ec2-user`可以在不使用 的情況下執行 Docker 命令**sudo**。

   ```
   $ docker ps
   ```

   您應該會看到下列輸出，確認已安裝並執行 Docker：

   ```
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
   ```

**注意**  
在 Linux 上，若要使用與主機機器不同的指令集架構來建置和執行 Lambda 函數，還有其他步驟可設定 Docker。例如，若要在`x86_64`機器上執行`arm64`函數，您可以執行下列命令來設定Docker協助程式：`docker run --rm --privileged multiarch/qemu-user-static --reset -p yes`。

如果您在安裝 時遇到問題Docker，請參閱 [對安裝錯誤進行故障診斷](install-sam-cli.md#sam-cli-troubleshoot-install)。或者，請參閱 Docker Docs 網站上的 **Linux 安裝後步驟**[疑難排解](https://docs.docker.com/engine/install/linux-postinstall/#troubleshooting)一節。

### macOS
<a name="install-docker-instructions-macos"></a>

**注意**  
Docker 桌面已正式支援，但從 AWS SAM CLI 1.47.0 版開始，只要它們使用Docker執行時間，您就可以使用替代方案。

1. 安裝 Docker

    AWS SAM CLI 支援在 macOS Sierra 10.12 或更新版本Docker上執行。如需如何安裝 Docker，請參閱 Docker 文件網站上的[安裝適用於 Mac 的Docker桌面](https://docs.docker.com/docker-for-mac/install/)。

1. 設定共用磁碟機

    AWS SAM CLI 需要將專案目錄或任何父目錄列在共用磁碟機中。這可能需要檔案共用。如需詳細資訊，請參閱 *Docker 文件*中的[磁碟區掛載需要檔案共用](https://docs.docker.com/desktop/troubleshoot-and-support/troubleshoot/topics/#volume-mounting-requires-file-sharing-for-any-project-directories-outside-of-home)疑難排解主題。

1. 驗證安裝

   安裝 Docker 之後，請確認它是否正常運作。同時確認您可以從Docker命令列執行命令 （例如 `docker ps`)。您不需要安裝、擷取或提取任何容器， AWS SAM CLI會視需要自動執行此操作。

如果您在安裝 時遇到問題Docker，如需更多故障診斷秘訣，請參閱 Docker 文件網站的[故障診斷一節](https://docs.docker.com/docker-for-mac/troubleshoot/)。

### Windows
<a name="install-docker-instructions-windows"></a>

**注意**  
AWS SAM 正式支援 Docker Desktop。不過，從 AWS SAM CLI 1.47.0 版開始，只要替代方案使用Docker執行時間，您就可以使用它們。

1. 安裝 Docker。

   Docker 桌面支援最新的 Windows 作業系統。對於舊版 Windows，可使用 Docker 工具箱。選擇您的 Windows 版本，以取得正確的Docker安裝步驟：
   + 若要安裝Docker適用於 Windows 10 的 ，請參閱 Docker 文件網站上的[安裝適用於 Windows 的Docker桌面](https://docs.docker.com/docker-for-windows/install/)。
   + 若要Docker為舊版 Windows 安裝 ，請參閱 [Docker Toolbox](https://github.com/docker-archive/toolbox) GitHub 儲存庫上的Docker工具箱。

1. 設定您的共用磁碟機。

    AWS SAM CLI 需要將專案目錄或任何父目錄列在共用磁碟機中。在某些情況下，您必須共用您的磁碟機Docker，讓 正常運作。

1. 驗證安裝。

   安裝 Docker 之後，請確認它是否正常運作。同時確認您可以從Docker命令列執行命令 （例如 **docker ps**)。您不需要安裝、擷取或提取任何容器， AWS SAM CLI會視需要自動執行此操作。

如果您在安裝 時遇到問題Docker，如需更多故障診斷秘訣，請參閱 Docker 文件網站的[故障診斷一節](https://docs.docker.com/docker-for-mac/troubleshoot/)。

## 後續步驟
<a name="install-docker-next-steps"></a>

如需如何安裝 AWS SAM CLI，請參閱 [安裝 AWS SAM CLI](install-sam-cli.md)。

# 安裝 Finch以搭配 CLI AWS SAM 使用
<a name="install-finch"></a>

Finch 是 AWS的容器開發工具，提供 的替代方案Docker，特別有益於 macOS 和 Linux 系統。如需詳細資訊，請參閱 [ GitHub 上的 Finch](https://github.com/runfinch)。透過 Finch， AWS SAM 可以提供類似於 AWS Lambda 容器的本機環境，以建置、測試和偵錯無伺服器應用程式。

**注意**  
您需要Finch在本機測試應用程式、使用 `--use-container`選項建置部署套件，以及建置 OCI 映像函數。從 AWS SAM CLI 1.145.0 版開始， AWS SAM CLI 支援 Finch做為 的替代容器執行時間Docker。

**Topics**
+ [

## 安裝 Finch
](#install-finch-instructions)
+ [

## Finch 使用 CLI AWS SAM 設定
](#install-finch-configuration)
+ [

## 驗證安裝
](#install-finch-verification)
+ [

## 停用 Finch
](#install-finch-stopping)
+ [

## 疑難排解
](#install-finch-troubleshooting)
+ [

## 後續步驟
](#install-finch-next-steps)

## 安裝 Finch
<a name="install-finch-instructions"></a>

請依照這些指示，在您的作業系統Finch上安裝 。

### 先決條件
<a name="install-finch-prerequisites"></a>

**注意**  
Finch CLI AWS SAM 中的 整合可在 macOS 和 Linux 系統上使用。對於 Windows 使用者，請考慮使用虛擬機器或 Linux 環境來提供Finch功能。

**macOS 版本：**
+ macOS 15 Sequoia
+ macOS 14 Sonoma

**注意**  
Finch 支援最新的兩個版本的 macOS。

**Linux**︰
+ Linux 核心 v4.x\$1

### 安裝 Finch
<a name="install-finch"></a>

#### macOS
<a name="install-finch-instructions-macos"></a>

**在 macOS 上安裝 Finch**

1. Finch 使用 `brew` CLI 安裝 。如果出現提示，請輸入您的 macOS 密碼。

   ```
   $ brew install finch
   ```

1. 檢查安裝的Finch版本。

   ```
   $ finch --version
   ```

1. 初始化Finch虛擬機器 （第一次設定）。

   ```
   $ finch vm init
   ```

1. 啟動Finch虛擬機器。

   ```
   $ finch vm start
   ```

1. 檢查Finch虛擬機器的狀態。

   ```
   $ finch vm status
   ```

1. 驗證 是否正確Finch執行。

   ```
   $ finch --info
   $ finch ps
   ```

如需詳細資訊，請參閱[在 macOS 上安裝 Finch](https://runfinch.com/docs/managing-finch/macos/installation/)。

#### Linux
<a name="install-finch-instructions-linux"></a>

您可以在 Finch Amazon Linux、Ubuntu 或使用一般安裝方法來安裝 。如需詳細資訊，請參閱在 [Linux 上安裝 Finch](https://runfinch.com/docs/managing-finch/linux/installation/)。

## Finch 使用 CLI AWS SAM 設定
<a name="install-finch-configuration"></a>

安裝 之後Finch，CLI AWS SAM 會自動偵測 ，並在 Docker 未執行時使用 Finch做為容器執行時間。

**注意**  
Finch 做為 的後援Docker。如果您同時安裝 Docker 和 Finch 並執行 ， AWS SAM CLI Docker 預設會排定優先順序。

### 管理員偏好設定組態 (macOS)
<a name="install-finch-configuration-preference"></a>

您可以透過建立管理員偏好設定檔案，將 AWS SAM CLI 設定為使用特定容器執行期做為預設值。此全系統偏好設定會覆寫預設的備用行為。

**可用的組態選項**
+ **Finch設定為偏好的容器執行時間：**

  ```
  $ sudo /usr/libexec/PlistBuddy -c "Add :DefaultContainerRuntime string finch" /Library/Preferences/com.amazon.samcli.plist
  ```
+ **Docker設定為偏好的容器執行時間：**

  ```
  $ sudo /usr/libexec/PlistBuddy -c "Add :DefaultContainerRuntime string docker" /Library/Preferences/com.amazon.samcli.plist
  ```
+ **移除偏好設定 （返回預設行為）：**

  ```
  $ sudo /usr/libexec/PlistBuddy -c "Remove :DefaultContainerRuntime" /Library/Preferences/com.amazon.samcli.plist
  ```

**注意**  
未設定管理員偏好設定時， AWS SAM CLI Docker 預設會在可用時使用 ，在 Docker 未執行時將 Finch作為備用。

### 目錄掛載差異 (macOS)
<a name="install-finch-differences"></a>

在 macOS 上，如果您在主目錄 (`~`) 或 之外找到專案， AWS SAM 本機命令會失敗`/Volumes`。基於安全考量，此設計會限制自動掛載目錄，而無需您了解。

**緩解選項**
+ **選項 1：**在文字編輯器中開啟 Finch 組態`~/.finch/finch.yaml`，並在 `additional_directories`區段下新增專案路徑，然後重新啟動Finch虛擬機器。如需詳細資訊，請參閱 [Finch 文件](https://runfinch.com/docs/managing-finch/macos/disk-management/#adding-additional-disk-mounts)。

  ```
  $ finch vm stop
  $ finch vm start
  ```
+ **選項 2：**將專案移至主目錄。

## 驗證安裝
<a name="install-finch-verification"></a>

安裝並啟動 後Finch，請確認它是否可與 CLI AWS SAM 搭配使用。

### 基本驗證
<a name="install-finch-verification-basic"></a>

執行下列命令，以確認 AWS SAM CLI 可以使用 Finch：

```
$ sam build --use-container
```

您應該會看到使用 AWS SAM 在容器環境中建置應用程式的 Finch CLI。

**注意**  
Finch 做為 的後援Docker。如果 Docker 執行中， AWS SAM CLI Docker 預設會排定優先順序。

### Finch 測試為備用
<a name="install-finch-verification-fallback"></a>

若要Docker在 執行時測試Finch為備用，您必須先停止Docker。

**測試Finch備用功能**

1. 停止為您的作業系統Docker使用適當的命令。

   **macOS：**

   ```
   $ docker stop $(docker ps -q)
   $ pkill -f "Docker Desktop"
   ```

   驗證 Docker 已停止。

   ```
   $ docker ps
   ```

   **Linux**︰

   ```
   $ docker stop $(docker ps -q)
   $ sudo systemctl stop docker
   ```

   驗證 Docker 已停止。

   ```
   $ sudo systemctl status docker
   ```

1. 執行 `sam build --use-container`命令來驗證 CLI AWS SAM 會自動使用 Finch做為備用。

## 停用 Finch
<a name="install-finch-stopping"></a>

如果您需要停止 Finch，請使用下列命令：

**macOS：**

```
$ finch vm stop
$ sudo pkill -f finch
```

驗證 Finch 已停止。

```
$ finch vm status
```

**Linux**︰

```
$ sudo systemctl stop finch
$ sudo pkill -f finch
```

驗證 Finch 已停止。

```
$ sudo systemctl status finch
```

## 疑難排解
<a name="install-finch-troubleshooting"></a>

如果您遇到 問題Finch：
+ 確認您的作業系統符合先決條件。
+ 確認您已在系統上啟用虛擬化。
+ 對於 macOS，請確認您有足夠的磁碟空間可供虛擬機器使用。
+ 對於 Linux，請確認您具有執行`systemctl`命令的適當許可。
+ 如果您在將多架構映像推送至 Amazon Elastic Container Registry (Amazon ECR) 時遇到「不支援媒體類型」錯誤的 CloudFormation 部署失敗，請建立單一映像成品，而不是使用多架構映像。這是因為 會將影像索引和影像同時Finch推送至 Amazon ECR，而 只會Docker推送影像。
+ 如果跨平台建置在目標函數架構與 Linux 上的主機機器架構不相符時失敗，請執行 來啟用跨平台模擬`sudo finch run --privileged --rm tonistiigi/binfmt:master --install all`。

如需其他疑難排解，請參閱 [Finch 文件](https://runfinch.com/docs/)或 [AWS SAM CLI 故障診斷](sam-cli-troubleshooting.md)。

## 後續步驟
<a name="install-finch-next-steps"></a>

現在Finch已安裝 ，您可以將它與 AWS SAM CLI 搭配使用，以：
+ 使用容器搭配 建置無伺服器應用程式`sam build --use-container`。如需詳細資訊，請參閱[sam build](sam-cli-command-reference-sam-build.md)。
+ 使用 在本機測試 Lambda 函數`sam local invoke`。如需詳細資訊，請參閱[sam local invoke](sam-cli-command-reference-sam-local-invoke.md)。
+ 使用 啟動本機 API Gateway`sam local start-api`。如需詳細資訊，請參閱[sam local start-api](sam-cli-command-reference-sam-local-start-api.md)。
+ 使用 啟動本機 Lambda 端點`sam local start-lambda`。如需詳細資訊，請參閱[sam local start-lambda](sam-cli-command-reference-sam-local-start-lambda.md)。

如需搭配容器使用 AWS SAM CLI 的詳細資訊，請參閱 [使用 的預設建置 AWS SAM](serverless-sam-cli-using-build.md)。

# 的影像儲存庫 AWS SAM
<a name="serverless-image-repositories"></a>

AWS SAM 透過建置容器映像的協助，簡化無伺服器應用程式的持續整合和持續交付 (CI/CD) 任務。 AWS SAM 提供的映像包含 AWS SAM 命令列界面 (CLI) 和許多支援 AWS Lambda 執行時間的建置工具。這可讓您更輕鬆地使用 建置和封裝無伺服器應用程式 AWS SAM CLI。您可以將這些映像與 CI/CD 系統搭配使用，以自動化 AWS SAM 應用程式的建置和部署。如需範例，請參閱 [使用 CI/CD 系統和管道部署](deploying-options.md#serverless-deploying-ci-cd)。

AWS SAM 組建容器映像 URIs會標記該映像中包含的 AWS SAM CLI版本。如果您指定未標記的 URI，則會使用最新版本。例如， `public.ecr.aws/sam/build-nodejs20.x`使用最新的映像。不過， `public.ecr.aws/sam/build-nodejs20.x:1.24.1`會使用包含 AWS SAM CLI 版本 1.24.1 的映像。

從 1.33.0 版開始 AWS SAM CLI， `x86_64`和 `arm64`容器映像都可用於支援的執行時間。如需詳細資訊，請參閱《 *AWS Lambda 開發人員指南*》中的 [Lambda 執行時間](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)。

**注意**  
在 1.22.0 版之前 AWS SAM CLI，DockerHub 是 AWS SAM CLI提取容器映像的預設儲存庫。從 1.22.0 版開始，預設儲存庫已變更為 Amazon Elastic Container Registry Public (Amazon ECR Public)。若要從目前預設值以外的儲存庫提取容器映像，您可以使用 **[sam build](sam-cli-command-reference-sam-build.md)**命令搭配 **--build-image**選項。本主題結尾的範例示範如何使用 DockerHub 儲存庫映像建置應用程式。

## 映像儲存庫 URIs
<a name="serverless-image-repository-uris"></a>

下表列出 [Amazon ECR Public](https://docs.aws.amazon.com/AmazonECR/latest/public/what-is-ecr.html) 建置容器映像URIs，您可以使用這些映像來建置和封裝無伺服器應用程式 AWS SAM。

**注意**  
從 1.22.0 版DockerHub開始取代 AWS SAM CLIAmazon ECR Public。如果您使用的是舊版 AWS SAM CLI，我們建議您升級。


| 執行時期 |  Amazon ECR Public | 
| --- | --- | 
| 自訂執行時間 (AL2023) | [public.ecr.aws/sam/build-provided.al2023](https://gallery.ecr.aws/sam/build-provided.al2023) | 
| 自訂執行時間 (AL2) | [public.ecr.aws/sam/build-provided.al2](https://gallery.ecr.aws/sam/build-provided.al2) | 
| 自訂執行時間 | [public.ecr.aws/sam/build 提供的](https://gallery.ecr.aws/sam/build-provided) | 
| Java 25 | [public.ecr.aws/sam/build-java25](https://gallery.ecr.aws/sam/build-java25) | 
| Java 21 | [public.ecr.aws/sam/build-java21](https://gallery.ecr.aws/sam/build-java21) | 
| Java 17 | [public.ecr.aws/sam/build-java17](https://gallery.ecr.aws/sam/build-java17) | 
| Java 11 | [public.ecr.aws/sam/build-java11](https://gallery.ecr.aws/sam/build-java11) | 
| Java 8 | [public.ecr.aws/sam/build-java8](https://gallery.ecr.aws/sam/build-java8) | 
| .NET 9 | [public.ecr.aws/sam/build-dotnet9](https://gallery.ecr.aws/sam/build-dotnet9) | 
| .NET 8 | [public.ecr.aws/sam/build-dotnet8](https://gallery.ecr.aws/sam/build-dotnet8) | 
| .NET 7 | [public.ecr.aws/sam/build-dotnet7](https://gallery.ecr.aws/sam/build-dotnet7) | 
| .NET 6 | [public.ecr.aws/sam/build-dotnet6](https://gallery.ecr.aws/sam/build-dotnet6) | 
| Node.js 24 | [public.ecr.aws/sam/build-nodejs24.x](https://gallery.ecr.aws/sam/build-nodejs24.x) | 
| Node.js 22 | [public.ecr.aws/sam/build-nodejs22.x](https://gallery.ecr.aws/sam/build-nodejs22.x) | 
| Node.js 20 | [public.ecr.aws/sam/build-nodejs20.x](https://gallery.ecr.aws/sam/build-nodejs20.x) | 
| Node.js 18 | [public.ecr.aws/sam/build-nodejs18.x](https://gallery.ecr.aws/sam/build-nodejs18.x) | 
| Node.js 16 | [public.ecr.aws/sam/build-nodejs16.x](https://gallery.ecr.aws/sam/build-nodejs16.x) | 
| Python 3.14 | [public.ecr.aws/sam/build-python3.14](https://gallery.ecr.aws/sam/build-python3.14) | 
| Python 3.13 | [public.ecr.aws/sam/build-python3.13](https://gallery.ecr.aws/sam/build-python3.13) | 
| Python 3.12 | [public.ecr.aws/sam/build-python3.12](https://gallery.ecr.aws/sam/build-python3.12) | 
| Python 3.11 | [public.ecr.aws/sam/build-python3.11](https://gallery.ecr.aws/sam/build-python3.11) | 
| Python 3.10 | [public.ecr.aws/sam/build-python3.10](https://gallery.ecr.aws/sam/build-python3.10) | 
| Python 3.9 | [public.ecr.aws/sam/build-python3.9](https://gallery.ecr.aws/sam/build-python3.9) | 
| Python 3.8 | [public.ecr.aws/sam/build-python3.8](https://gallery.ecr.aws/sam/build-python3.8) | 
| Ruby 3.4 | [public.ecr.aws/sam/build-ruby3.4](https://gallery.ecr.aws/sam/build-ruby3.4) | 
| Ruby 3.3 | [public.ecr.aws/sam/build-ruby3.3](https://gallery.ecr.aws/sam/build-ruby3.3) | 
| Ruby 3.2 | [public.ecr.aws/sam/build-ruby3.2](https://gallery.ecr.aws/sam/build-ruby3.2) | 

## 範例
<a name="serverless-image-repository-example-commands"></a>

下列兩個範例命令會使用來自映像儲存庫的容器映像來建置應用程式：

**使用從 Amazon ECR 提取的容器映像建置Node.js 24應用程式**：

```
$ sam build --use-container --build-image public.ecr.aws/sam/build-nodejs24.x
```

**使用從 Amazon ECR 提取的Python 3.14容器映像建置函數資源**：

```
$ sam build --use-container --build-image Function1=public.ecr.aws/sam/build-python3.14
```

# 使用 逐步部署無伺服器應用程式 AWS SAM
<a name="automating-updates-to-serverless-apps"></a>

AWS Serverless Application Model (AWS SAM) 內建 [CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)，可提供逐步 AWS Lambda 部署。只要幾行組態， 就會為您 AWS SAM 執行下列動作：
+ 部署 Lambda 函數的新版本，並自動建立指向新版本的別名。
+ 逐漸將客戶流量轉移到新版本，直到您滿意其如預期般運作。如果更新無法正常運作，您可以轉返變更。
+ 定義流量前和流量後測試函數，以確認新部署的程式碼已正確設定，且您的應用程式可如預期運作。
+ 如果觸發 CloudWatch 警示， 會自動復原部署。

**注意**  
如果您透過 AWS SAM 範本啟用逐步部署，會自動為您建立 CodeDeploy 資源。您可以透過 直接檢視 CodeDeploy 資源 AWS 管理主控台。

**範例**

下列範例示範如何使用 CodeDeploy，逐步將客戶轉移到新部署的 Lambda 函數版本：

```
Resources:
MyLambdaFunction:
  Type: AWS::Serverless::Function
  Properties:
    Handler: index.handler
    Runtime: nodejs20.x
    CodeUri: s3://bucket/code.zip

    AutoPublishAlias: live

    DeploymentPreference:
      Type: Canary10Percent10Minutes 
      Alarms:
        # A list of alarms that you want to monitor
        - !Ref AliasErrorMetricGreaterThanZeroAlarm
        - !Ref LatestVersionErrorMetricGreaterThanZeroAlarm
      Hooks:
        # Validation Lambda functions that are run before & after traffic shifting
        PreTraffic: !Ref PreTrafficLambdaFunction
        PostTraffic: !Ref PostTrafficLambdaFunction
```

 AWS SAM 範本的這些修訂會執行下列動作：
+ `AutoPublishAlias`：透過新增此屬性並指定別名名稱， AWS SAM即可：
  + 根據 Lambda 函數的 Amazon S3 URI 的變更，偵測何時部署新程式碼。
  + 使用最新的程式碼建立和發佈該函數的更新版本。
  + 使用您提供的名稱建立別名 （除非別名已存在），並指向 Lambda 函數的更新版本。函式呼叫應該利用別名限定詞以充分善用此功能。如果您不熟悉 Lambda 函數版本控制和別名，請參閱[AWS Lambda 函數版本控制和別名](https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html)。
+ `Deployment Preference Type`：在上述範例中，10% 的客戶流量會立即轉移到新版本。10 分鐘後，所有流量都會轉移到新版本。不過，如果您的流量前或流量後測試失敗，或觸發 CloudWatch 警示，CodeDeploy 會復原您的部署。您可以透過下列方式指定如何在版本之間轉移流量：
  + `Canary`：流量以兩個增量轉移。您可以從預先定義的 Canary 選項中進行選擇。選項會指定在第一個增量中轉移到更新 Lambda 函數版本的流量百分比，以及剩餘流量在第二個增量中轉移之前的間隔，以分鐘為單位。
  + `Linear`：流量以每個增量之間的相等分鐘數以同等增量轉移。您可以從預先定義的線性選項中進行選擇，以指定以每個增量移動的流量百分比，以及每個增量之間的分鐘數。
  + `AllAtOnce`：所有流量都會一次從原始 Lambda 函數轉移到更新的 Lambda 函數版本。

  下表概述範例所用流量轉移選項以外的其他可用流量轉移選項。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)
+ `Alarms`：這些是由部署引發的任何錯誤觸發的 CloudWatch 警示。遇到時，它們會自動復原您的部署。例如，如果您正在部署的更新程式碼在應用程式中導致錯誤。另一個範例是，如果您指定的任何 [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions-metrics.html)或自訂 CloudWatch 指標已超過警示閾值。
+ `Hooks`：這些是流量轉移開始到新版本之前，以及在流量轉移完成後執行檢查的流量前和流量後測試函數。
  + `PreTraffic`：在流量轉移開始之前，CodeDeploy 會叫用預先流量掛鉤 Lambda 函數。此 Lambda 函數必須回呼 CodeDeploy，並指出成功或失敗。如果函數失敗，它會中止並回報失敗 CloudFormation。如果函數成功，CodeDeploy 會繼續進行流量轉移。
  + `PostTraffic`：流量轉移完成後，CodeDeploy 會叫用流量後勾點 Lambda 函數。這類似於預先流量掛鉤，函數必須回呼 CodeDeploy 以報告成功或失敗。使用後置流量掛勾執行整合測試或其他驗證動作。

  如需詳細資訊，請參閱[安全部署的 SAM 參考](https://github.com/aws/serverless-application-model/blob/master/docs/safe_lambda_deployments.rst)。

## 第一次逐漸部署 Lambda 函數
<a name="automating-updates-to-serverless-apps-first-time"></a>

 逐步部署 Lambda 函數時，CodeDeploy 需要先前部署的函數版本才能從中轉移流量。因此，您的第一個部署應完成兩個步驟：
+ **步驟 1**：部署 Lambda 函數，並使用 自動建立別名`AutoPublishAlias`。
+ **步驟 2**：使用 執行逐步部署`DeploymentPreference`。

在兩個步驟中執行您的第一次逐步部署，可讓 CodeDeploy 先前的 Lambda 函數版本轉移流量。

### 步驟 1：部署 Lambda 函數
<a name="automating-updates-to-serverless-apps-first-time-step1"></a>

```
Resources:
MyLambdaFunction:
  Type: AWS::Serverless::Function
  Properties:
    Handler: index.handler
    Runtime: nodejs20.x
    CodeUri: s3://bucket/code.zip

    AutoPublishAlias: live
```

### 步驟 2：執行逐步部署
<a name="automating-updates-to-serverless-apps-first-time-step2"></a>

```
Resources:
MyLambdaFunction:
  Type: AWS::Serverless::Function
  Properties:
    Handler: index.handler
    Runtime: nodejs20.x
    CodeUri: s3://bucket/code.zip

    AutoPublishAlias: live

    DeploymentPreference:
      Type: Canary10Percent10Minutes 
      Alarms:
        # A list of alarms that you want to monitor
        - !Ref AliasErrorMetricGreaterThanZeroAlarm
        - !Ref LatestVersionErrorMetricGreaterThanZeroAlarm
      Hooks:
        # Validation Lambda functions that are run before and after traffic shifting
        PreTraffic: !Ref PreTrafficLambdaFunction
        PostTraffic: !Ref PostTrafficLambdaFunction
```

## 進一步了解
<a name="automating-updates-to-serverless-apps-learn"></a>

如需設定逐步部署的實作範例，請參閱*完成 AWS SAM 研討會*中的[單元 5 - Canary Deployments](https://s12d.com/sam-ws-en-canaries)。

# 的重要參考備註 AWS SAM
<a name="important-notes"></a>

本節包含 AWS Serverless Application Model () 的重要備註和公告AWS SAM。

**Topics**
+ [

## 2023 年重要備註
](#important-notes-2023)

## 2023 年重要備註
<a name="important-notes-2023"></a>

### 2023 年 10 月
<a name="important-notes-2023-10"></a>

#### AWS SAM CLI 停止對 的支援 Python 3.7
<a name="important-notes-2023-10-python"></a>

* 發佈 2023-10-20*

Python 3.7 已於 2023 年 6 月收到end-of-life狀態。將於 AWS SAM CLI2023 年 10 月 24 Python 3.7 日停止對 的支援。如需詳細資訊，請參閱 *aws-sam-cli GitHub儲存庫*的[公告](https://github.com/aws/aws-sam-cli/issues/5889)。

此變更會影響下列使用者：
+ 如果您透過 AWS SAM CLI使用Python 3.7並安裝 `pip`。
+ 如果您使用 `aws-sam-cli`做為程式庫，並使用 建置應用程式Python 3.7。

如果您透過其他方法安裝和管理 AWS SAM CLI，則不會受到影響。

對於受影響的使用者，我們建議您將開發環境升級至 Python 3.8或更新版本。

此變更不會影響對Python 3.7 AWS Lambda 執行時間環境的支援。如需詳細資訊，請參閱《 *AWS Lambda 開發人員指南*》中的[執行期棄用政策](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy)。