이 페이지는 위젯우 자동화 작업 카탈로그에서 사용할 수 있는 AWS 실행 API에 대한 포괄적인 참조 정보를 제공합니다. 이러한 작업을 통해 모든 AWS API 작업을 실행할 수 있습니다.
전제 조건
블리자드 자동화에서 AWS 작업을 사용하기 전에 다음 사항이 있는지 확인하세요.
- 적절한 권한이 있는 AWS 계정.
- AWS 자격 증명이 구성되었습니다(IAM 사용자 자격 증명, IAM 역할 ARN 또는 세션 자격 증명).
- 사용하려는 특정 AWS 서비스에 필요한 IAM 권한입니다.
IAM 사용자 및 IAM 역할을 만드는 방법과 펠로우 자동화 AWS 작업과 통합하기 위한 정적 및 세션 AWS 자격 증명을 설정하는 방법에 대한 자세한 내용은 AWS 자격 증명 설정을 참조하세요.
보안 및 IAM 설정
이 작업을 사용하려면 AWS 자격 증명을 구성해야 합니다. IAM 역할이나 IAM 사용자를 만드는 방법에 대한 자세한 지침은 AWS 자격 증명 설정을 참조하세요.
중요
보안 모범 사례: 이 작업에 대한 IAM 정책을 정의할 때는 항상 최소 권한 액세스를 사용하세요. 와일드카드를 사용하는 대신, 필요한 특정 AWS API 작업만 허용하고 특정 리소스에 대한 권한을 제한하세요.
필수 IAM 권한
필요한 권한은 귀하가 호출하는 AWS 서비스 및 API에 따라 다릅니다. 아래 예를 템플릿으로 사용하여 최소 권한 정책을 생성하세요.
예시 1: 특정 SQS 큐로 메시지 전송
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:us-west-2:<your-aws-account-id>:<your-queue-name>" } ]}예제 2: 특정 DynamoDB 테이블 쿼리
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dynamodb:Query", "Resource": "arn:aws:dynamodb:us-west-2:<your-aws-account-id>:table/<your-table-name>" } ]}예시 3: 특정 권한을 가진 여러 서비스
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:us-west-2:<your-aws-account-id>:<your-queue-name>" }, { "Effect": "Allow", "Action": "dynamodb:Query", "Resource": "arn:aws:dynamodb:us-west-2:<your-aws-account-id>:table/<your-table-name>" } ]}중요
<your-aws-account-id>,<your-queue-name>,<your-table-name>를 실제 값으로 바꾸세요.- Boto3 설명서에서 사용 가능한 AWS 서비스 API를 찾아보세요.
- 더 복잡한 IAM 정책 패턴에 대해서는 AWS IAM 설명서를참조하세요.
이 작업이 작동하는 방식에 대한 자세한 내용은 AWS Systems Manager executeAwsApi 설명서를 참조하세요.
AWS API 호출
지정된 서비스에 대해 AWS API 작업을 실행합니다. AWS 자격 증명, 지역, 서비스 이름, API 이름 및 선택적 시위 제공을 지원합니다. 이 액션은 성공 상태, 응답 데이터 및 오류 메시지와 같은 출력을 반환할 수 있으므로 AWS 서비스와 프로그래밍 방식으로 상호 작용하는 데 다용도로 활용할 수 있습니다.
입력 필드 | 선택성 | 유형 | 예시 |
|---|---|---|---|
awsRoleArn | 선택 과목 | 문자열 |
|
awsAccessKeyId | 선택 과목 | 문자열 |
|
awsSecretAccessKey | 선택 과목 | 문자열 |
|
awsSessionToken | 선택 과목 | 문자열 |
|
지역 | 필수의 | 문자열 |
|
서비스 | 필수의 | 문자열 |
. |
API | 필수의 | 문자열 |
|
매개변수 | 필수의 | 지도 | |
선택기 | 선택 과목 | 목록 |
|
출력 필드 | 유형 | 예시 |
|---|---|---|
response | 물체 |
- 각 서비스 및 API는 서로 다른 응답을 보입니다. 예를 들어 참조하십시오. |
성공 | 부울 |
|
오류 메시지 | 문자열 |
|
중요
- AWS 자격 증명(짧은 버전, 긴 버전, 역할) 중 하나 이상을 입력해야 하며, 역할 자격 증명이 다른 자격 증명보다 우선합니다.
- 작업 입력에서
awsAccessKeyId및awsSecretAccessKey제공해야 하는 경우 이것이 IAM 사용자의 정적 자격 증명인지 확인하세요. - 세션 자격 증명을 사용하려면
awsAccessKeyId,awsSecretAccessKey및awsSessionToken작업 입력에 전달해야 합니다. - 자세한 내용은 AWS 자격 증명을 참조하십시오.
- 선택기를 사용하여 지정된 프로토콜만 출력으로 가져옵니다.
예시: DynamoDB 테이블 쿼리
이 예제에서는 세션 자격 증명을 사용하여 aws.execute.api 작업을 사용하여 DynamoDB 테이블을 쿼리하는 방법을 보여줍니다.
name: aws_execute_api_dynamoDB_dks
workflowInputs: key: type: String defaultValue: "${{ :secrets:<aws_access_key_id> }}" access: type: String defaultValue: "${{ :secrets:<aws_secret_access_key? }}" token: type: String defaultValue: "${{ :secrets:<aws_session_token> }}" region: type: String defaultValue: us-east-2 tableName: type: String defaultValue: workflow-definitions-dev scopedName: type: String version: type: String defaultValue: "1"
steps: - name: executeApi type: action action: aws.execute.api version: 1 inputs: awsAccessKeyId: ${{ .workflowInputs.key }} awsSecretAccessKey: ${{ .workflowInputs.access }} awsSessionToken: ${{ .workflowInputs.token }} region: ${{ .workflowInputs.region }} service: dynamodb api: query parameters: TableName: ${{ .workflowInputs.tableName }} KeyConditionExpression: "ScopedName = :scopedNameValue AND Version = :VersionValue" ExpressionAttributeValues: ":scopedNameValue": S: ${{ .workflowInputs.scopedName }} ":VersionValue": N: ${{ .workflowInputs.version }} selectors: - name: response expression: '.response' - name: errorMessage expression: '.errorMessage' - name: success expression: '.success' - name: wait type: wait seconds: 2 - name: logOutput type: action action: newrelic.instrumentation.log version: 1 inputs: message: 'The execute API message output is:${{ .steps.executeApi.outputs.response.Item }}' licenseKey: '${{ :secrets:STAGING_NEW_RELIC_LICENSE_KEY }}' - name: logOutput1 type: action action: newrelic.instrumentation.log version: 1 inputs: message: 'does execute API have any error :${{ .steps.executeApi.outputs.errorMessage }}' licenseKey: '${{ :secrets:STAGING_NEW_RELIC_LICENSE_KEY }}' - name: logOutput2 type: action action: newrelic.instrumentation.log version: 1 inputs: message: 'is execute successful :${{ .steps.executeApi.outputs.success }}' licenseKey: '${{ :secrets:STAGING_NEW_RELIC_LICENSE_KEY }}'AWS Execute API 사용하는 더 많은 워크플로우 예제는 링크플로우 예제 페이지를 참조하세요.