visualização
Ainda estamos trabalhando nesse recurso, mas adoraríamos que você experimentasse!
Atualmente, esse recurso é fornecido como parte de um programa de visualização de acordo com nossas políticas de pré-lançamento.
Esta página fornece uma referência completa para a API de execução da AWS disponível no catálogo de ações de automação de fluxo de trabalho. Essas ações permitem que você execute qualquer operação da API da AWS.
Pré-requisitos
Antes de usar as ações AWS na automação do fluxo de trabalho, certifique-se de ter:
- Uma conta da AWS com as permissões apropriadas.
- Credenciais da AWS configuradas (credenciais de usuário do IAM, ARN da função do IAM ou credenciais de sessão).
- As permissões IAM necessárias para os serviços específicos da AWS que você planeja usar.
Consulte Configurar credenciais AWS para obter informações sobre como criar usuários e funções do IAM e configurar credenciais estáticas e de sessão AWS para integração com as ações de automação de fluxo de trabalho AWS.
Configuração de segurança e IAM
Para usar essa ação, você precisa configurar as credenciais da AWS. Consulte Configurar credenciais da AWS para obter instruções detalhadas sobre como criar uma função ou um usuário do IAM.
Importante
Práticas de segurança recomendadas: Ao definir políticas de IAM para esta ação, utilize sempre o princípio do menor privilégio. Conceda apenas as ações específicas da API da AWS que seu fluxo de trabalho exige e restrinja as permissões a recursos específicos em vez de usar curingas.
Permissões IAM necessárias
As permissões necessárias dependem dos serviços da AWS e das APIs que seu fluxo de trabalho utiliza. Utilize os exemplos abaixo como modelos para criar políticas de privilégio mínimo.
Exemplo 1: Enviar mensagens para uma fila SQS específica
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:us-west-2:<your-aws-account-id>:<your-queue-name>" } ]}Exemplo 2: consultar uma tabela específica do 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>" } ]}Exemplo 3: Vários serviços com permissões específicas
{ "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>" } ]}Importante
- Substitua
<your-aws-account-id>,<your-queue-name>e<your-table-name>pelos seus valores reais. - Encontre os serviços disponíveis das APIs da AWS na documentação do Boto3.
- Para padrões de política do IAM mais complexos, consulte a documentação do AWS IAM.
Para obter mais informações sobre como essa ação funciona, consulte a documentação do AWS Systems Manager executeAwsApi.
Inicie uma chamada para uma API da AWS.
Execute qualquer operação da API da AWS para um serviço específico. Ele permite fornecer credenciais AWS, região, nome do serviço, nome API e parâmetros opcionais. A ação pode retornar resultados como status de sucesso, dados de resposta e mensagem de erro, tornando-a versátil para interagir programaticamente com os serviços da AWS.
Campo de entrada | Opcionalidade | Tipo | Exemplo |
|---|---|---|---|
awsRoleArn | Opcional | Corda |
|
awsAccessKeyId | Opcional | Corda |
|
awsSecretAccessKey | Opcional | Corda |
|
awsSessionToken | Opcional | Corda |
|
região | Obrigatório | Corda |
|
serviço | Obrigatório | Corda |
|
API | Obrigatório | Corda |
|
parâmetro | Obrigatório | Mapa | |
seletores | Opcional | Lista |
|
Campo de saída | Tipo | Exemplo |
|---|---|---|
response | Objeto |
- Cada serviço e API tem uma resposta diferente; veja, por exemplo, a resposta da consulta do DynamoDB . |
sucesso | Boleano |
|
mensagem de erro | Corda |
|
Importante
- É necessário fornecer pelo menos uma das credenciais da AWS (curta, longa ou função), sendo que a função tem precedência sobre as demais.
- Na entrada de ação, se
awsAccessKeyIdeawsSecretAccessKeyforem fornecidos, certifique-se de que sejam credenciais estáticas de um usuário IAM. - Se as credenciais da sessão forem usadas,
awsAccessKeyId,awsSecretAccessKeyeawsSessionTokendevem ser passados para a entrada de ação. - Consulte as credenciais da AWS para obter instruções.
- Utilize seletores para obter apenas o parâmetro especificado como saída.
Exemplo: consulta uma tabela do DynamoDB
Este exemplo demonstra como consultar uma tabela do DynamoDB usando a ação aws.execute.api com credenciais de sessão.
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 }}'Para obter mais exemplos de fluxo de trabalho usando API AWS Execute, consulte a página de exemplos de fluxo de trabalho.