avance
Todavía estamos trabajando en esta característica, ¡pero nos encantaría que la probaras!
Esta característica se proporciona actualmente como parte de un programa de vista previa de conformidad con nuestras políticas de prelanzamiento.
Esta página proporciona una referencia completa para la API de ejecución de AWS disponible en el catálogo de acciones de automatización del flujo de trabajo. Estas acciones le permiten ejecutar cualquier operación de API de AWS.
Requisitos previos
Antes de emplear las acciones AWS en la automatización del flujo de trabajo, cerciorar de tener lo siguiente:
- Una cuenta de AWS con las licencias adecuadas.
- Credenciales de AWS configuradas (credenciales de usuario de IAM, ARN de rol de IAM o credenciales de sesión).
- Las licencias IAM necesarios para los servicios específicos de AWS que planea emplear.
Consulte Configurar credenciales AWS para obtener información sobre cómo crear usuarios y roles de IAM, y configurar credenciales AWS estáticas y de sesión para la integración con acciones de automatización de flujo de trabajo AWS.
Configuración de seguridad y IAM
Para emplear esta acción, debe configurar las credenciales de AWS. Consulte Configurar las credenciales de AWS para obtener instrucciones detalladas sobre cómo crear un rol o usuario de IAM.
Importante
Buenas prácticas de seguridad: Al definir las políticas de IAM para esta acción, emplee siempre el acceso con privilegios mínimos. Otorgue únicamente las acciones específicas de la API de AWS que requiera su flujo de trabajo y restrinja las licencias a recursos específicos en lugar de usar comodines.
Licencias IAM requeridos
Las licencias que necesitas dependen de los servicios de AWS y las API que emplee tu flujo de trabajo. Emplee los ejemplos siguientes como plantillas para crear políticas de mínimo privilegio.
Ejemplo 1: Enviar mensajes a una cola 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>" } ]}Ejemplos 2: consulta una tabla específica de 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>" } ]}Ejemplo 3: Múltiples servicios con licencias 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
- Reemplace
<your-aws-account-id>,<your-queue-name>y<your-table-name>con sus valores reales. - Encuentra las API de servicios de AWS disponibles en la documentación de Boto3.
- Para patrones de políticas de IAM más complejos, consulte la documentación de AWS IAM.
Para obtener más información sobre cómo funciona esta acción, consulte la documentación de AWS Systems Manager executeAwsApi.
Llamar a una API de AWS
Ejecutar cualquier operación de API de AWS para un servicio específico. Admite proporcionar credenciales AWS, región, nombre del servicio, nombre API y parámetros opcionales. La acción puede devolver resultados como estado de éxito, datos de respuesta y mensaje de error, lo que la hace versátil para interactuar con los servicios de AWS de forma programada.
Campo de entrada | Opcionalidad | Tipo | Ejemplo |
|---|---|---|---|
awsRoleArn | Opcional | Cadena |
|
awsAccessKeyId | Opcional | Cadena |
|
awsSecretAccessKey | Opcional | Cadena |
|
awsSessionToken | Opcional | Cadena |
|
región | Requerido | Cadena |
|
servicio | Requerido | Cadena |
|
API | Requerido | Cadena |
|
parámetro | Requerido | Mapa | |
selectores | Opcional | Lista |
|
Campo de salida | Tipo | Ejemplo |
|---|---|---|
response | Objeto |
- cada servicio y API tiene una respuesta diferente, por ejemplo, consulte la respuesta de la consulta de DynamoDB . |
éxito | Booleano |
|
mensaje de error | Cadena |
|
Importante
- Se debe proporcionar al menos una de las credenciales de AWS (corta, larga, rol), donde el rol tiene prioridad sobre las demás.
- En la entrada de acción, si se van a proporcionar
awsAccessKeyIdyawsSecretAccessKey, cerciorar de que sean credenciales estáticas de un usuario de IAM. - Si se van a emplear credenciales de sesión,
awsAccessKeyId,awsSecretAccessKeyyawsSessionTokendeben pasar a la entrada de acción. - Consulte las credenciales de AWS para obtener instrucciones.
- Emplee selectores para obtener únicamente el parámetro especificado como resultado.
Ejemplo: consulta una tabla de DynamoDB
Este ejemplo muestra cómo consultar una tabla de DynamoDB usando la acción aws.execute.api con credenciales de sesión.
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 obtener más ejemplos de flujo de trabajo empleando AWS Execute API, consulte la página de ejemplos de flujo de trabajo.