

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
<a name="troubleshooting-states-in-aws-step-functions"></a>

*Aniket Kurzadkar dan Sangam Kushwaha, Amazon Web Services*

## Ringkasan
<a name="troubleshooting-states-in-aws-step-functions-summary"></a>

AWS Step Functions Kemampuan penanganan kesalahan dapat membantu Anda melihat kesalahan yang terjadi selama status dalam [alur kerja](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-statemachines.html), 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
<a name="troubleshooting-states-in-aws-step-functions-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ Pemahaman dasar [AWS Step Functions dan alur kerja](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-statemachines.html)
+ Konektivitas Amazon Bedrock [API](https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api.html)

**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](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Untuk titik akhir tertentu, lihat [Titik akhir dan kuota layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), dan pilih tautan untuk layanan.

## Arsitektur
<a name="troubleshooting-states-in-aws-step-functions-architecture"></a>

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.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/78f86c74-c9de-4562-adcc-105b87a77a54/images/d8eda499-ea1d-45e5-8a36-e04a44ad5c4b.png)


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

1. Pengembang memulai eksekusi mesin negara.

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

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

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

## Alat
<a name="troubleshooting-states-in-aws-step-functions-tools"></a>

**Layanan AWS**
+ [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html) 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 Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)adalah 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](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)) membantu Anda mengoordinasikan dan mengelola pertukaran pesan antara penayang dan klien, termasuk server web dan alamat email.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)adalah layanan orkestrasi tanpa server yang membantu Anda menggabungkan AWS Lambda fungsi dan lainnya Layanan AWS untuk membangun aplikasi bisnis yang penting.

## Praktik terbaik
<a name="troubleshooting-states-in-aws-step-functions-best-practices"></a>
+ 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
<a name="troubleshooting-states-in-aws-step-functions-epics"></a>

### Buat mesin status untuk alur kerja Anda
<a name="create-a-state-machine-for-your-workflow"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat mesin negara. | Untuk membuat mesin status yang sesuai dengan alur kerja Anda, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/troubleshooting-states-in-aws-step-functions.html) | AWS DevOps | 

### Buat fungsi Lambda
<a name="create-a-lam-function"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat fungsi Lambda.  | Untuk membuat fungsi Lambda, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/troubleshooting-states-in-aws-step-functions.html) | AWS DevOps | 
| Siapkan logika yang diperlukan dalam kode Lambda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/troubleshooting-states-in-aws-step-functions.html)<pre>client = boto3.client(<br />        service_name="bedrock-runtime", region_name="selected-region"<br />    )<br /><br />    # Invoke Claude 3 with the text prompt<br />    model_id = "your-model-id" # Select your Model ID, Based on the Model Id, Change the body format<br /><br />    try:<br />        response = client.invoke_model(<br />            modelId=model_id,<br />            body=json.dumps(<br />                {<br />                    "anthropic_version": "bedrock-2023-05-31",<br />                    "max_tokens": 1024,<br />                    "messages": [<br />                        {<br />                            "role": "user",<br />                            "content": [{"type": "text", "text": prompt}],<br />                        }<br />                    ],<br />                }<br />            ),<br />        )<br /></pre>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/troubleshooting-states-in-aws-step-functions.html) | AWS DevOps | 

### Integrasikan Step Functions dengan Lambda
<a name="integrate-sfn-with-lam"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan Lambda untuk menangani kesalahan di Step Functions. | Untuk mengatur Step Functions untuk menangani kesalahan tanpa mengganggu alur kerja, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/troubleshooting-states-in-aws-step-functions.html) | AWS DevOps | 

## Pemecahan masalah
<a name="troubleshooting-states-in-aws-step-functions-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| 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 [AmazonBedrockFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockFullAccess.html)di *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](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockFullAccess.html) Pengembang.AWS Lambda * | 

## Sumber daya terkait
<a name="troubleshooting-states-in-aws-step-functions-resources"></a>
+ [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html)
+ [Akses Amazon Bedrock API](https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api.html)
+ [Buat fungsi Lambda pertama Anda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html)
+ [Mengembangkan alur kerja dengan Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/developing-workflows.html#development-run-debug)
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) 