

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

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

AWS Serverless Application Model Command Line Interface (AWS SAMCLI) adalah alat baris perintah untuk pengembangan lokal dan pengujian aplikasi tanpa server. AWS SAMCLIIni memungkinkan Anda untuk membangun, mengubah, menyebarkan, men-debug, mengemas, menginisialisasi, dan menyinkronkan aplikasi tanpa server Anda secara lokal sebelum menerapkan ke cloud.

AWS SAMCLIbekerja dengan aplikasi tanpa server yang didefinisikan menggunakan kerangka kerja dan infrastruktur yang berbeda sebagai alat kode (IAc), dengan berbagai tingkat dukungan:
+ **AWS SAM template** - Menyediakan dukungan asli dengan set fitur lengkap, termasuk pengujian lokal, debugging, pengemasan, dan kemampuan penerapan.
+ **AWS Aplikasi CDK** - Mendukung pengujian lokal fungsi Lambda setelah Anda mensintesis AWS aplikasi CDK CloudFormation ke templat menggunakan perintah cdk synth.
+ **CloudFormation template** — Menawarkan kompatibilitas langsung karena AWS SAM memperluas CloudFormation, mendukung sumber daya tanpa server yang didefinisikan dalam templat standar. CloudFormation 
+ **Aplikasi Terraform** - Memberikan dukungan terbatas untuk membangun dan pengujian lokal fungsi Lambda. Mengharuskan Anda membuat artefak AWS SAM templat yang mewakili fungsi Lambda yang ditentukan Terraform Anda.

Untuk dukungan fitur yang paling komprehensif dan pengalaman pengembang yang efisien, sebaiknya gunakan AWS SAM templat asli.

