

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Bedrock AWS Step Functions を使用して の状態をトラブルシューティングする
<a name="troubleshooting-states-in-aws-step-functions"></a>

*Aniket Kurzadkar、Sangam Kushwaha (Amazon Web Services)*

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

AWS Step Functions エラー処理機能は、[ワークフロー](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-statemachines.html)の状態中に発生するエラーを確認するのに役立ちますが、それでもエラーの根本原因を見つけてデバッグするのは難しい場合があります。このパターンでは、この課題に対処し、Amazon Bedrock が Step Functions でステートの実行中に発生するエラーの解決にどのように役立つかを示します。

Step Functions はワークフローオーケストレーションを実現するため、開発者はプロセスを簡単に自動化できます。また、Step Functions にはエラー処理機能も用意されており、次のような利点があります。
+ 開発者は、問題が発生しても完全には失敗しない、より回復力の高いアプリケーションを作成できます。
+ ワークフローには、さまざまなタイプのエラーを異なる方法で処理する条件付きロジックを含めることができます。
+ システムは、エクスポネンシャルバックオフを使用して、失敗した操作を自動的に再試行できます。
+ エラーシナリオに対して代替の実行パスを定義できるため、ワークフローを適応させて処理を続行できます。

Step Functions ワークフローでエラーが発生した場合、このパターンでは、Step Functions でサポートされている Claude 3 などの基盤モデル (FM) にエラーメッセージとコンテキストを送信する方法を示します。FM はエラーを分析し、分類し、潜在的な修復手順を提案できます。

## 前提条件と制限
<a name="troubleshooting-states-in-aws-step-functions-prereqs"></a>

**前提条件**
+ アクティブな AWS アカウント
+ [AWS Step Functions とワークフロー](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-statemachines.html)の基本的な理解
+ Amazon Bedrock [API 接続](https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api.html)

**制限事項**
+ このパターンのアプローチは、さまざまな AWS のサービスに使用できます。ただし、結果は、Amazon Bedrock によって評価 AWS Lambda される によって作成されたプロンプトによって異なる場合があります。
+ 一部の AWS のサービス は では使用できません AWS リージョン。利用可能なリージョンについては「[AWS サービス (リージョン別)](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)」を参照してください。特定のエンドポイントについて確認するには、「[サービスエンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html)」を参照し、サービスのリンクを選択してください。

## アーキテクチャ
<a name="troubleshooting-states-in-aws-step-functions-architecture"></a>

次の図表は、このパターンのアプリケーションのワークフローとアーキテクチャコンポーネントを示しています。

![\[Step Functions、Amazon Bedrock、Amazon SNS を使用したエラー処理と通知のワークフロー。\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/78f86c74-c9de-4562-adcc-105b87a77a54/images/d8eda499-ea1d-45e5-8a36-e04a44ad5c4b.png)


この図は、Step Functions ステートマシンでのエラー処理と通知の自動ワークフローを示しています。

1. 開発者がステートマシンの実行を開始します。

1. Step Functions ステートマシンが状態の処理を開始します。この場合、次の 2 通りの結果が想定されます。
   + (a) すべてのステートが正常に実行されると、ワークフローは Amazon SNS に直接進み、E メールで成功通知が送信されます。
   + (b) いずれかのステートが失敗すると、ワークフローはエラー処理の Lambda 関数に移動します。

1. エラーが発生した場合、次の処理が行われます。
   + (a) Lambda 関数 (エラーハンドラー) がトリガーされます。Lambda 関数は、Step Functions ステートマシンから渡されたイベントデータからエラーメッセージを抽出します。次に、Lambda 関数はこのエラーメッセージに基づいてプロンプトを準備し、Amazon Bedrock に送信します。プロンプトは、発生した特定のエラーに関連する解決策と提案をリクエストします。
   + (b) 生成 AI モデルをホストする Amazon Bedrock が、入力プロンプトを処理します (このパターンでは、Amazon Bedrock がサポートする多くの FM の 1 つである Anthropic Claude 3 基盤モデル (FM) を使用します)。AI モデルがエラーコンテキストを分析します。その後、モデルは、エラー発生の原因説明、可能性のある解決策、今後同じ間違いを起こさないようにするための提案を含むレスポンスを生成します。

     Amazon Bedrock が、AI によって生成されたレスポンスを Lambda 関数に返します。Lambda 関数がレスポンスを処理し、フォーマットや主要な情報の抽出を行います。その後、Lambda 関数はステートマシンの出力にレスポンスを送信します。

1. エラー処理または実行が正常に完了すると、ワークフローは Amazon SNS をトリガーして E メールで通知を送信し、終了します。

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

**AWS のサービス**
+ [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html) は、主要な AI スタートアップや Amazon が提供する高パフォーマンスな基盤モデル (FM) を、統合 API を通じて利用できるようにするフルマネージド型サービスです。
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。
+ 「[Amazon Simple Notiﬁcation Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)」は、ウェブサーバーやメールアドレスなど、パブリッシャーとクライアント間のメッセージの交換を調整および管理するのに役立ちます。
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) は、 AWS Lambda 関数やその他の を組み合わせてビジネスクリティカルなアプリケーション AWS のサービス を構築するのに役立つサーバーレスオーケストレーションサービスです。

