

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

# 設定 AWS SAM CLI
<a name="using-sam-cli-configure"></a>

的好處之一 AWS SAM 是，它透過移除重複性任務來最佳化開發人員的時間。 AWS SAM CLI 包含名為 `samconfig` 的組態檔案。根據預設， AWS SAM CLI不需要對 進行組態，但您可以更新組態檔案，以允許 參考組態檔案中的自訂參數 AWS SAM ，以使用較少的參數執行命令。下表中的範例示範如何最佳化命令：


| 原始的 | 使用 最佳化 `samconfig` | 
| --- | --- | 
| **sam build --cached --parallel --use-containers** | **sam build** | 
| **sam local invoke --env-vars locals.json** | **sam local invoke** | 
| **sam local start-api --env-vars locals.json --warm-containers EAGER** | **sam local start-api** | 

 AWS SAM CLI 提供一組命令，協助開發人員建立、開發和部署無伺服器應用程式。這些命令都可以根據應用程式和開發人員的偏好設定，使用選用的旗標來設定。如需詳細資訊，請參閱 [AWS SAM CLI GitHub 中的內容](https://github.com/aws/aws-sam-cli)

本節中的主題說明如何建立 [AWS SAM CLI 組態檔案](serverless-sam-cli-config.md)並自訂其預設設定，以最佳化無伺服器應用程式的開發時間。

**Topics**
+ [如何建立您的組態檔案 ( `samconfig` 檔案）](#using-sam-cli-configure-create)
+ [設定專案設定](#using-sam-cli-configure-project)
+ [設定登入資料和基本設定](#using-sam-cli-configure-basic)

## 如何建立您的組態檔案 ( `samconfig` 檔案）
<a name="using-sam-cli-configure-create"></a>

組態檔案 AWS SAM CLI（檔案名稱 `samconfig`) 是文字檔案，通常使用 TOML 結構，但也可以在 YAML 中。使用 AWS Quick Start 範本時，會在您執行 **sam init**命令時建立此檔案。您可以在使用 **sam deploy -\$1-guided**命令部署應用程式時更新此檔案。

部署完成後，`default`如果您使用預設值， `samconfig` 檔案會包含名為 的設定檔。當您重新執行**deploy**命令時， 會從此設定檔 AWS SAM 套用儲存的組態設定。

`samconfig` 檔案的優點是，除了部署命令之外， AWS SAM 還存放任何其他可用命令的組態設定。除了在新部署時建立的這些值之外，您還可以在 `samconfig` 檔案中設定許多屬性，以使用 簡化開發人員工作流程的其他層面 AWS SAM CLI。

## 設定專案設定
<a name="using-sam-cli-configure-project"></a>

您可以在組態檔案中指定專案特定的設定，例如 AWS SAM CLI命令參數值，以搭配 使用 AWS SAM CLI。如需此組態檔案的詳細資訊，請參閱 [AWS SAM CLI 組態檔案](serverless-sam-cli-config.md)。

### 使用組態檔案
<a name="using-sam-cli-configure-project-using"></a>

組態檔案由環境、命令和參數值構成。如需詳細資訊，請參閱[組態檔案基本概念](serverless-sam-cli-config.md#serverless-sam-cli-config-basics)。

**設定新的環境**

1. 在組態檔案中指定您的新環境。

   以下是指定新`prod`環境的範例：

------
#### [ TOML ]

   ```
   [prod.global.parameters]
   ```

------
#### [ YAML ]

   ```
   prod:
     global:
       parameters:
   ```

------

1. 在組態檔案的參數區段中，將參數值指定為鍵值對。

   以下是為`prod`環境指定應用程式堆疊名稱的範例。

------
#### [ TOML ]

   ```
   [prod.global.parameters]
   stack_name = "prod-app"
   ```

------
#### [ YAML ]

   ```
   prod:
     global:
       parameters:
         stack_name: prod-app
   ```

------

1. 使用 `--config-env`選項來指定要使用的環境。

   以下是範例：

   ```
   $ sam deploy --config-env "prod"
   ```

**設定參數值**

1. 指定 AWS SAM CLI您要為其設定參數值的命令。若要設定所有 AWS SAM CLI命令的參數值，請使用 `global`識別符。

   以下是指定`default`環境`sam deploy`命令參數值的範例：

------
#### [ TOML ]

   ```
   [default.deploy.parameters]
   confirm_changeset = true
   ```

------
#### [ YAML ]

   ```
   default:
     deploy:
       parameters:
         confirm_changeset: true
   ```

------

   以下是為`default`環境中所有 AWS SAM CLI命令指定參數值的範例：

------
#### [ TOML ]

   ```
   [default.global.parameters]
   stack_name = "sam-app"
   ```

------
#### [ YAML ]

   ```
   default:
     global:
       parameters:
         stack_name: sam-app
   ```

------

1. 您也可以指定參數值，並透過互動式流程修改您的組態檔案 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
   ```

如需詳細資訊，請參閱[建立和修改組態檔案](serverless-sam-cli-config.md#serverless-sam-cli-config-using)。

### 範例
<a name="using-sam-cli-configure-project-examples"></a>

#### 基本TOML範例
<a name="using-sam-cli-configure-project-examples-toml"></a>

以下是`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
```

#### 基本YAML範例
<a name="using-sam-cli-configure-project-examples-yaml"></a>

以下是`samconfig.yaml`組態檔案的範例：

```
version 0.1
default:
  global:
    parameters:
      stack_name: sam-app
  build:
    parameters:
      cached: true
      parallel: true
  deploy:
    parameters:
      capabilities: CAPABILITY_IAM
      confirm_changeset: true
      resolve_s3: true
  sync:
    parameters:
      watch: true
  local_start_api:
    parameters:
      warm_containers: EAGER
prod:
  sync:
    parameters:
      watch: false
```

## 設定登入資料和基本設定
<a name="using-sam-cli-configure-basic"></a>

使用 AWS Command Line Interface (AWS CLI) 來設定基本設定，例如 AWS 登入資料、預設區域名稱和預設輸出格式。設定完成後，您可以將這些設定與 搭配使用 AWS SAM CLI。若要進一步了解，請參閱*AWS Command Line Interface 《 使用者指南*》中的下列內容：
+ [組態基本概念](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html)
+ [組態和登入資料檔案設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)
+ [的具名設定檔 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
+ [使用已啟用 IAM Identity Center 的具名設定檔](https://docs.aws.amazon.com/cli/latest/userguide/sso-using-profile.html)

如需快速設定說明，請參閱 [步驟 5：使用 AWS CLI 設定 AWS 登入資料](prerequisites.md#prerequisites-configure-credentials)。