

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Invocación y personalización de los modelos de Amazon Bedrock con Step Functions
<a name="connect-bedrock"></a>

Puede integrar Step Functions con Amazon Bedrock para invocar un modelo de Amazon Bedrock específico y crear un trabajo de ajuste para personalizar un modelo. En esta página se muestra el Amazon Bedrock optimizado APIs y se proporciona un `Task` estado de ejemplo para extraer el resultado de la invocación de un modelo.

Para obtener más información sobre la integración con AWS los servicios de Step Functions, consulte [Integración de los servicios de ](integrate-services.md) y[Cómo pasar parámetros a una API de servicio en Step Functions](connect-parameters.md).

**sugerencia**  
Para implementar un ejemplo de flujo de trabajo que se integre con Amazon Bedrock, consulte[Realizar encadenamiento de peticiones de IA con Amazon Bedrock](sample-bedrock-prompt-chaining.md).

## Amazon Bedrockintegración de servicios APIs
<a name="connect-bedrock-custom-apis"></a>

Para realizar AWS Step Functions la integraciónAmazon Bedrock, puede utilizar lo siguiente APIs. APIs Son similares a los correspondientes Amazon Bedrock APIs, excepto que *InvokeModel*tienen campos de solicitud adicionales.

**API de Amazon Bedrock - [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html)**  
Crea un trabajo de microajuste para personalizar un modelo base. Puedes invocar la API de integración de Step Functions **CreateModelCustomizationJob**para los patrones de integración *Request Response* o **CreateModelCustomizationJob.sync** para *Run a Job (.sync)*. No hay diferencias en los campos de las llamadas a la API.

**API de Amazon Bedrock - [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)**  
Invoca el modelo de Amazon Bedrock especificado para ejecutar la inferencia utilizando la entrada proporcionada en el cuerpo de la solicitud `InvokeModel` sirve para ejecutar la inferencia para modelos de texto, modelos de imagen y modelos de incrustación.

El cuerpo de la solicitud de la API de integración de Amazon Bedrock servicios *InvokeModel*incluye los siguientes parámetros adicionales.
+ `Body`: especifica los datos de entrada en el formato especificado en el encabezado de la solicitud del tipo de contenido. `Body` contiene parámetros específicos del modelo de destino.

  Si utiliza la API `InvokeModel`, debe especificar el parámetro `Body`. Step Functions no valida la entrada que proporcionada en `Body`.

  Al especificar `Body` utilizando la integración optimizada de Amazon Bedrock, puede especificar una carga útil de hasta 256 KiB. Si su carga útil supera 256 KiB, le recomendamos que utilice `Input`.
+ `Input`: especifica el origen del que se van a recuperar los datos de entrada. Este campo opcional es específico de una integración optimizada de Amazon Bedrock con Step Functions. En este campo, puede especificar un `S3Uri`.

  Puede especificar `Body` en los Parámetros o `Input`, pero no ambos.

  Si especifica `Input` sin especificar `ContentType`, el tipo de contenido del origen de datos de entrada pasa a ser el valor de `ContentType`.
+ `Output`: especifica el destino en el que se escribe la respuesta de la API. Este campo opcional es específico de una integración optimizada de Amazon Bedrock con Step Functions. En este campo, puede especificar un `S3Uri`.

  Si especifica este campo, el cuerpo de la respuesta de la API se sustituye por una referencia a la ubicación de Amazon S3 de la salida original.

En el siguiente ejemplo, se muestra la sintaxis de la InvokeModel API para Amazon Bedrock la integración.

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

## Definición del estado Task para la integración de Amazon Bedrock
<a name="connect-bedrock-task-definition"></a>

La siguiente definición del estado Task muestra cómo puede integrar Amazon Bedrock en sus máquinas de estado. Este ejemplo muestra un estado Task que extrae el resultado completo de la invocación del modelo especificada en la ruta, `result_one`. Se basa en los [parámetros de inferencia de los modelos fundacionales](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). En este ejemplo se utiliza el modelo de lenguaje grande (LLM) de Cohere Command.

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

Al crear una máquina de estado mediante la consola, Step Functions crea automáticamente un rol de ejecución para la máquina de estado con los privilegios mínimos necesarios. Estas IAM funciones generadas automáticamente son válidas para la máquina Región de AWS en la que se crea la máquina de estados.

Le recomendamos que, al crear políticas de IAM, no incluya caracteres comodín en las políticas. Como práctica recomendada de seguridad, debe reducir el alcance de las políticas en la medida de lo posible. Debe usar políticas dinámicas solo cuando no se conozcan ciertos parámetros de entrada durante el tiempo de ejecución.

Las siguientes plantillas de ejemplo muestran cómo se AWS Step Functions generan las políticas de IAM en función de los recursos de la definición de su máquina de estados. Para obtener más información, consulte [Generación de políticas de IAM para servicios integrados por Steps Functions](service-integration-iam-templates.md) y [Descubrimiento de los patrones de integración de servicios en Step Functions](connect-to-resource.md).