## ベストプラクティス
<a name="troubleshooting-states-in-aws-step-functions-best-practices"></a>
+ Amazon Bedrock はトレーニングされたデータから学習する生成 AI モデルであり、そのデータを使用してコンテキストのトレーニングと生成も行います。ベストプラクティスとして、データ漏洩の問題につながる恐れのある個人情報は隠します。
+ 生成 AI は有益なインサイトを提供できますが、特に本番環境において、重大なエラー処理の決定には人間による監視が必要です。

## エピック
<a name="troubleshooting-states-in-aws-step-functions-epics"></a>

### ワークフロー用のステートマシンを作成する
<a name="create-a-state-machine-for-your-workflow"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
|  ステートマシンの作成。 | ワークフローに適したステートマシンを作成するには、次の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/troubleshooting-states-in-aws-step-functions.html) | AWS DevOps | 

### Lambda 関数を作成する
<a name="create-a-lam-function"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| Lambda 関数を作成する。 | Lambda 関数をインポートするには、次の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/troubleshooting-states-in-aws-step-functions.html) | AWS DevOps | 
| Lambda コードで必要なロジックを設定します。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/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/ja_jp/prescriptive-guidance/latest/patterns/troubleshooting-states-in-aws-step-functions.html) | AWS DevOps | 

### Step Functions を Lambda と統合する
<a name="integrate-sfn-with-lam"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| Step Functions でエラーを処理するように Lambda を設定します。 | ワークフローを中断せずにエラーを処理するように Step Functions を設定するには、次の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/troubleshooting-states-in-aws-step-functions.html) | AWS DevOps | 

## トラブルシューティング
<a name="troubleshooting-states-in-aws-step-functions-troubleshooting"></a>


| 問題 | ソリューション | 
| --- | --- | 
| Lambda が Amazon Bedrock API にアクセスできない (実行する権限がない) | このエラーは、Lambda ロールに Amazon Bedrock API へのアクセス許可がない場合に発生します。この問題を解決するには、Lambda ロールに `AmazonBedrockFullAccess` ポリシーを追加します。詳細については、*AWS マネージドポリシーリファレンスガイド*の「[AmazonBedrockFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockFullAccess.html)」を参照してください。 | 
| Lambda タイムアウトエラー | プロンプトによっては、レスポンスを生成して返すまでに 30 秒以上かかる場合があります。この問題を解決するには、設定時間を長くします。詳細については、*AWS Lambda デベロッパーガイド*の「[Lambda 関数のタイムアウトを設定する](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockFullAccess.html)」を参照してください。 | 

## 関連リソース
<a name="troubleshooting-states-in-aws-step-functions-resources"></a>
+ [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html)
+ [Amazon Bedrock API access](https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api.html)
+ [最初の Lambda 関数を作成する](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html)
+ [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) 