Amazon EventBridge로 Amazon Redshift Data API 작업 예약 - Amazon Redshift

Amazon EventBridge로 Amazon Redshift Data API 작업 예약

선택된 이벤트와 일치할 경우 대상으로 라우팅하여 작업을 실행하는 규칙을 생성할 수 있습니다. 규칙을 사용하여 미리 결정된 일정에 따라 조치를 취할 수도 있습니다. 자세한 내용은 Amazon EventBridge 사용 가이드를 참조하세요.

EventBridge로 Data API 작업을 예약하려면 연결된 IAM 역할이 CloudWatch Events(events.amazonaws.com)의 보안 주체를 신뢰해야 합니다. 이 역할에는 관리형 정책 AmazonEventBridgeFullAccess에 해당하는 정책이 연결되어 있어야 합니다. Data API에 의해 관리되는 AmazonRedshiftDataFullAccess 정책 권한도 있어야 합니다. IAM 콘솔에서 이러한 권한으로 IAM 역할을 생성할 수 있습니다. IAM 콘솔에서 역할을 생성할 때 CloudWatch Events에 대해 AWS 서비스 신뢰할 수 있는 엔터티를 선택합니다. EventBridge 대상의 RoleArn JSON 값에 IAM 역할을 지정합니다. 서비스 역할 생성에 대한 자세한 내용은 IAM User GuideCreating a Role for an AWS Service (Console)를 참조하세요.

Amazon EventBridge에서 생성하는 규칙의 nameRedshiftDataParametersStatementName과 일치해야 합니다.

다음 예제는 한 개 또는 여러 개의 SQL 문을 사용하고 Amazon Redshift 클러스터 또는 Amazon Redshift Serverless 작업 그룹을 데이터 웨어하우스로 사용하여 EventBridge 규칙을 생성하는 변형을 보여줍니다.

다음 예에서는 AWS CLI를 사용하여 Amazon Redshift 클러스터에 대해 SQL 문을 실행하는 데 사용되는 EventBridge 규칙을 생성합니다.

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

그런 다음 규칙에 지정된 일정에 따라 실행되도록 EventBridge 대상이 생성됩니다.

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

입력 data.json 파일은 다음과 같습니다. Sql JSON 키는 단일 SQL 문이 있음을 나타냅니다. Arn JSON 값에는 클러스터 식별자가 포함됩니다. RoleArn JSON 값에는 앞서 설명한 대로 SQL을 실행하는 데 사용되는 IAM 역할이 포함됩니다.

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

다음 예에서는 AWS CLI를 사용하여 Amazon Redshift Serverless 작업 그룹에 대해 SQL 문을 실행하는 데 사용되는 EventBridge 규칙을 생성합니다.

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

그런 다음 규칙에 지정된 일정에 따라 실행되도록 EventBridge 대상이 생성됩니다.

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

입력 data.json 파일은 다음과 같습니다. Sql JSON 키는 단일 SQL 문이 있음을 나타냅니다. Arn JSON 값에는 작업 그룹 이름이 포함됩니다. RoleArn JSON 값에는 앞서 설명한 대로 SQL을 실행하는 데 사용되는 IAM 역할이 포함됩니다.

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

다음 예에서는 AWS CLI를 사용하여 Amazon Redshift 클러스터에 대해 여러 SQL 문을 실행하는 데 사용되는 EventBridge 규칙을 생성합니다.

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

그런 다음 규칙에 지정된 일정에 따라 실행되도록 EventBridge 대상이 생성됩니다.

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

입력 data.json 파일은 다음과 같습니다. Sqls JSON 키는 여러 SQL 문이 있음을 나타냅니다. Arn JSON 값에는 클러스터 식별자가 포함됩니다. RoleArn JSON 값에는 앞서 설명한 대로 SQL을 실행하는 데 사용되는 IAM 역할이 포함됩니다.

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

다음 예에서는 AWS CLI를 사용하여 Amazon Redshift Serverless 작업 그룹에 대해 여러 SQL 문을 실행하는 데 사용되는 EventBridge 규칙을 생성합니다.

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

그런 다음 규칙에 지정된 일정에 따라 실행되도록 EventBridge 대상이 생성됩니다.

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

입력 data.json 파일은 다음과 같습니다. Sqls JSON 키는 여러 SQL 문이 있음을 나타냅니다. Arn JSON 값에는 작업 그룹 이름이 포함됩니다. RoleArn JSON 값에는 앞서 설명한 대로 SQL을 실행하는 데 사용되는 IAM 역할이 포함됩니다.

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