

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Programación de operaciones de la API de datos de Amazon Redshift con Amazon EventBridge
<a name="data-api-calling-event-bridge"></a>

Puede crear reglas que coincidan con los eventos seleccionados y que los dirijan a los destinos para realizar alguna acción. También puede utilizar reglas para realizar acciones en una programación predeterminada. Para más información, consulte la [Guía del usuario de Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/). 

Para programar operaciones de la API de datos con EventBridge, el rol de IAM asociado debe confiar en la entidad principal de CloudWatch Events (events.amazonaws.com). Este rol debería tener el equivalente a la política administrada `AmazonEventBridgeFullAccess` adjunta. Además, debería contar con los permisos de la política `AmazonRedshiftDataFullAccess` que administra la API de datos. Puede crear un rol de IAM con estos permisos en la consola de IAM. Al crear un rol en la consola de IAM, elija la entidad de confianza del servicio de AWS para CloudWatch Events. Especifique el rol de IAM en el valor JSON `RoleArn` del destino de EventBridge. Para obtener más información sobre cómo crear un rol de IAM, consulte [Creación de un rol para un servicio de AWS (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console) en la *Guía del usuario de IAM*.

La regla `name` que cree en Amazon EventBridge debe coincidir con el `StatementName` en los `RedshiftDataParameters`.

En los siguientes ejemplos, se muestran las variaciones de la creación de reglas de EventBridge con una o varias instrucciones SQL y con un clúster de Amazon Redshift o un grupo de trabajo de Amazon Redshift sin servidor como almacenamiento de datos.

## Llamada con una sola instrucción SQL y un clúster
<a name="data-api-calling-event-bridge-sql-cluster"></a>

En el siguiente ejemplo, se utiliza la AWS CLI a fin de crear una regla de EventBridge que se use para ejecutar una instrucción SQL en un clúster de Amazon Redshift.

```
aws events put-rule 
--name test-redshift-cluster-data 
--schedule-expression "rate(1 minute)"
```

A continuación, se crea un objetivo de EventBridge para que se ejecute en la programación especificada en la regla. 

```
aws events put-targets 
--cli-input-json file://data.json
```

El archivo data.json de entrada es así. La clave JSON `Sql` indica que hay una sola instrucción SQL. El valor JSON `Arn` contiene un identificador de clúster. El valor JSON `RoleArn` contiene el rol de IAM que se utiliza para ejecutar el código SQL, tal como se describió anteriormente. 

```
{
    "Rule": "test-redshift-cluster-data",
    "EventBusName": "default",
    "Targets": [
        {
            "Id": "2",
            "Arn": "arn:aws:redshift:us-east-1:123456789012:cluster:mycluster",
            "RoleArn": "arn:aws:iam::123456789012:role/Administrator",
            "RedshiftDataParameters": {
                "Database": "dev",
                "DbUser": "root",
                "Sql": "select 1;",
                "StatementName": "test-redshift-cluster-data",
                "WithEvent": true
            }
        }
    ]
}
```

## Llamada con una sola instrucción SQL y un grupo de trabajo
<a name="data-api-calling-event-bridge-sql-workgroup"></a>

En el siguiente ejemplo, se utiliza la AWS CLI a fin de crear una regla de EventBridge que se use para ejecutar una instrucción SQL en un grupo de trabajo de Amazon Redshift sin servidor.

```
aws events put-rule 
--name  test-redshift-serverless-workgroup-data 
--schedule-expression "rate(1 minute)"
```

A continuación, se crea un objetivo de EventBridge para que se ejecute en la programación especificada en la regla. 

```
aws events put-targets 
--cli-input-json file://data.json
```

El archivo data.json de entrada es así. La clave JSON `Sql` indica que hay una sola instrucción SQL. El valor JSON `Arn` contiene un nombre de grupo de trabajo. El valor JSON `RoleArn` contiene el rol de IAM que se utiliza para ejecutar el código SQL, tal como se describió anteriormente. 

```
{
    "Rule": "test-redshift-serverless-workgroup-data", 
    "EventBusName": "default", 
    "Targets": [ 
        {
            "Id": "2",
            "Arn": "arn:aws:redshift-serverless:us-east-1:123456789012:workgroup/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "RoleArn": "arn:aws:iam::123456789012:role/Administrator", 
            "RedshiftDataParameters": {
                "Database": "dev",
                "Sql": "select 1;",
                "StatementName": "test-redshift-serverless-workgroup-data", 
                "WithEvent": true 
            } 
        } 
    ] 
}
```

## Llamada con varias instrucciones SQL y un clúster
<a name="data-api-calling-event-bridge-sqls-cluster"></a>

En el siguiente ejemplo, se utiliza la AWS CLI a fin de crear una regla de EventBridge que se use para ejecutar varias instrucciones SQL en un clúster de Amazon Redshift.

```
aws events put-rule 
--name  test-redshift-cluster-data 
--schedule-expression "rate(1 minute)"
```

A continuación, se crea un objetivo de EventBridge para que se ejecute en la programación especificada en la regla. 

```
aws events put-targets 
--cli-input-json file://data.json
```

El archivo data.json de entrada es así. La clave JSON `Sqls` indica que hay varias instrucciones SQL. El valor JSON `Arn` contiene un identificador de clúster. El valor JSON `RoleArn` contiene el rol de IAM que se utiliza para ejecutar el código SQL, tal como se describió anteriormente. 

```
{
    "Rule": "test-redshift-cluster-data", 
    "EventBusName": "default", 
    "Targets": [ 
        {
            "Id": "2",
            "Arn": "arn:aws:redshift:us-east-1:123456789012:cluster:mycluster",
            "RoleArn": "arn:aws:iam::123456789012:role/Administrator", 
            "RedshiftDataParameters": {
                "Database": "dev",
                "Sqls": ["select 1;", "select 2;", "select 3;"],
                "StatementName": "test-redshift-cluster-data", 
                "WithEvent": true 
            } 
        } 
    ] 
}
```

## Llamada con varias instrucciones SQL y un grupo de trabajo
<a name="data-api-calling-event-bridge-sqls-workgroup"></a>

En el siguiente ejemplo, se utiliza la AWS CLI a fin de crear una regla de EventBridge que se use para ejecutar varias instrucciones SQL en un grupo de trabajo de Amazon Redshift sin servidor.

```
aws events put-rule 
--name  test-redshift-serverless-workgroup-data 
--schedule-expression "rate(1 minute)"
```

A continuación, se crea un objetivo de EventBridge para que se ejecute en la programación especificada en la regla. 

```
aws events put-targets 
--cli-input-json file://data.json
```

El archivo data.json de entrada es así. La clave JSON `Sqls` indica que hay varias instrucciones SQL. El valor JSON `Arn` contiene un nombre de grupo de trabajo. El valor JSON `RoleArn` contiene el rol de IAM que se utiliza para ejecutar el código SQL, tal como se describió anteriormente. 

```
{
    "Rule": "test-redshift-serverless-workgroup-data", 
    "EventBusName": "default", 
    "Targets": [ 
        {
            "Id": "2",
            "Arn": "arn:aws:redshift-serverless:us-east-1:123456789012:workgroup/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "RoleArn": "arn:aws:iam::123456789012:role/Administrator", 
            "RedshiftDataParameters": {
                "Database": "dev",
                "Sqls": ["select 1;", "select 2;", "select 3;"],
                "StatementName": "test-redshift-serverless-workgroup-data", 
                "WithEvent": true 
            } 
        } 
    ] 
}
```