Buat mesin status Step Functions menggunakan AWS SAM - AWS Step Functions

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

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.

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

Panduan ini mengasumsikan bahwa Anda telah menyelesaikan langkah-langkah dalam Menginstal AWS SAM CLI untuk OS Anda. Panduan ini mengasumsikan bahwa Anda telah melakukan hal berikut:

  1. Membuat AWS akun.

  2. IAMIzin yang dikonfigurasi.

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

  4. 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 Sampel Aplikasi AWS SAM

Perintah untuk menjalankan:

sam init

Ikuti perintah di layar untuk memilih hal berikut:

  1. Template: Templat Mulai AWS Cepat

  2. Bahasa: Python, Ruby, NodeJS, Go, Java, atau. NET

  3. Nama proyek: (nama pilihan Anda - yang default adalah sam-app)

  4. 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:

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

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 CLIHadir dengan abstraksi untuk sejumlah runtime Lambda untuk membangun dependensi Anda, dan menyalin semua artefak build ke 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

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. AWS CloudFormation Dalam output dari perintah deploy, Anda dapat melihat perubahan yang dilakukan pada tumpukan AWS CloudFormation Anda.

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

  1. Masuk ke AWS Management Console dan buka konsol Step Functions di https://console.aws.amazon.com/states/.

  2. Di navigasi sebelah kiri, pilih Mesin status.

  3. Temukan dan pilih mesin status baru Anda dalam daftar tersebut. Ini akan dinamai StockTradingStateMachine -<unique-hash>.

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

SAMCLIerror: “tidak ada opsi seperti itu: --guided”

Saat mengeksekusi sam deploy, Anda akan melihat kesalahan berikut:

 
Error: no such option: --guided
            

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

SAMCLIerror: “Gagal membuat sumber daya terkelola: Tidak dapat menemukan kredensional”

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 panggilan AWS SAM CLI AWS layanan. Untuk memperbaikinya, Anda harus mengatur AWS kredensional. Untuk informasi selengkapnya, lihat Menyiapkan AWS Kredensial di Panduan AWS Serverless Application Model Pengembang.

Pembersihan

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

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

  1. Masuk ke AWS Management Console dan buka AWS CloudFormation konsol di https://console.aws.amazon.com/cloudformation.

  2. Di panel navigasi sebelah kiri, pilih Tumpukan.

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

  4. Pilih Hapus.

Setelah selesai, status tumpukan akan berubah menjadi DELETE_ COMPLETE.

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

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

Verifikasi Tumpukan yang Dihapus

Untuk kedua metode menghapus AWS CloudFormation tumpukan, Anda dapat memverifikasi bahwa tumpukan telah dihapus dengan membuka 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.