

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Programar operações da API de dados do Amazon Redshift com o Amazon EventBridge
<a name="data-api-calling-event-bridge"></a>

Você pode criar regras que estabeleçam correspondência com eventos selecionados e os encaminhem aos destinos para ação. Você também pode usar as regras para executar uma ação em uma programação predeterminada. Para saber mais, consulte o [Guia do Usuário do Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/). 

Para programar operações de API de dados com o EventBridge, a função do IAM associada deve confiar na entidade principal para o CloudWatch Events (events.amazonaws.com). Essa função deve ter o equivalente à política gerenciada `AmazonEventBridgeFullAccess` anexada. Também deve ter política de permissões `AmazonRedshiftDataFullAccess` que são gerenciadas pela API de dados. Você pode criar uma função do IAM com essas permissões no console do IAM. Ao criar uma função no console do IAM, selecione a entidade confiável do para CloudWatch Events do serviço da AWS. Especifique o perfil do IAM no valor `RoleArn` JSON no destino do EventBridge. Para obter mais informações sobre como criar uma função do IAM, consulte [Criando uma função para um serviço da AWS (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console) no *Guia do usuário do IAM*.

O `name` da regra que você cria no Amazon EventBridge deve corresponder ao `StatementName` nos `RedshiftDataParameters`.

Os exemplos a seguir mostram variações da criação de regras do EventBridge com uma ou várias instruções SQL e com um cluster do Amazon Redshift ou um grupo de trabalho do Amazon Redshift sem servidor como data warehouse.

## Chamadas com cluster e uma única instrução SQL
<a name="data-api-calling-event-bridge-sql-cluster"></a>

O exemplo a seguir usa a AWS CLI para criar uma regra do EventBridge que é usada para executar uma instrução SQL em um cluster do Amazon Redshift.

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

Em seguida, um destino EventBridge é criado para ser executado na programação especificada na regra. 

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

O arquivo data.json de entrada é o seguinte. A chave JSON `Sql` indica que há uma única instrução SQL. O valor JSON `Arn` contém um identificador de cluster. O valor `RoleArn` JSON contém o perfil do IAM usado para executar o SQL conforme descrito 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
            }
        }
    ]
}
```

## Chamadas com grupo de trabalho e uma única instrução SQL
<a name="data-api-calling-event-bridge-sql-workgroup"></a>

O exemplo a seguir usa a AWS CLI para criar uma regra do EventBridge que é usada para executar uma instrução SQL em um grupo de trabalho do Amazon Redshift sem servidor.

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

Em seguida, um destino EventBridge é criado para ser executado na programação especificada na regra. 

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

O arquivo data.json de entrada é o seguinte. A chave JSON `Sql` indica que há uma única instrução SQL. O valor JSON `Arn` contém um nome de grupo de trabalho. O valor `RoleArn` JSON contém o perfil do IAM usado para executar o SQL conforme descrito 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 
            } 
        } 
    ] 
}
```

## Chamadas com cluster e várias instruções SQL
<a name="data-api-calling-event-bridge-sqls-cluster"></a>

O exemplo a seguir usa a AWS CLI para criar uma regra do EventBridge que é usada para executar várias instruções SQL em um cluster do Amazon Redshift.

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

Em seguida, um destino EventBridge é criado para ser executado na programação especificada na regra. 

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

O arquivo data.json de entrada é o seguinte. A chave JSON `Sqls` indica que há várias instruções SQL. O valor JSON `Arn` contém um identificador de cluster. O valor `RoleArn` JSON contém o perfil do IAM usado para executar o SQL conforme descrito 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 
            } 
        } 
    ] 
}
```

## Chamadas com grupo de trabalho e várias instruções SQL
<a name="data-api-calling-event-bridge-sqls-workgroup"></a>

O exemplo a seguir usa a AWS CLI para criar uma regra do EventBridge que é usada para executar várias instruções SQL em um grupo de trabalho do Amazon Redshift sem servidor.

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

Em seguida, um destino EventBridge é criado para ser executado na programação especificada na regra. 

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

O arquivo data.json de entrada é o seguinte. A chave JSON `Sqls` indica que há várias instruções SQL. O valor JSON `Arn` contém um nome de grupo de trabalho. O valor `RoleArn` JSON contém o perfil do IAM usado para executar o SQL conforme descrito 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 
            } 
        } 
    ] 
}
```