Memecahkan masalah status AWS Step Functions dengan menggunakan Amazon Bedrock - AWS Prescriptive Guidance

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

Memecahkan masalah status AWS Step Functions dengan menggunakan Amazon Bedrock

Aniket Kurzadkar dan Sangam Kushwaha, Amazon Web Services

Ringkasan

AWS Step Functions Kemampuan penanganan kesalahan dapat membantu Anda melihat kesalahan yang terjadi selama status dalam alur kerja, tetapi masih bisa menjadi tantangan untuk menemukan akar penyebab kesalahan dan men-debugnya. Pola ini membahas tantangan tersebut dan menunjukkan bagaimana Amazon Bedrock dapat membantu Anda mengatasi kesalahan yang terjadi selama status di Step Functions.

Step Functions menyediakan orkestrasi alur kerja, sehingga memudahkan pengembang untuk mengotomatisasi proses. Step Functions juga menyediakan fungsionalitas penanganan kesalahan yang memberikan manfaat sebagai berikut:

  • Pengembang dapat membuat aplikasi yang lebih tangguh yang tidak gagal sepenuhnya ketika terjadi kesalahan.

  • Alur kerja dapat mencakup logika bersyarat untuk menangani berbagai jenis kesalahan secara berbeda.

  • Sistem dapat secara otomatis mencoba kembali operasi yang gagal, mungkin dengan backoff eksponensial.

  • Jalur eksekusi alternatif dapat didefinisikan untuk skenario kesalahan, memungkinkan alur kerja beradaptasi dan melanjutkan pemrosesan.

Ketika terjadi kesalahan dalam alur kerja Step Functions, pola ini menunjukkan bagaimana pesan kesalahan dan konteks dapat dikirim ke model dasar (FM) seperti Claude 3 yang didukung oleh Step Functions. FM dapat menganalisis kesalahan, mengkategorikannya, dan menyarankan langkah-langkah perbaikan potensial.

Prasyarat dan batasan

Prasyarat

Batasan

  • Anda dapat menggunakan pendekatan pola ini untuk berbagai Layanan AWS. Namun, hasilnya mungkin bervariasi sesuai dengan prompt yang dibuat oleh AWS Lambda yang kemudian dievaluasi oleh Amazon Bedrock.

  • Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat layanan AWS menurut Wilayah. Untuk titik akhir tertentu, lihat Titik akhir dan kuota layanan, dan pilih tautan untuk layanan.

Arsitektur

Diagram berikut menunjukkan alur kerja dan komponen arsitektur untuk pola ini.

Alur kerja untuk penanganan kesalahan dan pemberitahuan menggunakan Step Functions, Amazon Bedrock, dan Amazon SNS.

Diagram menunjukkan alur kerja otomatis untuk penanganan kesalahan dan pemberitahuan di mesin status Step Functions:

  1. Pengembang memulai eksekusi mesin negara.

  2. Mesin status Step Functions mulai memproses statusnya. Ada dua kemungkinan hasil:

    • (a) Jika semua status berhasil dijalankan, alur kerja dilanjutkan langsung ke Amazon SNS untuk pemberitahuan keberhasilan email.

    • (b) Jika ada status yang gagal, alur kerja berpindah ke kesalahan penanganan fungsi Lambda.

  3. Jika terjadi kesalahan, berikut ini terjadi:

    • (a) Fungsi Lambda (penangan kesalahan) dipicu. Fungsi Lambda mengekstrak pesan kesalahan dari data peristiwa yang diteruskan oleh mesin status Step Functions kepadanya. Kemudian fungsi Lambda menyiapkan prompt berdasarkan pesan kesalahan ini dan mengirimkan prompt ke Amazon Bedrock. Prompt meminta solusi dan saran terkait dengan kesalahan spesifik yang ditemui.

    • (b) Amazon Bedrock, yang menampung model AI generatif, memproses prompt input. (Pola ini menggunakan model pondasi Anthropic Claude 3 (FM), yang merupakan salah satu dari banyak yang didukung FMs Amazon Bedrock.) Model AI menganalisis konteks kesalahan. Kemudian model menghasilkan respons yang dapat mencakup penjelasan mengapa kesalahan terjadi, solusi potensial untuk menyelesaikan kesalahan, dan saran untuk menghindari membuat kesalahan yang sama di masa depan.

      Amazon Bedrock mengembalikan respons yang dihasilkan AI ke fungsi Lambda. Fungsi Lambda memproses respons, berpotensi memformatnya atau mengekstrak informasi kunci. Kemudian fungsi Lambda mengirimkan respons ke output mesin status.

  4. Setelah penanganan kesalahan atau eksekusi berhasil, alur kerja diakhiri dengan memicu Amazon SNS untuk mengirim pemberitahuan email.

Alat

Layanan AWS

  • Amazon Bedrock adalah layanan yang dikelola sepenuhnya yang membuat model foundation berkinerja tinggi (FMs) dari startup AI terkemuka dan Amazon tersedia untuk Anda gunakan melalui API terpadu.

  • AWS Lambdaadalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.

  • Amazon Simple Notification Service (Amazon SNS) membantu Anda mengoordinasikan dan mengelola pertukaran pesan antara penayang dan klien, termasuk server web dan alamat email.

  • AWS Step Functionsadalah layanan orkestrasi tanpa server yang membantu Anda menggabungkan AWS Lambda fungsi dan lainnya Layanan AWS untuk membangun aplikasi bisnis yang penting.

