Aperçu
Nous travaillons toujours sur cette fonctionnalité, mais nous aimerions que vous l'essayiez !
Cette fonctionnalité est actuellement fournie dans le cadre d'un programme d'aperçu conformément à nos politiques de pré-sortie.
Cette page fournit une référence complète pour l'exécution de l'API AWS disponible dans le catalogue des actions d'automatisation des workflows. Ces actions vous permettent d'exécuter n'importe quelle opération d'API AWS.
Prérequis
Avant d'utiliser AWS Actions dans l'automatisation workflow, assurez-vous de disposer des éléments suivants :
- Un compte AWS disposant des autorisations appropriées.
- Informations d'identification AWS configurées (informations d'identification de l'utilisateur IAM, ARN du rôle IAM ou informations d'identification de session).
- Les autorisations IAM nécessaires pour les services AWS spécifiques que vous prévoyez d'utiliser.
Consultez la section Configurer les informations d'identification AWS pour savoir comment créer un utilisateur IAM et des rôles IAM, et comment configurer les informations d'identification AWS statiques et de session pour l'intégration avec les actions AWS d'automatisation workflow.
configurationde la sécurité et d'IAM
Pour utiliser cette action, vous devez configurer vos identifiants AWS. Consultez la section « Configurer les informations d'identification AWS » pour obtenir 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.
Appeler 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.
Champ de saisie | optionnalité | Type | Exemple |
|---|---|---|---|
awsRoleArn | Facultatif | Chaîne |
|
awsAccessKeyId | Facultatif | Chaîne |
|
awsSecretAccessKey | Facultatif | Chaîne |
|
awsSessionToken | Facultatif | Chaîne |
|
région | Requis | Chaîne |
|
service | Requis | Chaîne |
|
API | Requis | Chaîne |
|
paramètres | Requis | Carte | |
sélecteurs | Facultatif | List |
|
Champ de sortie | 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 . |
succès | Booléen |
|
message d'erreur | 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 à Informations d'identification 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 l'API AWS Execute, consultez la page Exemples de workflow.