Menggunakan Terraform untuk menyebarkan mesin status di Step Functions - AWS Step Functions

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 by HashiCorp adalah kerangka kerja untuk membangun aplikasi menggunakan infrastruktur sebagai kode (IAc). Dengan Terraform, Anda dapat membuat mesin status dan menggunakan fitur, seperti melihat pratinjau penerapan infrastruktur dan membuat templat yang dapat digunakan kembali. Template Terraform membantu Anda memelihara dan menggunakan kembali kode dengan memecahnya menjadi potongan-potongan yang lebih kecil.

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 The Workshop. AWS Step Functions

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

Untuk memulai siklus hidup pengembangan mesin status dengan Terraform
  1. Bootstrap proyek Terraform baru dengan perintah berikut.

    terraform init
  2. Buka konsol Step Functions untuk membuat prototipe untuk mesin status Anda.

  3. Di Workflow Studio, lakukan hal berikut:

    1. Buat prototipe alur kerja Anda.

    2. Ekspor definisi Amazon States Language (ASL) alur kerja Anda. Untuk melakukan ini, pilih daftar dropdownlist Impor/Ekspor, lalu pilih Definisi ekspor. JSON

  4. Simpan ASL definisi yang diekspor dalam direktori proyek Anda.

    Anda meneruskan ASL definisi yang diekspor sebagai parameter input ke sumber daya aws_sfn_state_machineTerraform 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.

  5. (Opsional) Perbarui ASL definisi di dalam Anda IDE dan visualisasikan perubahan Anda menggunakan. AWS Toolkit for Visual Studio Code

    Screenshot dari ASL definisi alur kerja dalam Visual Studio Code dan representasi visualnya.

    Untuk menghindari terus-menerus mengekspor definisi Anda dan memfaktorkannya kembali ke proyek Anda, kami sarankan Anda membuat pembaruan secara lokal di dalam diri Anda IDE dan melacak pembaruan ini dengan Git.

  6. Uji alur kerja Anda menggunakan Step Functions Local.

  7. Pratinjau mesin status Anda dan AWS sumber daya lainnya sebelum menerapkan mesin status. Untuk melakukan ini, jalankan perintah berikut.

    terraform plan
  8. Terapkan mesin status Anda dari lingkungan lokal Anda atau melalui pipa CI/CD menggunakan perintah berikut.

    terraform apply
  9. (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 untuk menambahkan IAM izin yang diperlukan ke mesin status Anda, misalnya, izin untuk menjalankan fungsi Lambda. Anda juga dapat menentukan peran dan kebijakan eksplisit dan mengaitkannya dengan mesin status Anda.

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_documentdata saat menentukan IAM kebijakan untuk mesin status Anda di Terraform. Ini membantu Anda memeriksa apakah kebijakan Anda salah bentuk dan mengganti sumber daya apa pun dengan variabel.

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 Tanpa Server.