

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

# Step Functions を使用した Amazon Bedrock モデルの呼び出しとカスタマイズ
<a name="connect-bedrock"></a>

Step Functions を Amazon Bedrock と統合すると、指定された Amazon Bedrock モデルを呼び出し、モデルをカスタマイズするためのファインチューニングジョブを作成できます。このページでは、最適化された Amazon Bedrock API のリストと、モデル呼び出しの結果を抽出する `Task` ステートの例を示しています。

Step Functions での AWSサービスとの統合については、[ サービスとの統合](integrate-services.md)「」および「」を参照してください[Step Functions でサービス API にパラメータを渡す](connect-parameters.md)。

**ヒント**  
Amazon Bedrock と統合するワークフローの例をデプロイするには、「[Amazon Bedrock で AI プロンプトチェイニングを実行する](sample-bedrock-prompt-chaining.md)」を参照してください。

## Amazon Bedrock サービス統合 API
<a name="connect-bedrock-custom-apis"></a>

AWS Step Functions を Amazon Bedrock と統合するために、以下の API を使用できます。これらの API は対応する Amazon Bedrock API に似ていますが、*InvokeModel* には追加のリクエストフィールドがあります。

**Amazon Bedrock API - [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html)**  
ベースモデルをカスタマイズするためのファインチューニングジョブを作成します。Step Functions 統合 API を **CreateModelCustomizationJob** *(Request Response 向け)* または **CreateModelCustomizationJob.sync** *(ジョブの実行 (.sync) 向け)* 統合パターンで呼び出すことができます。API コールのフィールドには違いはありません。

**Amazon Bedrock API - [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)**  
リクエスト本文に指定された入力を使って推論を実行するために、指定された Amazon Bedrock モデルを呼び出します。テキストモデル、画像モデル、埋め込みモデルの推論を実行するために、`InvokeModel` を使用します。

*InvokeModel* 向けの Amazon Bedrock サービス統合 API のリクエスト本文には、以下の追加パラメータが含まれます。
+ `Body` — コンテンツタイプのリクエストヘッダーで指定された形式で入力データを指定します。`Body` には、ターゲットモデル固有のパラメータが含まれます。

  `InvokeModel` API を使用する場合は、`Body` パラメータを指定する必要があります。Step Functions では、`Body` で入力した内容は検証されません。

  Amazon Bedrock 最適化統合を使用して `Body` を指定する場合、最大 256 KiB のペイロードを指定できます。ペイロードが 256 KiB を超える場合は、`Input` を使用することをお勧めします。
+ `Input` — 入力データを取得するソースを指定します。このオプションフィールドは、Step Functions に最適化された Amazon Bedrock 統合に固有のものです。このフィールドでは、`S3Uri` を指定できます。

  パラメータ または `Input` に `Body` を指定できますが、両方に指定することはできません。

  `ContentType` を指定せずに `Input` を指定すると、入力データソースのコンテンツタイプが `ContentType` の値になります。
+ `Output` — API レスポンスの記述先を指定します。このオプションフィールドは、Step Functions に最適化された Amazon Bedrock 統合に固有のものです。このフィールドでは、`S3Uri` を指定できます。

  このフィールドを指定すると、API レスポンス本文は元の出力の Amazon S3 ロケーションへの参照に置き換えられます。

次の例は、Amazon Bedrock 統合用の InvokeModel API の構文を示しています。

```
{
    "ModelId": String,  // required
    "Accept": String,  // default: application/json
    "ContentType": String,  // default: application/json
    "Input": {  // not from Bedrock API
        "S3Uri": String
    },  
    "Output": {  // not from Bedrock API
        "S3Uri": String
    } 
}
```

## Amazon Bedrock 統合のタスクステート定義
<a name="connect-bedrock-task-definition"></a>

以下のタスクステート定義は、ステートマシンで Amazon Bedrock とどのように統合できるかを示しています。この例は、パス (`result_one`) で指定されたモデル呼び出しの結果をすべて抽出するタスクステートを示しています。これは[基盤モデルの推論パラメータ](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html)に基づいています。この例では、Cohere Command 大規模言語モデル (LLM) を使用しています。

```
{
  "Type": "Task",
  "Resource": "arn:aws:states:::bedrock:invokeModel",
  "Arguments": {
    "ModelId": "cohere.command-text-v14",
    "Body": {
      "prompt": "{% states.input.prompt_one %}",
      "max_tokens": 20
    },
    "ContentType": "application/json",
    "Accept": "*/*"
  },
  "End": true
}
```

## IAM policies for calling Amazon Bedrock
<a name="bedrock-iam"></a>

