Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Planification des opérations de l'API Amazon Redshift Data avec Amazon EventBridge
Vous pouvez créer des règles qui correspondent à des événements sélectionnés et les acheminent vers des cibles pour qu’elles prennent des mesures. Vous pouvez également utiliser des règles pour effectuer des actions sur une planification prédéterminée. Pour plus d'informations, consultez le guide de EventBridge l'utilisateur Amazon.
Pour planifier les opérations de l'API de données avec EventBridge, le rôle IAM associé doit faire confiance au principal pour les CloudWatch événements (events.amazonaws.com). Ce rôle doit être assorti de l’équivalent de la politique gérée AmazonEventBridgeFullAccess
. Il doit également disposer des autorisations de la politique AmazonRedshiftDataFullAccess
qui sont gérées par l’API de données. Vous pouvez créer un rôle IAM avec ces autorisations sur la console IAM. Lorsque vous créez un rôle sur la console IAM, choisissez l'entité de confiance du AWS service pour les CloudWatch événements. Spécifiez le rôle IAM dans la valeur RoleArn
JSON de la EventBridge cible. Pour plus d'informations sur la création d'un rôle IAM, consultez la section Création d'un rôle pour un AWS service (console) dans le guide de l'utilisateur IAM.
La name
règle que vous créez dans Amazon EventBridge doit correspondre StatementName
à celle duRedshiftDataParameters
.
Les exemples suivants montrent des variantes de création de EventBridge règles avec une ou plusieurs instructions SQL et avec un cluster Amazon Redshift ou un groupe de travail Amazon Redshift Serverless comme entrepôt de données.
L'exemple suivant utilise le AWS CLI pour créer une EventBridge règle qui est utilisée pour exécuter une instruction SQL sur un cluster Amazon Redshift.
aws events put-rule --name test-redshift-cluster-data --schedule-expression "rate(1 minute)"
Ensuite, une EventBridge cible est créée pour s'exécuter selon le calendrier spécifié dans la règle.
aws events put-targets --cli-input-json file://data.json
Le fichier d’entrée data.json se présente comme suit. La clé JSON Sql
indique qu’il y a une seule instruction SQL. La valeur JSON Arn
contient un identifiant de cluster. La valeur JSON RoleArn
contient le rôle IAM utilisé pour exécuter le SQL comme décrit précédemment.
{
"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
}
}
]
}
L'exemple suivant utilise le AWS CLI pour créer une EventBridge règle qui est utilisée pour exécuter une instruction SQL sur un groupe de travail Amazon Redshift Serverless.
aws events put-rule --name test-redshift-serverless-workgroup-data --schedule-expression "rate(1 minute)"
Ensuite, une EventBridge cible est créée pour s'exécuter selon le calendrier spécifié dans la règle.
aws events put-targets --cli-input-json file://data.json
Le fichier d’entrée data.json se présente comme suit. La clé JSON Sql
indique qu’il y a une seule instruction SQL. La valeur JSON Arn
contient un nom de groupe de travail. La valeur JSON RoleArn
contient le rôle IAM utilisé pour exécuter le SQL comme décrit précédemment.
{
"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
}
}
]
}
L'exemple suivant utilise le AWS CLI pour créer une EventBridge règle qui est utilisée pour exécuter plusieurs instructions SQL sur un cluster Amazon Redshift.
aws events put-rule --name test-redshift-cluster-data --schedule-expression "rate(1 minute)"
Ensuite, une EventBridge cible est créée pour s'exécuter selon le calendrier spécifié dans la règle.
aws events put-targets --cli-input-json file://data.json
Le fichier d’entrée data.json se présente comme suit. La clé JSON Sqls
indique qu’il existe plusieurs instructions SQL. La valeur JSON Arn
contient un identifiant de cluster. La valeur JSON RoleArn
contient le rôle IAM utilisé pour exécuter le SQL comme décrit précédemment.
{
"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
}
}
]
}
L'exemple suivant utilise le AWS CLI pour créer une EventBridge règle qui est utilisée pour exécuter plusieurs instructions SQL sur un groupe de travail Amazon Redshift Serverless.
aws events put-rule --name test-redshift-serverless-workgroup-data --schedule-expression "rate(1 minute)"
Ensuite, une EventBridge cible est créée pour s'exécuter selon le calendrier spécifié dans la règle.
aws events put-targets --cli-input-json file://data.json
Le fichier d’entrée data.json se présente comme suit. La clé JSON Sqls
indique qu’il existe plusieurs instructions SQL. La valeur JSON Arn
contient un nom de groupe de travail. La valeur JSON RoleArn
contient le rôle IAM utilisé pour exécuter le SQL comme décrit précédemment.
{
"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
}
}
]
}