Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Lihat X-Ray jejak di Fungsi Langkah
Dalam tutorial ini, Anda akan belajar bagaimana menggunakan X-Ray untuk melacak kesalahan yang terjadi saat menjalankan mesin status. Anda dapat menggunakan AWS X-Ray untuk memvisualisasikan komponen mesin status Anda, mengidentifikasi hambatan performa, dan memecahkan masalah permintaan yang mengakibatkan kesalahan. Dalam tutorial ini, Anda akan membuat beberapa fungsi Lambda yang secara acak menghasilkan kesalahan, yang kemudian dapat Anda lacak dan analisis menggunakan X-Ray.
Tutorial Membuat mesin status Step Functions yang menggunakan Lambda memandu Anda dalam membuat mesin status yang memanggil fungsi Lambda. Jika Anda telah menyelesaikan tutorial tersebut, lewati ke Langkah 2 dan gunakan AWS Identity and Access Management (IAM) role yang sebelumnya Anda buat.
Langkah 1: Buat peran IAM untuk Lambda
K AWS Lambda edu AWS Step Functions anya dan dapat menjalankan kode dan mengakses AWS sumber daya (misalnya, data yang disimpan di bucket Amazon S3). Untuk menjaga keamanan, Anda harus memberikan akses kepada Lambda dan Step Functions ke sumber daya ini.
Lambda mengharuskan Anda untuk menetapkan peran AWS Identity and Access Management (IAM) saat Anda membuat fungsi Lambda, dengan cara yang sama Step Functions mengharuskan Anda menetapkan peran IAM saat Anda membuat mesin status.
Untuk membuat peran untuk digunakan dengan Lambda
Anda dapat menggunakan konsol IAM untuk membuat peran tertaut layanan.
Untuk membuat peran (konsol)
Masuk ke Konsol Manajemen AWS dan buka konsol IAM di https://console.aws.amazon.com/iam/
. -
Di panel navigasi konsol IAM, pilih Peran. Lalu pilih Buat peran.
-
Pilih tipe peran Layanan AWS , lalu pilih Lambda.
-
Pilih kasus penggunaan Lambda. Kasus penggunaan ditentukan oleh layanan untuk menyertakan kebijakan kepercayaan yang disyaratkan oleh layanan. Kemudian pilih Selanjutnya: Izin.
-
Pilih satu atau beberapa kebijakan izin untuk dilampirkan ke peran tersebut (misalnya,
AWSLambdaBasicExecutionRole). Lihat Model izin AWS Lambda.Pilih kotak di samping kebijakan yang menetapkan izin yang Anda inginkan untuk peran tersebut, lalu pilih Selanjutnya: Tinjauan.
-
Masukkan Nama peran.
-
(Opsional) Untuk Deskripsi peran, edit deskripsi untuk peran tertaut layanan baru.
-
Tinjau peran lalu pilih Buat peran.
Langkah 2: Buat fungsi Lambda
Fungsi Lambda Anda akan secara acak membuang kesalahan atau waktu habis, menghasilkan contoh data untuk dilihat. X-Ray
penting
Pastikan fungsi Lambda Anda berada di bawah AWS akun yang Wilayah AWS sama dan dengan mesin status Anda.
-
Buka konsol Lambda
dan pilih Create function. -
Di bagian Buat fungsi, pilih Tulis dari awal.
-
Di bagian Informasi dasar, konfigurasikan fungsi Lambda Anda:
-
Untuk Nama fungsi, masukkan
TestFunction1. -
Untuk Runtime, pilih Node.js 18.x.
-
Untuk Peran, pilih Pilih peran yang sudah ada.
-
Untuk Peran yang sudah ada, pilih Peran Lambda yang Anda buat sebelumnya.
catatan
Jika IAM role yang Anda buat tidak muncul dalam daftar, peran tersebut mungkin masih memerlukan beberapa menit untuk diterapkan ke Lambda.
-
Pilih Buat fungsi.
Setelah Lambda membuat fungsi Anda, catat Nama Sumber Daya Amazon (ARN) yang ditampilkan di halaman. Contoh:
arn:aws:lambda:region:123456789012:function:TestFunction1
-
-
Salin kode berikut untuk fungsi Lambda ke bagian kode fungsi
TestFunction1halaman.function getRandomSeconds(max) { return Math.floor(Math.random() * Math.floor(max)) * 1000; } function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } export const handler = async (event) => { if(getRandomSeconds(4) === 0) { throw new Error("Something went wrong!"); } let wait_time = getRandomSeconds(5); await sleep(wait_time); return { 'response': true } };Kode ini membuat kegagalan berwaktu secara acak, yang akan digunakan untuk menghasilkan contoh kesalahan di mesin status Anda yang dapat dilihat dan dianalisis menggunakan X-Ray jejak.
-
Pilih Simpan.
Langkah 3: Buat dua fungsi Lambda lagi
Buat dua fungsi Lambda lagi.
-
Ulangi Langkah 2 untuk membuat dua fungsi Lambda lagi. Untuk fungsi selanjutnya, di Nama fungsi, masukkan
TestFunction2. Untuk fungsi terakhir, di Nama fungsi, masukkanTestFunction3. -
Di konsol Lambda, periksa bahwa Anda sekarang memiliki tiga fungsi Lambda,
TestFunction1,TestFunction2, danTestFunction3.
Langkah 4: Buat mesin negara
Pada langkah ini, Anda akan menggunakan konsol Step Func Task status. Setiap status Task akan mereferensikan salah satu dari tiga fungsi Lambda Anda.
-
Buka konsol Step Func
tions, pilih State machines dari menu, lalu pilih Create state machine. Pilih Buat dari kosong.
Beri nama mesin status Anda, lalu pilih Lanjutkan untuk mengedit mesin status Anda di Workflow Studio.
-
Untuk tutorial ini, Anda akan menulis definisi Amazon States Language (ASL) dari mesin status Anda diEditor kode. Untuk melakukan ini, pilih Kode.
-
Hapus kode boilerplate yang ada dan tempel kode berikut. Dalam definisi status tugas, ingatlah untuk mengganti contoh ARN dengan ARN fungsi Lambda yang Anda buat.
{ "StartAt": "CallTestFunction1", "States": { "CallTestFunction1": { "Type": "Task", "Resource": "arn:aws:lambda:", "Catch": [ { "ErrorEquals": [ "States.TaskFailed" ], "Next": "AfterTaskFailed" } ], "Next": "CallTestFunction2" }, "CallTestFunction2": { "Type": "Task", "Resource": "region:123456789012:function:test-function1arn:aws:lambda:", "Catch": [ { "ErrorEquals": [ "States.TaskFailed" ], "Next": "AfterTaskFailed" } ], "Next": "CallTestFunction3" }, "CallTestFunction3": { "Type": "Task", "Resource": "region:123456789012:function:test-function2arn:aws:lambda:", "TimeoutSeconds": 5, "Catch": [ { "ErrorEquals": [ "States.Timeout" ], "Next": "AfterTimeout" }, { "ErrorEquals": [ "States.TaskFailed" ], "Next": "AfterTaskFailed" } ], "Next": "Succeed" }, "Succeed": { "Type": "Succeed" }, "AfterTimeout": { "Type": "Fail" }, "AfterTaskFailed": { "Type": "Fail" } } }region:123456789012:function:test-function3ARN ini merupakan deskripsi dari mesin status Anda menggunakan Bahasa Status Amazon. ARN ini menentukan tiga status
TaskbernamaCallTestFunction1,CallTestFunction2danCallTestFunction3. Masing-masing memanggil salah satu dari tiga fungsi Lambda Anda. Untuk informasi selengkapnya, lihat Struktur Mesin Status. -
Tentukan nama untuk mesin status Anda. Untuk melakukan ini, pilih ikon edit di sebelah nama mesin status default MyStateMachine. Kemudian, di Konfigurasi mesin negara, tentukan nama di kotak nama mesin negara.
Untuk tutorial ini, masukkan nama
TraceFunctions. -
(Opsional) Dalam konfigurasi mesin status, tentukan pengaturan alur kerja lainnya, seperti jenis mesin status dan peran eksekusinya.
Untuk tutorial ini, di bawah Konfigurasi tambahan, pilih Aktifkan pel X-Ray acakan. Simpan semua pilihan default lainnya di pengaturan mesin Status.
Jika sebelumnya Anda telah membuat peran IAM dengan izin yang benar untuk mesin status Anda dan ingin menggunakannya, di Izin, pilih Pilih peran yang ada, lalu pilih peran dari daftar. Atau pilih Masukkan peran ARN dan kemudian berikan ARN untuk peran IAM itu.
-
Di kotak dialog Kon firmasi pembuatan peran, pilih Kon firmasi untuk melanjutkan.
Anda juga dapat memilih Lihat pengaturan peran untuk kembali ke konfigurasi mesin Status.
catatan
Jika Anda menghapus IAM role yang Step Functions buat, Step Functions tidak dapat membuatnya kembali nanti. Demikian pula, jika Anda mengubah peran (misalnya, dengan menghapus Step Functions dari principal dalam kebijakan IAM), Step Functions tidak dapat memulihkan pengaturan aslinya nanti.
Langkah 5: Jalankan mesin status
Eksekusi mesin status adalah instans tempat Anda menjalankan alur kerja untuk melakukan tugas.
-
Pada
TraceFunctionshalaman, pilih Mulai eksekusi.Halaman Eksekusi baru ditampilkan.
-
Di kotak dialog Mulai eksekusi, lakukan hal berikut:
-
(Opsional) Masukkan nama eksekusi khusus untuk mengganti default yang dihasilkan.
Non-ASCII nama dan pencatatan
Fungsi Langkah menerima nama untuk mesin status, eksekusi, aktivitas, dan label yang berisi karakter non-ASCII. Karena karakter tersebut akan CloudWatch mencegah Amazon mencatat data, sebaiknya gunakan hanya karakter ASCII sehingga Anda dapat melacak metrik Fungsi Langkah.
-
Pilih Mulai Eksekusi.
-
Konsol Step Functions mengarahkan Anda ke halaman yang diberi judul dengan ID eksekusi Anda. Halaman ini dikenal sebagai halaman Detail Eksekusi. Di halaman ini, Anda dapat meninjau hasil eksekusi saat eksekusi berlangsung atau setelah selesai.
Untuk meninjau hasil eksekusi, pilih status individual pada tampilan Grafik, lalu pilih tab individual pada Detail langkah panel untuk melihat detail setiap negara termasuk masukan, keluaran, dan definisi masing-masing. Untuk detail tentang informasi eksekusi yang dapat Anda lihat di halaman Detail Eksekusi, lihatIkhtisar detail eksekusi.
Jalankan beberapa (setidaknya tiga) eksekusi.
-
-
Setelah eksekusi selesai, ikuti tautan peta X-Ray jejak. Anda dapat melihat jejak saat eksekusi masih berjalan, tetapi Anda mungkin ingin melihat hasil eksekusi sebelum melihat peta X-Ray jejak.
-
Lihat peta layanan untuk mengidentifikasi tempat terjadinya kesalahan, koneksi dengan latensi tinggi, atau pelacakan permintaan yang tidak berhasil. Dalam contoh ini, Anda dapat melihat banyaknya lalu lintas yang diterima oleh setiap fungsi.
TestFunction2lebih sering dipanggil daripadaTestFunction3, danTestFunction1dipanggil lebih dari dua kali lebih sering dariTestFunction2.Peta layanan menunjukkan kondisi setiap simpul dengan mewarnainya berdasarkan rasio panggilan yang berhasil terhadap kesalahan dan kerusakan:
-
Hijau untuk panggilan berhasil
-
Merah untuk kesalahan server (500 kesalahan seri)
-
Kuning untuk kesalahan klien (400 kesalahan seri)
-
Ungu untuk kesalahan throttling (429 Terlalu Banyak Permintaan)
Anda juga dapat memilih simpul layanan untuk melihat permintaan untuk simpul tersebut, atau tepi antara dua simpul untuk melihat permintaan yang melewati koneksi tersebut.
-
-
Lihat peta X-Ray jejak untuk melihat apa yang telah terjadi untuk setiap eksekusi. Lini Waktu menunjukkan hirarki segmen dan subsegment. Entri pertama dalam daftar adalah segmen, yang mewakili semua data yang dicatat oleh layanan untuk satu permintaan. Di bawah segmen adalah subsegmen. Contoh ini menunjukkan subsegmen yang dicatat oleh fungsi Lambda.
Untuk informasi selengkapnya tentang memahami X-Ray jejak dan menggunakan X-Ray dengan Fungsi Langkah, lihat Melacak data permintaan Step Functions di AWS X-Ray