Praktik terbaik

  • Mengingat bahwa Amazon Bedrock adalah model AI generatif yang belajar dari data terlatih, ia juga menggunakan data tersebut untuk melatih dan menghasilkan konteks. Sebagai praktik terbaik, sembunyikan informasi pribadi apa pun yang dapat menyebabkan masalah kebocoran data.

  • Meskipun AI generatif dapat memberikan wawasan yang berharga, keputusan penanganan kesalahan kritis harus tetap melibatkan pengawasan manusia, terutama di lingkungan produksi.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Buat mesin negara.

Untuk membuat mesin status yang sesuai dengan alur kerja Anda, lakukan hal berikut:

  1. Masuk ke AWS Management Console, dan buka AWS Step Functions konsol.

  2. Dari panel navigasi kiri, pilih mesin State.

  3. Pilih Buat mesin status.

  4. Pilih template sesuai dengan kasus penggunaan Anda, atau pilih Kosong untuk membuat template sesuai dengan kebutuhan Anda.

AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Buat fungsi Lambda.

Untuk membuat fungsi Lambda, lakukan hal berikut:

  1. Di AWS Management Console, navigasikan ke AWS Lambda konsol.

  2. Di panel navigasi kiri, pilih Functions dan kemudian pilih Create function.

  3. Pada halaman Create function, pilih dari opsi untuk membuat fungsi. Kemudian, masukkan nama di Nama fungsi dan pilih bahasa yang sesuai dari daftar dropdown di Runtime.

  4. Pilih Buat fungsi.

AWS DevOps

Siapkan logika yang diperlukan dalam kode Lambda.

  • Untuk menyambung ke Amazon Bedrock API dengan menggunakan AWS SDK untuk Python (Boto3), gunakan kode berikut.

    Kode ini menyiapkan klien untuk Amazon Bedrock, menyiapkan parameter yang diperlukan, dan kemudian mengirimkan permintaan ke model Claude 3 dengan prompt yang ditentukan.

    Pola ini memanggil model Claude 3. Untuk informasi selengkapnya tentang semua model foundation yang didukung termasuk model terkait IDs, lihat Model foundation yang didukung di Amazon Bedrock di dokumentasi Amazon Bedrock.

client = boto3.client( service_name="bedrock-runtime", region_name="selected-region" ) # Invoke Claude 3 with the text prompt model_id = "your-model-id" # Select your Model ID, Based on the Model Id, Change the body format try: response = client.invoke_model( modelId=model_id, body=json.dumps( { "anthropic_version": "bedrock-2023-05-31", "max_tokens": 1024, "messages": [ { "role": "user", "content": [{"type": "text", "text": prompt}], } ], } ), )
  • (Opsional) Ganti akun Akun AWS IDs dengan placeholder. IDs Untuk tujuan keamanan, pendekatan ini dapat berguna untuk membersihkan log, pesan kesalahan, atau output lain yang mungkin berisi informasi akun sensitif.

    Kode berikut akan menemukan kejadian angka 12 digit yang dilampirkan dalam titik dua (yang merupakan format di Akun AWS IDs Amazon Resource Names (ARNs) dan beberapa AWS pengidentifikasi lainnya) dan menggantinya dengan ID akun placeholder. ":123456789012:"

    def replace_account_id(input_string): # Use a regular expression to find the AWS account ID pattern account_id_pattern = r'(:\d{12}:)' # Replace the matched pattern with ":123456789012:" modified_string = re.sub(account_id_pattern, ":123456789012:", input_string) return modified_string
AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Siapkan Lambda untuk menangani kesalahan di Step Functions.

Untuk mengatur Step Functions untuk menangani kesalahan tanpa mengganggu alur kerja, lakukan hal berikut:

  1. Di konsol Step Functions, navigasikan ke mesin status yang Anda buat sebelumnya.

  2. Pilih Edit, lalu pilih layanan yang ingin Anda atur penanganan kesalahan dan pilih Penanganan Kesalahan.

  3. Pilih Tambahkan penangkap baru, dan untuk status Fallback, pilih Lambda dan kemudian pilih fungsi Lambda yang Anda buat sebelumnya. Untuk informasi selengkapnya, lihat Menangkap kesalahan dalam dokumentasi Step Functions.

AWS DevOps

Pemecahan Masalah

IsuSolusi

Lambda tidak dapat mengakses Amazon Bedrock API (Tidak diizinkan untuk melakukan)

Kesalahan ini terjadi ketika peran Lambda tidak memiliki izin untuk mengakses Amazon Bedrock API. Untuk mengatasi masalah ini, tambahkan AmazonBedrockFullAccess kebijakan untuk peran Lambda. Untuk informasi selengkapnya, lihat AmazonBedrockFullAccessdi Panduan Referensi Kebijakan AWS Terkelola.

Kesalahan batas waktu Lambda

Terkadang mungkin diperlukan lebih dari 30 detik untuk menghasilkan respons dan mengirimkannya kembali, tergantung pada prompt. Untuk mengatasi masalah ini, tingkatkan waktu konfigurasi. Untuk informasi selengkapnya, lihat Mengonfigurasi batas waktu fungsi Lambda di Panduan Pengembang.AWS Lambda

Sumber daya terkait