このページでは、ワークフロー オートメーション アクション カタログで利用可能な AWS 実行 API の包括的なリファレンスを提供します。 これらのアクションにより、任意の AWS API 操作を実行できます。
前提条件
ワークフロー自動化で AWS アクションを使用する前に、次の点を確認してください。
- 適切な権限を持つ AWS アカウント。
- 設定された AWS 認証情報 (IAM ユーザー認証情報、IAM ロール ARN、またはセッション認証情報)。
- 使用する予定の特定のAWSサービスに必要な IAM 権限。
IAM ユーザーおよび IAM ロールを作成する方法、およびワークフロー オートメーションAWSアクションと統合するための静的 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 認証情報 (ショート、ロング、ロール) の少なくとも 1 つを入力する必要があります。ロールは他の認証情報よりも優先されます。
- アクション入力で
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を使用したその他のワークフローの例については、ワークフローの例のページを参照してください。