Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan Terraform untuk menyebarkan mesin status di Step Functions
Terraform
Jika Anda terbiasa dengan Terraform, Anda dapat mengikuti siklus hidup pengembangan yang dijelaskan dalam topik ini sebagai model untuk membuat dan menerapkan mesin status Anda di Terraform. Jika Anda tidak terbiasa dengan Terraform, kami sarankan Anda menyelesaikan lokakarya terlebih dahulu Pengantar Terraform tentang AWS untuk berkenalan dengan Terraform
Tip
Untuk menerapkan contoh mesin status yang dibuat menggunakan Terraform ke Anda Akun AWS, lihat modul Mengelola mesin status dengan infrastruktur sebagai kode
Dalam topik ini:
Prasyarat
Sebelum Anda memulai, pastikan Anda menyelesaikan prasyarat berikut:
-
Instal Terraform di mesin Anda. Untuk informasi tentang menginstal Terraform, lihat Menginstal
Terraform. -
Instal Step Functions Local di mesin Anda. Kami menyarankan Anda menginstal image Step Functions Local Docker untuk menggunakan Step Functions Local. Untuk informasi selengkapnya, lihat Menguji mesin status secara lokal di Step Functions.
-
Instal AWS SAM CLI. Untuk informasi penginstalan, lihat Menginstal AWS SAM CLI di Panduan AWS Serverless Application Model Pengembang.
-
Instal AWS Toolkit for Visual Studio Code untuk melihat diagram alur kerja mesin negara Anda. Untuk informasi penginstalan, lihat Menginstal AWS Toolkit for Visual Studio Code di Panduan AWS Toolkit for Visual Studio Code Pengguna.
Siklus hidup pengembangan mesin negara dengan Terraform
Prosedur berikut menjelaskan bagaimana Anda dapat menggunakan prototipe mesin status yang Anda buat menggunakan Workflow Studio di konsol Step Functions sebagai titik awal untuk pengembangan lokal dengan Terraform dan. AWS Toolkit for Visual Studio Code
Untuk melihat contoh lengkap yang membahas pengembangan mesin status dengan Terraform dan menyajikan praktik terbaik secara detail, lihat Praktik terbaik untuk menulis proyek Step Functions
Untuk memulai siklus hidup pengembangan mesin status dengan Terraform
-
Bootstrap proyek Terraform baru dengan perintah berikut.
terraform init
-
Buka konsol Step Functions
untuk membuat prototipe untuk mesin status Anda. -
Di Workflow Studio, lakukan hal berikut:
-
Buat prototipe alur kerja Anda.
-
Ekspor definisi Amazon States Language (ASL) alur kerja Anda. Untuk melakukan ini, pilih daftar dropdownlist Impor/Ekspor, lalu pilih Definisi ekspor. JSON
-
-
Simpan ASL definisi yang diekspor dalam direktori proyek Anda.
Anda meneruskan ASL definisi yang diekspor sebagai parameter input ke sumber daya
aws_sfn_state_machine
Terraform yang menggunakan fungsi tersebut. templatefile
Fungsi ini digunakan di dalam bidang definisi yang melewati ASL definisi yang diekspor dan setiap substitusi variabel. Tip
Karena file ASL definisi dapat berisi blok teks yang panjang, kami sarankan Anda menghindari metode inlineEOF. Ini membuatnya lebih mudah untuk mengganti parameter ke dalam definisi mesin status Anda.
-
(Opsional) Perbarui ASL definisi di dalam Anda IDE dan visualisasikan perubahan Anda menggunakan. AWS Toolkit for Visual Studio Code
-
Uji alur kerja Anda menggunakan Step Functions Local.
-
Pratinjau mesin status Anda dan AWS sumber daya lainnya sebelum menerapkan mesin status. Untuk melakukan ini, jalankan perintah berikut.
terraform plan
-
Terapkan mesin status Anda dari lingkungan lokal Anda atau melalui pipa CI/CD
menggunakan perintah berikut. terraform apply
-
(Opsional) Bersihkan sumber daya Anda dan hapus mesin status menggunakan perintah berikut.
terraform destroy
IAMperan dan kebijakan untuk mesin negara Anda
Gunakan kebijakan integrasi layanan Terraform
Contoh IAM kebijakan berikut memberikan akses mesin status Anda untuk menjalankan fungsi Lambda bernama. myFunction
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:us-east-1:123456789012:function:
myFunction
" } ] }
Kami juga merekomendasikan penggunaan sumber aws_iam_policy_document
Contoh IAM kebijakan berikut menggunakan sumber aws_iam_policy_document
data dan memberikan akses mesin status Anda untuk menjalankan fungsi Lambda bernama. myFunction
data "aws_iam_policy_document" "state_machine_role_policy" { statement { effect = "Allow" actions = [ "lambda:InvokeFunction" ] resources = ["${aws_lambda_function.
[[myFunction]]
.arn}:*"] } }
Tip
Untuk melihat lebih banyak pola AWS arsitektur lanjutan yang diterapkan dengan Terraform, lihat contoh Terraform di Koleksi Alur Kerja Tanah