Cette page fournit une référence complète pour l'API AWS Execute disponible dans le catalogue des actions d'automatisation de workflow. Ces actions vous permettent d'exécuter toute opération d'API AWS.
Prérequis
Pour les prérequis et la configuration des identifiants, consultez Configurer les identifiants AWS.
configurationde la sécurité et d'IAM
Pour utiliser cette action, vous devez configurer les identifiants AWS. Consultez Configurer les identifiants AWS pour des instructions détaillées sur la création d'un rôle IAM ou d'un utilisateur IAM.
Important
Bonnes pratiques de sécurité : lors de la définition des politiques IAM pour cette action, utilisez toujours le principe du moindre privilège. N’accordez que les actions spécifiques de l’API AWS requises par votre workflow et limitez les autorisations à des ressources spécifiques plutôt que d’utiliser des caractères génériques.
Autorisations IAM requises
Les autorisations dont vous avez besoin dépendent des services AWS et des API que votre workflow appelle. Utilisez les exemples ci-dessous comme modèles pour créer des politiques de moindre privilège.
Exemple 1 : Envoyer des messages à une file d'attente SQS spécifique
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:us-west-2:<your-aws-account-id>:<your-queue-name>" } ]}Exemples 2 : Interroger une table DynamoDB spécifique
{ "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>" } ]}Exemple 3 : Plusieurs services avec des autorisations spécifiques
{ "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>" } ]}Important
- Remplacez
<your-aws-account-id>,<your-queue-name>et<your-table-name>par vos valeurs réelles. - Trouvez les services disponibles et les API AWS dans la documentation Boto3
- Pour des modèles de stratégie IAM plus complexes, consultez la documentation AWS IAM.
Pour plus d'informations sur le fonctionnement de cette action, consultez la documentation AWS système Manager executeAwsApi.
Exécuter une API AWS
Exécutez n'importe quelle opération d'API AWS pour un service spécifié. Il prend en charge la fourniture d'informations d'identification AWS, de la région, du nom du service, du nom de l'API et de paramètres facultatifs. L'action peut renvoyer des sorties telles que l'état de réussite, les données de réponse et les messages d'erreur, ce qui la rend polyvalente pour interagir avec les services AWS par programmation.
Saisir | Type | Exemple |
|---|---|---|
awsRoleArn | Facultatif. Chaîne |
|
awsAccessKeyId | Facultatif. Chaîne |
|
awsSecretAccessKey | Facultatif. Chaîne |
|
awsSessionToken | Facultatif. Chaîne |
|
région | Obligatoire. Chaîne |
|
service | Obligatoire. Chaîne |
|
API | Obligatoire. Chaîne |
|
paramètres | Obligatoire. Mappage | |
selectors | Facultatif. Liste |
|
Sortir | Type | Exemple |
|---|---|---|
response | Objet |
- chaque service et API ont une réponse différente, par exemple, voir la réponse de la requête DynamoDB . |
success | Booléen |
|
errorMessage | Chaîne |
|
Important
- Au moins une des informations d'identification AWS (courte, longue, rôle) doit être fournie, le rôle étant prioritaire sur les autres.
- Dans l'entrée d'action, si
awsAccessKeyIdetawsSecretAccessKeydoivent être fournis, assurez-vous qu'il s'agit d'informations d'identification statiques d'un utilisateur IAM. - Si des informations d'identification de session doivent être utilisées,
awsAccessKeyId,awsSecretAccessKeyetawsSessionTokendoivent être transmises à l'entrée d'action. - Reportez-vous aux identifiants AWS pour obtenir des instructions.
- Utilisez des sélecteurs pour obtenir uniquement les paramètres spécifiés en sortie.
Exemple : Interroger une table DynamoDB
Cet exemple montre comment interroger une table DynamoDB en utilisant l'action aws.execute.api avec des informations d'identification de session.
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 }}'Pour plus d'exemples de workflow utilisant AWS Execute API, consultez la page Exemples de workflow.