コンソールを使用してステートマシンを作成すると、必要な最小特権を持つステートマシンの実行ロールがStep Functions によって自動的に作成されます。これらの自動生成されたIAMロールは、ステートマシンを作成する AWS リージョンで有効です。

IAM ポリシーを作成するときは、ポリシーにワイルドカードを含めないことをお勧めします。セキュリティのベストプラクティスとして、ポリシーの範囲をできるだけ絞り込む必要があります。動的ポリシーは、ランタイム中に特定の入力パラメータが不明な場合にのみ使用してください。

次のサンプルテンプレートは、 がステートマシン定義のリソースに基づいて IAM ポリシーAWS Step Functionsを生成する方法を示しています。詳細については、「[Step Functions が統合サービスの IAM ポリシーを生成する方法](service-integration-iam-templates.md)」および「[Step Functions でサービス統合パターンを検出する](connect-to-resource.md)」を参照してください。

### Amazon Bedrock 統合の IAM ポリシー例
<a name="bedrock-iam-policy-eg"></a>

次のセクションでは、特定の基盤モデルまたはプロビジョニングされたモデルに使用する Amazon Bedrock API に基づいて必要な IAM アクセス許可について説明します。このセクションには、フルアクセスを許可するポリシーの例も含まれています。

*イタリック体*のテキストを、リソース固有の情報に必ず置き換えてください。
+ [InvokeModel を使用して特定の基盤モデルにアクセスする IAM ポリシーの例](#bedrock-policy-invoke-foundation-model)
+ [InvokeModel を使用して特定のプロビジョニング済みモデルにアクセスする IAM ポリシーの例](#bedrock-policy-invoke-provisioned-model)
+ [InvokeModel を使用するフルアクセス IAM ポリシーの例](#bedrock-policy-invokemodel-full-access)
+ [特定の基盤モデルに基本モデルとしてアクセスする IAM ポリシーの例](#bedrock-policy-foundation-model)
+ [特定のカスタムモデルに基本モデルとしてアクセスする IAM ポリシーの例](#bedrock-policy-custom-model)
+ [CreateModelCustomizationJob.sync を使用するフルアクセス IAM ポリシーの例](#bedrock-policy-createmodel-full-access)
+ [CreateModelCustomizationJob.sync を使用して特定の基盤モデルにアクセスする IAM ポリシーの例](#bedrock-policy-createmodel-sync-foundation-model)
+ [CreateModelCustomizationJob.sync を使用してカスタムモデルにアクセスする IAM ポリシーの例](#bedrock-policy-createmodel-sync-custom-model)
+ [CreateModelCustomizationJob.sync を使用するフルアクセス IAM ポリシーの例](#bedrock-policy-createmodel-sync-full-access)

#### InvokeModel を使用して特定の基盤モデルにアクセスする IAM ポリシーの例
<a name="bedrock-policy-invoke-foundation-model"></a>

以下は、[InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html) API アクションを使用して指定された特定の基盤モデル `amazon.titan-text-express-v1` にアクセスするステートマシンの IAM ポリシーの例です。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Sid": "InvokeModel1",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-text-express-v1"
            ]
        }
    ]
}
```

#### InvokeModel を使用して特定のプロビジョニング済みモデルにアクセスする IAM ポリシーの例
<a name="bedrock-policy-invoke-provisioned-model"></a>

以下は、[InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html) API アクションを使用して指定された特定のプロビジョニング済みモデル `c2oi931ulksx` にアクセスするステートマシンの IAM ポリシーの例です。

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Sid": "InvokeModel1",
      "Action": [
        "bedrock:InvokeModel"
      ],
      "Resource": [
        "arn:aws:bedrock:us-east-1:123456789012:provisioned-model/c2oi931ulksx"
      ]
    }
  ]
}
```

#### InvokeModel を使用するフルアクセス IAM ポリシーの例
<a name="bedrock-policy-invokemodel-full-access"></a>

以下は、[InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html) API アクションを使用するときにフルアクセスを提供するステートマシンの IAM ポリシーの例です。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Sid": "InvokeModel1",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1::foundation-model/*",
                "arn:aws:bedrock:us-east-1:123456789012:provisioned-model/*"
            ]
        }
    ]
}
```

#### 特定の基盤モデルに基本モデルとしてアクセスする IAM ポリシーの例
<a name="bedrock-policy-foundation-model"></a>

以下は、[CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html) API アクションを使用して、ベースモデルとして指定された特定の基盤モデル `amazon.titan-text-express-v1` にステートマシンがアクセスするための IAM ポリシーの例です。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Sid": "CreateModelCustomizationJob1",
            "Action": [
                "bedrock:CreateModelCustomizationJob"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-text-express-v1",
                "arn:aws:bedrock:us-east-1:123456789012:custom-model/*",
                "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*"
            ]
        },
        {
            "Effect": "Allow",
            "Sid": "CreateModelCustomizationJob2",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:role/myRole"            
            ]
        }
    ] 
}
```

#### 特定のカスタムモデルに基本モデルとしてアクセスする IAM ポリシーの例
<a name="bedrock-policy-custom-model"></a>

以下は、[CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html) API アクションを使用して特定のカスタムモデルに基本モデルとしてアクセスするステートマシンの IAM ポリシーの例です。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Sid": "CreateModelCustomizationJob1",
            "Action": [
                "bedrock:CreateModelCustomizationJob"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:custom-model/*",
                "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*"
            ]
        },
        {
            "Effect": "Allow",
            "Sid": "CreateModelCustomizationJob2",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:role/myRoleName"            
            ]
        }
    ] 
}
```

#### CreateModelCustomizationJob.sync を使用するフルアクセス IAM ポリシーの例
<a name="bedrock-policy-createmodel-full-access"></a>

[CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html) API アクションを使用するときに、フルアクセスを提供するステートマシンの IAM ポリシー例を以下に示します。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Sid": "CreateModelCustomizationJob1",
            "Action": [
                "bedrock:CreateModelCustomizationJob"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1::foundation-model/*",
                "arn:aws:bedrock:us-east-1:123456789012:custom-model/*",
                "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*"
            ]
        },
        {
            "Effect": "Allow",
            "Sid": "CreateModelCustomizationJob2",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:role/myRole"            
            ]
        }
    ] 
}
```

#### CreateModelCustomizationJob.sync を使用して特定の基盤モデルにアクセスする IAM ポリシーの例
<a name="bedrock-policy-createmodel-sync-foundation-model"></a>

以下は、[CreateModelCustomizationJob.sync](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html) API アクションを使用して指定された特定の基盤モデル `amazon.titan-text-express-v1` にアクセスするステートマシン用の IAM ポリシーの例です。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Sid": "CreateModelCustomizationJob1",
            "Action": [
                "bedrock:CreateModelCustomizationJob"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-text-express-v1",
                "arn:aws:bedrock:us-east-1:123456789012:custom-model/*",
                "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*"
            ]
        },
        {
            "Effect": "Allow",
            "Sid": "CreateModelCustomizationJob2",
            "Action": [
                "bedrock:GetModelCustomizationJob",
                "bedrock:StopModelCustomizationJob"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*"
            ]
        },
        {
            "Effect": "Allow",
            "Sid": "CreateModelCustomizationJob3",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:role/myRole"            
            ]
        }
    ]
}
```

#### CreateModelCustomizationJob.sync を使用してカスタムモデルにアクセスする IAM ポリシーの例
<a name="bedrock-policy-createmodel-sync-custom-model"></a>

以下は、[CreateModelCustomizationJob.sync](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html) API アクションを使用してカスタムモデルにアクセスするステートマシン用の IAM ポリシーの例です。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Sid": "CreateModelCustomizationJob1",
            "Action": [
                "bedrock:CreateModelCustomizationJob"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:custom-model/*",
                "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*"
            ]
        },
        {
            "Effect": "Allow",
            "Sid": "CreateModelCustomizationJob2",
            "Action": [
                "bedrock:GetModelCustomizationJob",
                "bedrock:StopModelCustomizationJob"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*"
            ]
        },
        {
            "Effect": "Allow",
            "Sid": "CreateModelCustomizationJob3",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:role/myRole"            
            ]
        }
    ]
}
```

#### CreateModelCustomizationJob.sync を使用するフルアクセス IAM ポリシーの例
<a name="bedrock-policy-createmodel-sync-full-access"></a>

[CreateModelCustomizationJob.sync](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html) API アクションを使用するときに、フルアクセスを提供するステートマシンの IAM ポリシー例を以下に示します。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Sid": "CreateModelCustomizationJob1",
            "Action": [
                "bedrock:CreateModelCustomizationJob"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1::foundation-model/*",
                "arn:aws:bedrock:us-east-1:123456789012:custom-model/*",
                "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*"
            ]
        },
        {
            "Effect": "Allow",
            "Sid": "CreateModelCustomizationJob2",
            "Action": [
                "bedrock:GetModelCustomizationJob",
                "bedrock:StopModelCustomizationJob"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*"
            ]
        },
        {
            "Effect": "Allow",
            "Sid": "CreateModelCustomizationJob3",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:role/myRole"            
            ]
        }
    ]
}
```