### Ejemplos de políticas de IAM para la integración de Amazon Bedrock
<a name="bedrock-iam-policy-eg"></a>

En la siguiente sección se describen los permisos de IAM que necesita según la API de Amazon Bedrock que utilice para un modelo fundacional o aprovisionado específico. En esta sección también se incluyen ejemplos de políticas que otorgan acceso total.

Recuerde sustituir el *italicized* texto por la información específica del recurso.
+ [IAMejemplo de política para acceder a un modelo de base específico utilizando InvokeModel](#bedrock-policy-invoke-foundation-model)
+ [IAMejemplo de política para acceder a un modelo aprovisionado específico mediante InvokeModel](#bedrock-policy-invoke-provisioned-model)
+ [Ejemplo de IAM política de acceso completo a utilizar InvokeModel](#bedrock-policy-invokemodel-full-access)
+ [Ejemplo de política de IAM para acceder a un modelo fundacional específico como modelo base](#bedrock-policy-foundation-model)
+ [Ejemplo de política de IAM para acceder a un modelo personalizado específico como modelo base](#bedrock-policy-custom-model)
+ [Ejemplo de IAM política de acceso completo para usar CreateModelCustomizationJob .sync](#bedrock-policy-createmodel-full-access)
+ [IAMejemplo de política para acceder a un modelo básico específico mediante CreateModelCustomizationJob .sync](#bedrock-policy-createmodel-sync-foundation-model)
+ [IAMejemplo de política para acceder a un modelo personalizado mediante .sync CreateModelCustomizationJob](#bedrock-policy-createmodel-sync-custom-model)
+ [Ejemplo de IAM política de acceso completo para usar .sync CreateModelCustomizationJob](#bedrock-policy-createmodel-sync-full-access)

#### IAMejemplo de política para acceder a un modelo de base específico utilizando InvokeModel
<a name="bedrock-policy-invoke-foundation-model"></a>

El siguiente es un ejemplo IAM de política para una máquina de estados que accede a un modelo básico específico denominado `amazon.titan-text-express-v1` mediante la acción de la [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"
            ]
        }
    ]
}
```

#### IAMejemplo de política para acceder a un modelo aprovisionado específico mediante InvokeModel
<a name="bedrock-policy-invoke-provisioned-model"></a>

El siguiente es un ejemplo IAM de política para una máquina de estados que accede a un modelo aprovisionado específico denominado `c2oi931ulksx` mediante la acción de la [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"
      ]
    }
  ]
}
```

#### Ejemplo de IAM política de acceso completo a utilizar InvokeModel
<a name="bedrock-policy-invokemodel-full-access"></a>

El siguiente es un ejemplo IAM de política para una máquina de estados que proporciona acceso total cuando se utiliza la acción de la [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/*"
            ]
        }
    ]
}
```

#### Ejemplo de política de IAM para acceder a un modelo fundacional específico como modelo base
<a name="bedrock-policy-foundation-model"></a>

El siguiente es un ejemplo de IAM política para que una máquina de estados acceda a un modelo básico específico `amazon.titan-text-express-v1` denominado modelo base mediante la acción de la [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/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"            
            ]
        }
    ] 
}
```

#### Ejemplo de política de IAM para acceder a un modelo personalizado específico como modelo base
<a name="bedrock-policy-custom-model"></a>

El siguiente es un ejemplo IAM de política para que una máquina de estados acceda a un modelo personalizado específico como modelo base mediante la acción de la [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: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"            
            ]
        }
    ] 
}
```

#### Ejemplo de IAM política de acceso completo para usar CreateModelCustomizationJob .sync
<a name="bedrock-policy-createmodel-full-access"></a>

El siguiente es un ejemplo IAM de política para una máquina de estados que proporciona acceso total cuando se utiliza la acción de la [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"            
            ]
        }
    ] 
}
```

#### IAMejemplo de política para acceder a un modelo básico específico mediante CreateModelCustomizationJob .sync
<a name="bedrock-policy-createmodel-sync-foundation-model"></a>

El siguiente es un ejemplo IAM de política para que una máquina de estados acceda a un modelo básico específico denominado `amazon.titan-text-express-v1` mediante la acción de la API [CreateModelCustomizationJob.sync.](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html)

****  

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

#### IAMejemplo de política para acceder a un modelo personalizado mediante .sync CreateModelCustomizationJob
<a name="bedrock-policy-createmodel-sync-custom-model"></a>

El siguiente es un ejemplo IAM de política para que una máquina de estados acceda a un modelo personalizado mediante la acción de la API [CreateModelCustomizationJob.sync.](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html)

****  

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

#### Ejemplo de IAM política de acceso completo para usar .sync CreateModelCustomizationJob
<a name="bedrock-policy-createmodel-sync-full-access"></a>

El siguiente es un ejemplo IAM de política para una máquina de estados que proporciona acceso total cuando se utiliza la acción de la API [CreateModelCustomizationJob.sync.](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html)

****  

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