

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# AWS SAMCLIberkas konfigurasi
<a name="serverless-sam-cli-config"></a>

 AWS Serverless Application Model Command Line Interface (AWS SAMCLI) mendukung file konfigurasi tingkat proyek yang dapat Anda gunakan untuk mengkonfigurasi nilai parameter AWS SAMCLI perintah.

Untuk dokumentasi tentang membuat dan menggunakan file konfigurasi, lihat[Mengkonfigurasi AWS SAMCLI](using-sam-cli-configure.md).

**Topics**
+ [Pengaturan file konfigurasi default](#serverless-sam-cli-config-default)
+ [Format file konfigurasi yang didukung](#serverless-sam-cli-config-formats)
+ [Tentukan file konfigurasi](#serverless-sam-cli-config-specify)
+ [Dasar-dasar file konfigurasi](#serverless-sam-cli-config-basics)
+ [Aturan nilai parameter](#serverless-sam-cli-config-rules)
+ [Keutamaan konfigurasi](#serverless-sam-cli-config-precedence)
+ [Membuat dan memodifikasi file konfigurasi](#serverless-sam-cli-config-using)

## Pengaturan file konfigurasi default
<a name="serverless-sam-cli-config-default"></a>

AWS SAM menggunakan pengaturan file konfigurasi default berikut:
+ **Nama** – `samconfig`.
+ **Lokasi** — Di akar proyek Anda. Ini adalah lokasi yang sama dengan `template.yaml` file Anda.
+ **Format** —`TOML`. Untuk mempelajari lebih lanjut, lihat [TOMB](https://toml.io/en/) di *TOMLdokumentasi*.

Berikut ini adalah contoh struktur proyek yang mencakup nama file konfigurasi default dan lokasi:

```
sam-app
├── README.md
├── __init__.py
├── events
├── hello_world
├── samconfig.toml
├── template.yaml
└── tests
```

Berikut ini adalah `samconfig.toml` file contoh:

```
...
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
```

## Format file konfigurasi yang didukung
<a name="serverless-sam-cli-config-formats"></a>

`TOML`dan `[YAML|YML]` format didukung. Lihat sintaks dasar berikut:

### 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
```

## Tentukan file konfigurasi
<a name="serverless-sam-cli-config-specify"></a>

Secara default, AWS SAMCLI mencari file konfigurasi dalam urutan sebagai berikut:

1. **File konfigurasi kustom** - Jika Anda menggunakan `--config-file` opsi untuk menentukan nama dan lokasi file, AWS SAMCLI cari file ini terlebih dahulu.

1. **`samconfig.toml`File default** — Ini adalah nama dan format file konfigurasi default, yang terletak di root proyek Anda. Jika Anda tidak menentukan file konfigurasi kustom, AWS SAMCLI cari file ini selanjutnya.

1. **`samconfig.[yaml|yml]`file** — Jika `samconfig.toml` tidak ada di root proyek Anda, AWS SAMCLI mencari file ini.

Berikut ini adalah contoh menentukan file konfigurasi kustom menggunakan `--config-file` opsi:

```
$ sam deploy --config-file myconfig.yaml
```

**catatan**  
`--config-file`Parameter harus relatif terhadap lokasi file AWS SAM template karena AWS SAMCLI kebutuhan untuk menentukan konteks di mana konfigurasi diterapkan. `samconfig.toml`File mengelola pengaturan konfigurasi untuk versi Anda AWS SAMCLI, dan CLI mencari `samconfig.toml` file (atau parameter file konfigurasi yang diganti) di relatif folder file. `template.yaml`

## Dasar-dasar file konfigurasi
<a name="serverless-sam-cli-config-basics"></a>

### Lingkungan
<a name="serverless-sam-cli-config-basics-environment"></a>

**Lingkungan** adalah pengenal bernama yang berisi seperangkat pengaturan konfigurasi yang unik. Anda dapat memiliki beberapa lingkungan dalam satu AWS SAM aplikasi.

Nama lingkungan default adalah`default`.

Gunakan AWS SAMCLI `--config-env` opsi untuk menentukan lingkungan yang akan digunakan.

### Perintah
<a name="serverless-sam-cli-config-basics-command"></a>

**Perintah** adalah AWS SAMCLI perintah untuk menentukan nilai parameter untuk.

Untuk menentukan nilai parameter untuk semua perintah, gunakan `global` pengenal.

Saat mereferensikan AWS SAMCLI perintah, ganti spasi (` `) dan tanda hubung (`–`) dengan garis bawah (). `_` Lihat contoh berikut:
+ `build`
+ `local_invoke`
+ `local_start_api`

### Parameter
<a name="serverless-sam-cli-config-basics-parameters"></a>

**Parameter** ditentukan sebagai pasangan kunci-nilai.
+ **Kuncinya** adalah nama opsi AWS SAMCLI perintah.
+ **Nilai adalah nilai** yang akan ditentukan.

Saat menentukan kunci, gunakan nama opsi perintah bentuk panjang dan ganti tanda hubung (`–`) dengan garis bawah (). `_` Berikut ini adalah beberapa contohnya:
+ `region`
+ `stack_name`
+ `template_file`

## Aturan nilai parameter
<a name="serverless-sam-cli-config-rules"></a>

### TOML
<a name="serverless-sam-cli-config-rules-toml"></a>
+ Nilai Boolean bisa `true` atau`false`. Misalnya, `confirm_changeset = true`.
+ Untuk nilai string, gunakan tanda kutip (`""`). Misalnya, `region = "us-west-2"`.
+ Untuk nilai daftar, gunakan tanda kutip (`""`) dan pisahkan setiap nilai menggunakan spasi (` `). Sebagai contoh: `capabilities = "CAPABILITY_IAM CAPABILITY_NAMED_IAM"`.
+ Untuk nilai yang berisi daftar pasangan kunci-nilai, pasangan adalah spasi-delimited (` `) dan nilai setiap pasangan dikelilingi oleh tanda kutip yang dikodekan (). `\" \"` Misalnya, `tags = "project=\"my-application\" stage=\"production\""`.
+ Untuk nilai parameter yang dapat ditentukan beberapa kali, nilainya adalah array argumen. Sebagai contoh: `image_repositories = ["my-function-1=image-repo-1", "my-function-2=image-repo-2"]`.

### YAML
<a name="serverless-sam-cli-config-rules-yaml"></a>
+ Nilai Boolean bisa `true` atau`false`. Misalnya, `confirm_changeset: true`.
+ Untuk entri yang berisi nilai string tunggal, tanda kutip (`""`) bersifat opsional. Misalnya, `region: us-west-2`. Ini termasuk entri yang berisi beberapa pasangan kunci-nilai yang disediakan sebagai string tunggal. Berikut ini adalah contohnya:

  ```
  $ sam deploy --tags "foo=bar hello=world"
  ```

  ```
  default:
    deploy:
      parameters:
        tags: foo=bar hello=world
  ```
+ Untuk entri yang berisi daftar nilai, atau entri yang dapat digunakan beberapa kali dalam satu perintah, tentukan sebagai daftar string.

  Berikut ini adalah contohnya:

  ```
  $ sam remote invoke --parameter "InvocationType=Event" --parameter "LogType=None"
  ```

  ```
  default:
    remote_invoke:
      parameters:
          parameter:
          - InvocationType=Event
          - LogType=None
  ```

## Keutamaan konfigurasi
<a name="serverless-sam-cli-config-precedence"></a>

Saat mengonfigurasi nilai, prioritas berikut terjadi:
+ Nilai parameter yang Anda berikan pada baris perintah lebih diutamakan daripada nilai yang sesuai dalam file konfigurasi dan `Parameters` bagian file template.
+ Jika `--parameter-overrides` opsi digunakan pada baris perintah atau dalam file konfigurasi Anda dengan `parameter_overrides` kunci, nilainya lebih diutamakan daripada nilai di `Parameters` bagian file template.
+ Dalam file konfigurasi Anda, entri yang disediakan untuk perintah tertentu lebih diutamakan daripada entri global. Dalam contoh berikut, `sam deploy` perintah akan menggunakan nama stack`my-app-stack`.

------
#### [ MAKAM ]

  ```
  [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
  ```

------

## Membuat dan memodifikasi file konfigurasi
<a name="serverless-sam-cli-config-using"></a>

### Membuat file konfigurasi
<a name="serverless-sam-cli-config-using-create"></a>

Saat Anda membuat aplikasi menggunakan`sam init`, `samconfig.toml` file default dibuat. Anda juga dapat membuat file konfigurasi secara manual.

### Memodifikasi file konfigurasi
<a name="serverless-sam-cli-config-using-modify"></a>

Anda dapat memodifikasi file konfigurasi secara manual. Juga, selama aliran AWS SAMCLI interaktif apa pun, nilai yang dikonfigurasi akan ditampilkan dalam tanda kurung (`[ ]`). Jika Anda memodifikasi nilai-nilai ini, AWS SAMCLI akan memperbarui file konfigurasi Anda.

Berikut ini adalah contoh aliran interaktif menggunakan `sam deploy --guided` perintah:

```
$ 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
```

Saat memodifikasi file konfigurasi Anda, AWS SAMCLI menangani nilai global sebagai berikut:
+ Jika nilai parameter ada di `global` bagian file konfigurasi Anda, nilai AWS SAMCLI tidak akan menuliskan nilai ke bagian perintah tertentu.
+ Jika nilai parameter ada di kedua bagian perintah `global` dan spesifik, AWS SAMCLI menghapus entri spesifik yang mendukung nilai global.