**Topics**
+ [Bagaimana AWS SAMCLI perintah didokumentasikan](#using-sam-cli-documentation)
+ [Mengkonfigurasi AWS SAMCLI](using-sam-cli-configure.md)
+ [AWS SAMCLIperintah inti](using-sam-cli-corecommands.md)
+ [Pengujian lokal dengan AWS SAMCLI](using-sam-cli-local-testing.md)

## Bagaimana AWS SAMCLI perintah didokumentasikan
<a name="using-sam-cli-documentation"></a>

AWS SAMCLIperintah didokumentasikan menggunakan format berikut:
+ **Prompt** - Linux Prompt didokumentasikan secara default dan ditampilkan sebagai (`$ `). Untuk perintah yang Windows spesifik, (`> `) digunakan sebagai prompt. Jangan sertakan prompt saat Anda mengetik perintah.
+ **Direktori** — Ketika perintah harus dijalankan dari direktori tertentu, nama direktori ditampilkan sebelum simbol prompt.
+ **Input pengguna** - Teks perintah yang Anda masukkan pada baris perintah diformat sebagai**user input**.
+ **Teks yang dapat diganti** - Teks variabel, seperti nama file dan parameter diformat sebagai. *replaceable text* Dalam perintah atau perintah multi-baris di mana input keyboard tertentu diperlukan, input keyboard juga dapat ditampilkan sebagai teks yang dapat diganti. Misalnya, *ENTER*.
+ **Output** - Output yang dikembalikan sebagai respons terhadap perintah diformat sebagai`computer output`.

`sam deploy`Perintah dan output berikut adalah contoh:

```
$ sam deploy --guided --template template.yaml

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]: ENTER
    #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
```

1. `sam deploy --guided --template template.yaml`adalah perintah yang Anda masukkan di baris perintah.

1. **sam deploy --guided --template**harus disediakan apa adanya.

1. *template.yaml*dapat diganti dengan nama file spesifik Anda.

1. Output dimulai pada`Configuring SAM deploy`.

1. Dalam output, *ENTER* dan *y* tunjukkan nilai yang dapat diganti yang Anda berikan.

# Mengkonfigurasi AWS SAMCLI
<a name="using-sam-cli-configure"></a>

Salah satu manfaatnya AWS SAM adalah mengoptimalkan waktu pengembang dengan menghapus tugas yang berulang. AWS SAMCLItermasuk file konfigurasi bernama `samconfig` untuk tujuan ini. Secara default, tidak ada konfigurasi yang AWS SAMCLI diperlukan, tetapi Anda dapat memperbarui file konfigurasi Anda untuk memungkinkan Anda menjalankan perintah dengan parameter yang lebih sedikit dengan memungkinkan AWS SAM untuk mereferensikan parameter khusus Anda dalam file konfigurasi Anda. Contoh dalam tabel berikut menunjukkan bagaimana Anda dapat mengoptimalkan perintah Anda:


| Asal | Dioptimalkan dengan `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 SAMCLIIni menyediakan seperangkat perintah untuk membantu pengembang membuat, mengembangkan, dan menyebarkan aplikasi tanpa server. Masing-masing perintah ini dapat dikonfigurasi dengan bendera opsional berdasarkan preferensi aplikasi dan pengembang. Untuk informasi selengkapnya, lihat [AWS SAMCLIkonten di GitHub](https://github.com/aws/aws-sam-cli)

Topik di bagian ini menunjukkan cara membuat [AWS SAMCLIberkas konfigurasi](serverless-sam-cli-config.md) dan menyesuaikan pengaturan defaultnya untuk mengoptimalkan waktu pengembangan untuk aplikasi tanpa server Anda.

**Topics**
+ [Cara membuat file konfigurasi Anda (`samconfig`file)](#using-sam-cli-configure-create)
+ [Konfigurasikan pengaturan proyek](#using-sam-cli-configure-project)
+ [Konfigurasikan kredensil dan pengaturan dasar](#using-sam-cli-configure-basic)

## Cara membuat file konfigurasi Anda (`samconfig`file)
<a name="using-sam-cli-configure-create"></a>

File AWS SAMCLI konfigurasi (nama file`samconfig`) adalah file teks yang biasanya menggunakan struktur TOMB, tetapi juga bisa dalam YAMB. Saat menggunakan Template Mulai AWS Cepat, file ini dibuat saat Anda menjalankan **sam init** perintah. Anda dapat memperbarui file ini saat Anda menyebarkan aplikasi menggunakan **sam deploy -\$1-guided** perintah.

Setelah penyebaran selesai, `samconfig` file berisi profil bernama `default` jika Anda menggunakan nilai default. Saat Anda menjalankan kembali **deploy** perintah, AWS SAM terapkan pengaturan konfigurasi yang disimpan dari profil ini.

Manfaat dari `samconfig` file ini adalah AWS SAM menyimpan pengaturan konfigurasi untuk perintah lain yang tersedia selain perintah deploy. Di luar nilai-nilai yang dibuat pada penerapan baru, ada sejumlah atribut yang dapat Anda atur dalam `samconfig` file yang dapat menyederhanakan aspek lain dari alur kerja pengembang. AWS SAMCLI

## Konfigurasikan pengaturan proyek
<a name="using-sam-cli-configure-project"></a>

Anda dapat menentukan pengaturan khusus proyek, seperti nilai parameter AWS SAMCLI perintah, dalam file konfigurasi yang akan digunakan dengan. AWS SAMCLI Untuk informasi selengkapnya tentang file konfigurasi ini, lihat[AWS SAMCLIberkas konfigurasi](serverless-sam-cli-config.md).

### Menggunakan file konfigurasi
<a name="using-sam-cli-configure-project-using"></a>

File konfigurasi disusun berdasarkan lingkungan, perintah, dan nilai parameter. Untuk informasi selengkapnya, lihat [Dasar-dasar file konfigurasi](serverless-sam-cli-config.md#serverless-sam-cli-config-basics).

**Untuk mengkonfigurasi lingkungan baru**

1. Tentukan lingkungan baru Anda di file konfigurasi Anda.

   Berikut ini adalah contoh menentukan `prod` lingkungan baru:

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

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

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

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

------

1. Tentukan nilai parameter sebagai pasangan nilai kunci di bagian parameter file konfigurasi.

   Berikut ini adalah contoh menentukan nama stack aplikasi Anda untuk `prod` lingkungan.

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

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

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

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

------

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

   Berikut ini adalah contohnya:

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

**Untuk mengkonfigurasi nilai parameter**

1. Tentukan AWS SAMCLI perintah yang ingin Anda konfigurasikan nilai parameternya. Untuk mengkonfigurasi nilai parameter untuk semua AWS SAMCLI perintah, gunakan `global` pengenal.

   Berikut ini adalah contoh menentukan nilai parameter untuk `sam deploy` perintah `default` lingkungan:

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

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

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

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

------

   Berikut ini adalah contoh menentukan nilai parameter untuk semua AWS SAMCLI perintah di `default` lingkungan:

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

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

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

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

------

1. Anda juga dapat menentukan nilai parameter dan memodifikasi file konfigurasi Anda melalui aliran AWS SAMCLI interaktif.

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

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

Untuk informasi selengkapnya, lihat [Membuat dan memodifikasi file konfigurasi](serverless-sam-cli-config.md#serverless-sam-cli-config-using).

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

#### TOMLContoh dasar
<a name="using-sam-cli-configure-project-examples-toml"></a>

Berikut ini adalah contoh file `samconfig.toml` konfigurasi:

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

#### YAMLContoh dasar
<a name="using-sam-cli-configure-project-examples-yaml"></a>

Berikut ini adalah contoh file `samconfig.yaml` konfigurasi:

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

## Konfigurasikan kredensil dan pengaturan dasar
<a name="using-sam-cli-configure-basic"></a>

Gunakan AWS Command Line Interface (AWS CLI) untuk mengonfigurasi pengaturan dasar seperti AWS kredensil, nama wilayah default, dan format output default. Setelah dikonfigurasi, Anda dapat menggunakan pengaturan ini dengan file AWS SAMCLI. Untuk mempelajari lebih lanjut, lihat berikut ini dari *Panduan AWS Command Line Interface Pengguna*:
+ [Dasar-dasar konfigurasi](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html)
+ [Konfigurasi dan pengaturan file kredensi](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)
+ [Profil bernama untuk AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
+ [Menggunakan profil bernama IAM Identity Center diaktifkan](https://docs.aws.amazon.com/cli/latest/userguide/sso-using-profile.html)

Untuk petunjuk penyiapan cepat, lihat[Langkah 5: Gunakan AWS CLI untuk mengkonfigurasi AWS kredensil](prerequisites.md#prerequisites-configure-credentials).

# AWS SAMCLIperintah inti
<a name="using-sam-cli-corecommands"></a>

AWS SAMCLImemiliki beberapa perintah dasar yang Anda gunakan untuk membuat, membangun, menguji, menyebarkan, dan menyinkronkan aplikasi tanpa server Anda. Tabel di bawah ini mencantumkan perintah ini dan menyediakan tautan dengan informasi lebih lanjut untuk masing-masing.

Untuk daftar lengkap AWS SAMCLI perintah, lihat[AWS SAMCLIreferensi perintah](serverless-sam-cli-command-reference.md).


| Perintah | Apa yang dilakukannya | Topik terkait | 
| --- | --- | --- | 
| **sam build** | Mempersiapkan aplikasi untuk langkah-langkah selanjutnya dalam alur kerja pengembang, seperti pengujian lokal atau penerapan ke Cloud. AWS  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 
| **sam deploy** | Menyebarkan aplikasi ke AWS Cloud menggunakan CloudFormation. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 
| **sam init** | Menyediakan opsi untuk menginisialisasi dan membuat aplikasi tanpa server baru. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 
| **sam local** | Menyediakan subperintah untuk menguji aplikasi tanpa server Anda secara lokal. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 
| **sam remote invoke** | Menyediakan cara untuk berinteraksi dengan AWS sumber daya yang didukung di AWS Cloud. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 
| **sam remote test-event** | Menyediakan cara untuk mengakses dan mengelola peristiwa pengujian yang dapat dibagikan untuk fungsi AWS Lambda Anda. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 
| **sam sync** | Menyediakan opsi untuk menyinkronkan perubahan aplikasi lokal dengan cepat ke AWS Cloud. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 

# Pengujian lokal dengan AWS SAMCLI
<a name="using-sam-cli-local-testing"></a>

 AWS SAMCLIIni memungkinkan Anda untuk menguji aplikasi tanpa server secara lokal di berbagai infrastruktur sebagai alat kode (IAc). Panduan ini menjelaskan cara menggunakan untuk pengujian lokal dengan berbagai kerangka kerja IAc. AWS SAMCLI

Manfaat utama penggunaan AWS SAMCLI untuk pengujian lokal meliputi:
+ **Pengembangan cepat** - Uji perubahan kode tanpa menerapkan ke AWS
+ **Efisiensi biaya** - Kembangkan dan uji tanpa menimbulkan AWS biaya
+ **Kemampuan offline** - Bekerja pada aplikasi Anda tanpa koneksi internet
+ **Debugging yang disederhanakan** - Melangkah melalui kode fungsi Lambda secara lokal menggunakan debugger
+ **Pengujian realistis** - Uji aplikasi Anda menggunakan emulasi layanan lokal AWS 

## Uji AWS SAM aplikasi secara lokal
<a name="using-sam-cli-local-testing-sam"></a>

Untuk informasi tentang pengujian aplikasi yang ditentukan menggunakan AWS SAM templat, lihat [Menguji dan men-debug aplikasi tanpa server](serverless-test-and-debug.md) dalam panduan ini.

## Uji CloudFormation template secara lokal
<a name="using-sam-cli-local-testing-cfn"></a>

Untuk menggunakan kemampuan pengujian lokal dengan CloudFormation, tambahkan AWS SAM transformasi ke CloudFormation template Anda. AWS SAMCLI Untuk informasi lebih lanjut, lihat [anatomi AWS SAM templat](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-template-anatomy.html) untuk:
+ Menambahkan AWS SAM transformasi ke CloudFormation template
+ Memahami kompatibilitas template
+ Menjelajahi sintaks sumber daya tanpa server

## Uji aplikasi AWS CDK secara lokal
<a name="using-sam-cli-local-testing-cdk"></a>

Anda dapat menggunakan AWS SAMCLI untuk menguji aplikasi AWS CDK secara lokal setelah Anda mensintesis aplikasi CDK ke CloudFormation template menggunakan perintah AWS cdk synth.

Untuk informasi selengkapnya, lihat [Uji lokal dan buat aplikasi AWS CDK dengan panduan AWS SAMCLI](https://docs.aws.amazon.com/cdk/v2/guide/testing-locally.html) pengembang AWS CDK. Hal ini mencakup:
+ [Memulai dengan pengujian lokal](https://docs.aws.amazon.com/cdk/v2/guide/testing-locally.html#testing-locally-getting-started)
+ [Aplikasi AWS CDK pengujian lokal dengan AWS SAM](https://docs.aws.amazon.com/cdk/v2/guide/testing-locally.html#testing-locally-sam)

## Uji aplikasi Terraform secara lokal
<a name="using-sam-cli-local-testing-terraform"></a>

 AWS SAMCLIMendukung proyek Terraform dan Terraform Cloud. Anda dapat menggunakannya untuk melakukan debugging lokal dan pengujian: fungsi dan lapisan Lambda serta Amazon API Gateway HTTP dan REST. APIs

Untuk mengatur lingkungan Anda dan mempelajari semua fitur yang tersedia, lihat [Dukungan Terraform di panduan](terraform-support.md) ini. Hal ini mencakup:
+ [Memulai dengan dukungan Terraform untuk AWS SAMCLI](gs-terraform-support.md)
+ [Menggunakan AWS SAMCLI with Terraform untuk debugging dan pengujian lokal](using-samcli-terraform.md)