

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

# Buat mesin status Step Functions menggunakan AWS SAM
<a name="tutorial-state-machine-using-sam"></a>

Dalam panduan ini, Anda mengunduh, membangun, dan menerapkan contoh AWS SAM aplikasi yang berisi mesin AWS Step Functions status. Aplikasi ini membuat alur kerja perdagangan saham tiruan yang berjalan pada jadwal yang telah ditentukan sebelumnya (perhatikan bahwa jadwal dinonaktifkan secara default untuk menghindari biaya).

Diagram berikut menunjukkan komponen dari aplikasi ini:

![\[Diagram yang menunjukkan alur kerja untuk tutorial ini.\]](http://docs.aws.amazon.com/id_id/step-functions/latest/dg/images/sam-starter-template-docs.png)


Berikut ini adalah pratinjau perintah yang Anda jalankan untuk membuat aplikasi sampel Anda. Untuk detail selengkapnya tentang masing-masing perintah ini, lihat bagian selanjutnya di halaman ini

```
# Step 1 - Download a sample application. For this tutorial you
#   will follow the prompts to select an AWS Quick Start Template
#   called 'Multi-step workflow'
sam init

# Step 2 - Build your application
cd project-directory
sam build

# Step 3 - Deploy your application
sam deploy --guided
```

## Prasyarat
<a name="tutorial-state-machine-using-sam-prerequisites"></a>

Panduan ini mengasumsikan bahwa Anda telah menyelesaikan langkah-langkah dalam [Menginstal AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) untuk OS Anda. Panduan ini mengasumsikan bahwa Anda telah melakukan hal berikut:

1. Membuat AWS akun.

1. Mengonfigurasi izin IAM.

1. Menginstal Homebrew. Catatan: Homebrew hanyalah prasyarat untuk Linux dan macOS.

1. Menginstal AWS SAM CLI. Catatan: Pastikan bahwa Anda memiliki versi 0.52.0 atau yang lebih baru. Anda dapat memeriksa versi yang Anda miliki dengan mengeksekusi perintah `sam --version`.

## Langkah 1: Unduh Contoh AWS SAM Aplikasi
<a name="tutorial-state-machine-using-sam-initialize"></a>

**Perintah untuk menjalankan:**

```
sam init
```

Ikuti perintah di layar untuk memilih hal berikut:

1. **Template:** Templat Mulai AWS Cepat

1. **Bahasa:** Python, Ruby, NodeJS, Go, Java, atau .NET

1. **Nama proyek:** (nama pilihan Anda - yang default adalah `sam-app`)

1. **Aplikasi mulai cepat: Alur** kerja multi-langkah

**Apa AWS SAM yang dilakukan:**

Perintah ini membuat direktori dengan nama yang Anda berikan untuk prompt 'Project name' (default-nya adalah `sam-app`). Isi spesifik direktori akan tergantung pada bahasa yang Anda pilih.

Berikut adalah isi direktori saat Anda memilih salah satu dari waktu aktif Python:

```
├── README.md
├── functions
│   ├── __init__.py
│   ├── stock_buyer
│   │   ├── __init__.py
│   │   ├── app.py
│   │   └── requirements.txt
│   ├── stock_checker
│   │   ├── __init__.py
│   │   ├── app.py
│   │   └── requirements.txt
│   └── stock_seller
│       ├── __init__.py
│       ├── app.py
│       └── requirements.txt
├── statemachine
│   └── stock_trader.asl.json
├── template.yaml
└── tests
    └── unit
        ├── __init__.py
        ├── test_buyer.py
        ├── test_checker.py
        └── test_seller.py
```

Ada dua file yang sangat menarik yang dapat Anda lihat:
+ `template.yaml`: Berisi AWS SAM template yang mendefinisikan AWS sumber daya aplikasi Anda.
+ `statemachine/stockTrader.asl.json`: Berisi ketentuan mesin status aplikasi, yang ditulis dalam [Menggunakan Amazon States Language untuk menentukan alur kerja Step Functions](concepts-amazon-states-language.md).

Anda dapat melihat entri berikut dalam file `template.yaml`, yang menunjuk ke file ketentuan mesin status:



```
    Properties:
      DefinitionUri: statemachine/stock_trader.asl.json
```

Akan sangat membantu untuk menjaga definisi mesin status sebagai file terpisah alih-alih menyematkannya di AWS SAM template. Misalnya, melacak perubahan pada definisi mesin status lebih mudah jika Anda tidak menyertakan definisi dalam templat. Anda dapat menggunakan Workflow Studio untuk membuat dan memelihara definisi mesin status, dan mengekspor definisi dari konsol langsung ke file spesifikasi Amazon States Language tanpa menggabungkannya ke dalam template.

Untuk informasi selengkapnya tentang aplikasi sampel, lihat file `README.md` dalam direktori proyek.

## Langkah 2: Bangun Aplikasi Anda
<a name="tutorial-state-machine-using-sam-build"></a>

**Perintah untuk menjalankan:**

Pertama-tama ubah ke direktori proyek (yaitu, direktori tempat file `template.yaml` untuk aplikasi sampel berada; secara default adalah `sam-app`), lalu jalankan perintah ini:

```
sam build
```

**Contoh keluaran:**

```
  
 Build Succeeded

 Built Artifacts  : .aws-sam/build
 Built Template   : .aws-sam/build/template.yaml

 Commands you can use next
 =========================
 [*] Invoke Function: sam local invoke
 [*] Deploy: sam deploy --guided
```

**Apa AWS SAM yang dilakukan:**

 AWS SAM CLI dilengkapi dengan abstraksi untuk sejumlah runtime Lambda untuk membangun dependensi Anda, dan menyalin semua artefak build ke dalam folder pementasan sehingga semuanya siap untuk dikemas dan digunakan. Perintah `sam build` membangun setiap dependensi yang aplikasi Anda miliki, dan menyalin artefak build ke folder di bawah `.aws-sam/build`.

## Langkah 3: Menyebarkan Aplikasi Anda ke Cloud AWS
<a name="tutorial-state-machine-using-sam-deploy"></a>

**Perintah untuk menjalankan:**

```
sam deploy --guided
```

Ikuti petunjuk di layar. Anda hanya dapat merespons dengan `Enter` untuk menerima opsi default yang disediakan dalam pengalaman interaktif.

**Apa AWS SAM yang dilakukan:**

Perintah ini menyebarkan aplikasi Anda ke AWS cloud. Dibutuhkan artefak penerapan yang Anda buat dengan `sam build` perintah, paket, dan mengunggahnya ke bucket Amazon S3 yang dibuat oleh AWS SAM CLI, dan menyebarkan aplikasi menggunakan. CloudFormation Dalam output dari perintah deploy, Anda dapat melihat perubahan yang dilakukan pada tumpukan CloudFormation Anda.

Anda dapat memverifikasi contoh mesin status Step Functions berhasil di-deploy dengan mengikuti langkah-langkah berikut:

1. Masuk ke Konsol Manajemen AWS dan buka konsol Step Functions di [https://console.aws.amazon.com/states/](https://console.aws.amazon.com/states/).

1. Di navigasi sebelah kiri, pilih **Mesin status**.

1. Temukan dan pilih mesin status baru Anda dalam daftar tersebut. Ini akan diberi nama StockTradingStateMachine -*<unique-hash>*.

1. Pilih tab **Ketentuan**.

Anda sekarang akan melihat representasi visual dari mesin status Anda. Anda dapat memverifikasi bahwa representasi visual sesuai dengan ketentuan mesin status yang ditemukan di dalam file `statemachine/stockTrader.asl.json` dari direktori proyek Anda.

## Pemecahan masalah
<a name="tutorial-state-machine-using-sam-troubleshooting"></a>

### Kesalahan CLI SAM: "opsi tersebut tidak ada: --dipandu"
<a name="tutorial-state-machine-using-sam-troubleshooting-guided"></a>

Saat mengeksekusi `sam deploy`, Anda akan melihat kesalahan berikut:

```
 
Error: no such option: --guided
```

Ini berarti Anda menggunakan versi AWS SAM CLI yang lebih lama yang tidak mendukung parameter. `--guided` Untuk memperbaikinya, Anda dapat memperbarui versi AWS SAM CLI Anda ke 0.33.0 atau yang lebih baru, atau menghilangkan parameter dari `--guided` perintah. `sam deploy`

### Kesalahan CLI SAM: "Gagal untuk membuat sumber daya terkelola: Tidak dapat menemukan kredensial"
<a name="tutorial-state-machine-using-sam-troubleshooting-credentials"></a>

Saat mengeksekusi `sam deploy`, Anda akan melihat kesalahan berikut:

```
 
Error: Failed to create managed resources: Unable to locate credentials
```

Ini berarti Anda belum menyiapkan AWS kredensi untuk mengaktifkan AWS SAM CLI melakukan panggilan layanan. AWS Untuk memperbaikinya, Anda harus mengatur AWS kredensional. Untuk informasi selengkapnya, lihat [Menyiapkan AWS Kredensial](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-getting-started-set-up-credentials.html) di Panduan *AWS Serverless Application Model Pengembang*.

## Pembersihan
<a name="tutorial-state-machine-using-sam-cleanup"></a>

Jika Anda tidak lagi membutuhkan AWS sumber daya yang Anda buat dengan menjalankan tutorial ini, Anda dapat menghapusnya dengan menghapus CloudFormation tumpukan yang Anda gunakan.

Untuk menghapus CloudFormation tumpukan yang dibuat dengan tutorial ini menggunakan Konsol Manajemen AWS, ikuti langkah-langkah berikut:

1. Masuk ke Konsol Manajemen AWS dan buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Di panel navigasi sebelah kiri, pilih **Tumpukan**.

1. Dalam daftar tumpukan, pilih **aplikasi sam** (atau nama tumpukan yang Anda buat).

1. Pilih **Hapus**.

Setelah selesai, status dari tumpukan akan berubah menjadi **DELETE\$1COMPLETE**.

Atau, Anda dapat menghapus CloudFormation tumpukan dengan menjalankan AWS CLI perintah berikut:

```
aws cloudformation delete-stack --stack-name sam-app --region region
```

### Verifikasi Tumpukan yang Dihapus
<a name="tutorial-state-machine-using-sam-cleanup-verify"></a>

Untuk kedua metode menghapus CloudFormation tumpukan, Anda dapat memverifikasi bahwa tumpukan telah dihapus dengan membuka [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/), memilih **Tumpukan** di panel navigasi kiri, dan memilih **Dihapus** di dropdown di sebelah kanan kotak teks pencarian. Anda akan melihat nama tumpukan Anda **aplikasi sam-app** (atau nama tumpukan yang Anda buat) dalam daftar tumpukan yang dihapus.