

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Step Functions 調用和自訂 Amazon Bedrock 模型
<a name="connect-bedrock"></a>

您可以將 Step Functions 與 Amazon Bedrock 整合，以叫用指定的 Amazon Bedrock 模型，並建立微調任務來自訂模型。此頁面列出最佳化的 Amazon Bedrock APIs並提供範例`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 服務整合 APIs
<a name="connect-bedrock-custom-apis"></a>

若要AWS Step Functions與 整合Amazon Bedrock，您可以使用下列 APIs。這些 APIs類似於對應的 Amazon Bedrock APIs，但 *InvokeModel* 有額外的請求欄位。

**Amazon Bedrock API - [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html)**  
建立微調任務以自訂基礎模型。您可以使用請求*回應*的 **CreateModelCustomizationJob** 叫用 Step Functions 整合 API，或叫用執行任務的 **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`。

  當您`Body`使用Amazon Bedrock最佳化整合指定 時，您可以指定高達 256 KiB 的承載。如果您的承載超過 256 KiB，我們建議您使用 `Input`。
+ `Input` – 指定要從中擷取輸入資料的來源。此選用欄位專用於Amazon Bedrock最佳化與 的整合Step Functions。在此欄位中，您可以指定 `S3Uri`。

  您可以在參數 或 `Body`中指定 `Input`，但不能同時指定兩者。

  當您在不指定 `Input`的情況下指定 時`ContentType`，輸入資料來源的內容類型會成為 的值`ContentType`。
+ `Output` – 指定寫入 API 回應的目的地。此選用欄位專用於Amazon Bedrock最佳化與 的整合Step Functions。在此欄位中，您可以指定 `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政策時，不要在政策中包含萬用字元。作為安全最佳實務，您應該盡可能縮小政策的範圍。只有在執行時間期間不知道特定輸入參數時，才應該使用動態政策。

下列範例範本顯示 如何根據狀態機器定義中的資源AWS Step Functions產生 IAM 政策。如需詳細資訊，請參閱[Step Functions 如何為整合服務產生 IAM 政策](service-integration-iam-templates.md)及[探索 Step Functions 中的服務整合模式](connect-to-resource.md)。

### IAM Amazon Bedrock整合的政策範例
<a name="bedrock-iam-policy-eg"></a>

下一節說明根據您用於特定基礎或佈建模型的 Amazon Bedrock API 所需的IAM許可。本節也包含授予完整存取權的政策範例。

請以資源特定資訊取代*斜體*文字。
+ [IAM 使用 InvokeModel 存取特定基礎模型的政策範例](#bedrock-policy-invoke-foundation-model)
+ [IAM 使用 InvokeModel 存取特定佈建模型的政策範例](#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)
+ [IAM 使用 CreateModelCustomizationJob.sync 存取特定基礎模型的政策範例](#bedrock-policy-createmodel-sync-foundation-model)
+ [IAM 使用 CreateModelCustomizationJob.sync 存取自訂模型的政策範例](#bedrock-policy-createmodel-sync-custom-model)
+ [使用 CreateModelCustomizationJob.sync 的完整存取IAM政策範例](#bedrock-policy-createmodel-sync-full-access)

#### IAM 使用 InvokeModel 存取特定基礎模型的政策範例
<a name="bedrock-policy-invoke-foundation-model"></a>

以下是狀態機器IAM的政策範例，該機器`amazon.titan-text-express-v1`使用 [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html) API 動作存取名為 的特定基礎模型。

****  

```
{
    "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"
            ]
        }
    ]
}
```

#### IAM 使用 InvokeModel 存取特定佈建模型的政策範例
<a name="bedrock-policy-invoke-provisioned-model"></a>

以下是狀態機器IAM的政策範例，該機器`c2oi931ulksx`會使用 [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html) API 動作存取名為 的特定佈建模型。

****  

```
{
  "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>

以下是狀態機器IAM的政策範例，在您使用 [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html) API 動作時提供完整存取權。

****  

```
{
    "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>

以下是狀態機器IAM的政策範例，在您使用 [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html) API 動作時提供完整存取權。

****  

```
{
    "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"            
            ]
        }
    ] 
}
```

#### IAM 使用 CreateModelCustomizationJob.sync 存取特定基礎模型的政策範例
<a name="bedrock-policy-createmodel-sync-foundation-model"></a>

以下是狀態機器`amazon.titan-text-express-v1`使用 [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/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"            
            ]
        }
    ]
}
```

#### IAM 使用 CreateModelCustomizationJob.sync 存取自訂模型的政策範例
<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>

以下是狀態機器IAM的政策範例，在您使用 [CreateModelCustomizationJob.sync](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html) API 動作時提供完整存取權。

****  

```
{
    "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"            
            ]
        }
    ]
}
```