Programar operações da API de dados do Amazon Redshift com o Amazon EventBridge
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 obter mais informações, consulte o Guia do Usuário do Amazon EventBridge.
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) 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.
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
}
}
]
}
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
}
}
]
}
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
}
}
]
}
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
}
}
]
}