Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation des types d'actions
Les types d'actions sont des actions préconfigurées que vous créez, en tant que fournisseur, pour les clients à l'aide de l'un des modèles d'intégration pris en charge dans AWS CodePipeline.
Vous pouvez demander, consulter et mettre à jour des types d'actions. Si le type d'action est créé pour votre compte en tant que propriétaire, vous pouvez l'utiliser AWS CLI pour afficher ou mettre à jour les propriétés et la structure de votre type d'action. Si vous êtes le fournisseur ou le propriétaire du type d'action, vos clients peuvent choisir l'action et l'ajouter à leurs pipelines une fois qu'elle sera disponible dans CodePipeline.
Note
Vous créez des custom actions owner sur le terrain à exécuter avec un collaborateur. Vous ne les créez pas à l'aide d'un modèle d'intégration. Pour plus d'informations sur les actions personnalisées, consultezCréez et ajoutez une action personnalisée dans CodePipeline.
Composants du type d'action
Les composants suivants constituent un type d'action.
-
ID du type d'action — L'ID comprend la catégorie, le propriétaire, le fournisseur et la version. L'exemple suivant montre un ID de type d'action dont le propriétaire
ThirdParty, la catégorieTest, le fournisseur est nomméTestProvideret une version de celui-ci1.{ "Category": "Test", "Owner": "ThirdParty", "Provider": "TestProvider", "Version": "1" }, -
Configuration de l'exécuteur : modèle d'intégration, ou moteur d'action, spécifié lors de la création de l'action. Lorsque vous spécifiez l'exécuteur d'un type d'action, vous choisissez l'un des deux types suivants :
-
Lambda : le propriétaire du type d'action écrit l'intégration sous la forme d'une fonction Lambda, qui est invoquée CodePipeline chaque fois qu'une tâche est disponible pour l'action.
-
JobWorker: le propriétaire du type d'action écrit l'intégration sous la forme d'un assistant qui interroge les offres d'emploi disponibles sur les pipelines de clients. L'assistant exécute ensuite la tâche et renvoie le résultat de la tâche à l'aide CodePipeline d' CodePipeline API.
Note
Le modèle d'intégration des travailleurs n'est pas le modèle d'intégration préféré.
-
-
Artefacts d'entrée et de sortie : limites pour les artefacts que le propriétaire du type d'action désigne pour les clients de l'action.
-
Autorisations : stratégie d'autorisations qui désigne les clients qui peuvent accéder au type d'action tiers. Les stratégies d'autorisations disponibles dépendent du modèle d'intégration choisi pour le type d'action.
-
URL : liens profonds vers des ressources avec lesquelles le client peut interagir, telles que la page de configuration du propriétaire du type d'action.
Rubriques
Demander un type d'action
Lorsqu'un nouveau type CodePipeline d'action est demandé par un fournisseur tiers, le type d'action est créé pour le propriétaire du type d'action dans CodePipeline, et le propriétaire peut gérer et afficher le type d'action.
Un type d'action peut être une action privée ou publique. Lorsque votre type d'action est créé, il est privé. Pour demander qu'un type d'action soit transformé en action publique, contactez l'équipe CodePipeline de service.
Avant de créer votre fichier de définition d'action, vos ressources d'exécuteur et votre demande de type d'action pour l' CodePipeline équipe, vous devez choisir un modèle d'intégration.
Étape 1 : Choisissez votre modèle d'intégration
Choisissez votre modèle d'intégration, puis créez la configuration pour ce modèle. Après avoir choisi le modèle d'intégration, vous devez configurer vos ressources d'intégration.
-
Pour le modèle d'intégration Lambda, vous créez une fonction Lambda et vous ajoutez des autorisations. Ajoutez des autorisations à la fonction Lambda de votre intégrateur pour fournir au CodePipeline service les autorisations nécessaires pour l'invoquer à l'aide du principal de CodePipeline service :.
codepipeline.amazonaws.com.rproxy.goskope.comLes autorisations peuvent être ajoutées à l'aide CloudFormation de la ligne de commande.-
Exemple d'ajout d'autorisations à l'aide de CloudFormation :
CodePipelineLambdaBasedActionPermission: Type: 'AWS::Lambda::Permission' Properties: Action: 'lambda:invokeFunction' FunctionName: {"Fn::Sub": "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:function-name"} Principal: codepipeline.amazonaws.com
-
-
Pour le modèle d'intégration des assistants professionnels, vous créez une intégration avec une liste de comptes autorisés sur lesquels l'assistant interroge les offres d'emploi à l'aide CodePipeline des API.
Étape 2 : Création d'un fichier de définition du type d'action
Vous définissez un type d'action dans un fichier de définition de type d'action à l'aide du format JSON. Dans le fichier, vous incluez la catégorie d'action, le modèle d'intégration utilisé pour gérer le type d'action et les propriétés de configuration.
Note
Une fois que vous avez créé une action publique, vous ne pouvez pas modifier la propriété du type d'action sous properties de optional àrequired. Vous ne pouvez pas non plus modifier leowner.
Pour plus d'informations sur les paramètres du fichier de définition des types d'action, consultez ActionTypeDeclaration et UpdateActionType dans le Guide de référence de l'CodePipeline API.
Le fichier de définition des types d'action comporte huit sections :
-
description: description du type d'action à mettre à jour. -
executor: Informations sur l'exécuteur d'un type d'action créé avec un modèle d'intégration pris en charge,Lambdasoitjob worker. Vous ne pouvez fournir que l'unjobWorkerExecutorConfigurationou l'autrelambdaExecutorConfiguration, en fonction de votre type d'exécuteur testamentaire.-
configuration: Ressources pour la configuration du type d'action, en fonction du modèle d'intégration choisi. Pour le modèle d'intégration Lambda, utilisez la fonction Lambda ARN. Pour le modèle d'intégration des travailleurs, utilisez le compte ou la liste des comptes à partir desquels ils s'exécutent. -
jobTimeout: délai d'attente en secondes pour la tâche. L'exécution d'une action peut consister en plusieurs tâches. Il s'agit du délai d'attente pour une seule tâche, et non pour l'exécution complète de l'action.Note
Pour le modèle d'intégration Lambda, le délai maximum est de 15 minutes.
-
policyStatementsTemplate: déclaration de politique qui spécifie les autorisations du compte du CodePipeline client qui sont nécessaires pour exécuter correctement une action. -
type: modèle d'intégration utilisé pour créer et mettre à jour le type d'action,LambdasoitJobWorker.
-
-
id: catégorie, propriétaire, fournisseur et ID de version pour le type d'action :-
category: Le type d'action peut être effectué à l'étape suivante : Source, Création, Déploiement, Test, Invocation ou Approbation. -
provider: fournisseur du type d'action appelé, tel que le nom de la société ou du produit du fournisseur. Le nom du fournisseur est fourni lors de la création du type d'action. -
owner: créateur du type d'action appelé :AWSouThirdParty. -
version: chaîne utilisée pour versionner le type d'action. Pour la première version, définissez le numéro de version sur 1.
-
-
inputArtifactDetails: le nombre d'artefacts à attendre lors de l'étape précédente du pipeline. -
outputArtifactDetails: le nombre d'artefacts à attendre du résultat de l'étape de type d'action. -
permissions: détails identifiant les comptes autorisés à utiliser le type d'action. -
properties: les paramètres nécessaires à l'exécution des tâches de votre projet.-
description: description de la propriété qui est affichée aux utilisateurs. -
optional: si la propriété de configuration est facultative. -
noEcho: si la valeur du champ saisie par le client est omise du journal. Sitrue, la valeur est supprimée lorsqu'elle est renvoyée avec une demande d' GetPipeline API. -
key: si la propriété de configuration est une clé. -
queryable: indique si la propriété est utilisée pour les sondages. Un type d'action peut avoir jusqu'à une propriété interrogeable. Si c'est le cas, cette propriété doit être à la fois obligatoire et non secrète. -
name: nom de propriété affiché aux utilisateurs.
-
-
urls: une liste des URL CodePipeline s'affiche pour vos utilisateurs.-
entityUrlTemplate: URL vers les ressources externes pour le type d'action, comme une page de configuration. -
executionUrlTemplate: URL vers les détails de la dernière exécution de l'action. -
revisionUrlTemplate: URL affichée dans la CodePipeline console vers la page où les clients peuvent mettre à jour ou modifier la configuration de l'action externe. -
thirdPartyConfigurationUrl: URL d'une page sur laquelle les utilisateurs peuvent s'inscrire à un service externe et effectuer la configuration initiale de l'action fournie par ce service.
-
Le code suivant présente un exemple de fichier de définition de type d'action.
{ "actionType": { "description": "string", "executor": { "configuration": { "jobWorkerExecutorConfiguration": { "pollingAccounts": [ "string" ], "pollingServicePrincipals": [ "string" ] }, "lambdaExecutorConfiguration": { "lambdaFunctionArn": "string" } }, "jobTimeout": number, "policyStatementsTemplate": "string", "type": "string" }, "id": { "category": "string", "owner": "string", "provider": "string", "version": "string" }, "inputArtifactDetails": { "maximumCount": number, "minimumCount": number }, "outputArtifactDetails": { "maximumCount": number, "minimumCount": number }, "permissions": { "allowedAccounts": [ "string" ] }, "properties": [ { "description": "string", "key": boolean, "name": "string", "noEcho": boolean, "optional": boolean, "queryable": boolean } ], "urls": { "configurationUrl": "string", "entityUrlTemplate": "string", "executionUrlTemplate": "string", "revisionUrlTemplate": "string" } } }
Étape 3 : Enregistrez votre intégration auprès de CodePipeline
Pour enregistrer votre type d'action CodePipeline, vous devez contacter l'équipe CodePipeline de service avec votre demande.
L'équipe CodePipeline de service enregistre l'intégration du nouveau type d'action en apportant des modifications à la base de code du service. CodePipeline enregistre deux nouvelles actions : une action publique et une action privée. Vous utilisez l'action privée à des fins de test, puis lorsque vous êtes prêt, vous activez l'action publique pour gérer le trafic client.
Pour enregistrer une demande d'intégration Lambda
-
Envoyez une demande à l'équipe CodePipeline de service en utilisant le formulaire suivant.
This issue will track the onboarding of [Name] in CodePipeline. [Contact engineer] will be the primary point of contact for this integration. Name of the action type as you want it to appear to customers:Example.com TestingInitial onboard checklist: 1. Attach an action type definition file in JSON format. This includes the schema for the action type 2. A list of test accounts for the allowlist which can access the new action type [{account, account_name}] 3. The Lambda function ARN 4. List of Régions AWS where your action will be available 5. Will this be available as a public action?
Pour enregistrer une demande d'intégration des travailleurs
-
Envoyez une demande à l'équipe CodePipeline de service en utilisant le formulaire suivant.
This issue will track the onboarding of [Name] in CodePipeline. [Contact engineer] will be the primary point of contact for this integration. Name of the action type as you want it to appear to customers:Example.com TestingInitial onboard checklist: 1. Attach an action type definition file in JSON format. This includes the schema for the action type. 2. A list of test accounts for the allowlist which can access the new action type [{account, account_name}] 3. URL information: Website URL:https://www.example.com/%TestThirdPartyName%/%TestVersionNumber%Example URL pattern where customers will be able to review their configuration information for the action:https://www.example.com/%TestThirdPartyName%/%customer-ID%/%CustomerActionConfiguration%Example runtime URL pattern:https://www.example.com/%TestThirdPartyName%/%customer-ID%/%TestRunId%4. List of Régions AWS where your action will be available 5. Will this be available as a public action?
Étape 4 : Activez votre nouvelle intégration
Contactez l'équipe CodePipeline de service lorsque vous serez prêt à utiliser publiquement la nouvelle intégration.
Ajouter un type d'action disponible à un pipeline (console)
Vous ajoutez votre type d'action à un pipeline afin de pouvoir le tester. Vous pouvez le faire en créant un nouveau pipeline ou en modifiant un pipeline existant.
Note
Si votre type d'action est une action de catégorie source, de génération ou de déploiement, vous pouvez l'ajouter en créant un pipeline. Si votre type d'action appartient à la catégorie test, vous devez l'ajouter en modifiant un pipeline existant.
Pour ajouter votre type d'action à un pipeline existant depuis la CodePipeline console
Connectez-vous à Console de gestion AWS et ouvrez la CodePipeline console à l'adresse http://console.aws.amazon.com/codesuite/codepipeline/home
. -
Dans la liste des pipelines, choisissez le pipeline auquel vous souhaitez ajouter le type d'action.
-
Sur la page d'affichage récapitulatif du pipeline, choisissez Modifier.
-
Choisissez de modifier la scène. À l'étape où vous souhaitez ajouter votre type d'action, choisissez Ajouter un groupe d'actions. La page Modifier l'action s'affiche.
-
Sur la page Modifier l'action, dans Nom de l'action, entrez le nom de l'action. Il s'agit du nom qui s'affiche pour l'étape de votre pipeline.
-
Dans Fournisseur d'actions, choisissez votre type d'action dans la liste.
Notez que la valeur de la liste est basée sur celle
providerspécifiée dans le fichier de définition du type d'action. -
Dans Artefacts d'entrée, entrez le nom de l'artefact au format suivant :
Artifactname::FileNameNotez que les quantités minimales et maximales autorisées sont définies en fonction de ce qui est
inputArtifactDetailsspécifié dans le fichier de définition du type d'action. -
Choisissez Se connecter à < Action_Name >.
Une fenêtre de navigateur s'ouvre et permet de se connecter au site Web que vous avez créé pour votre type d'action.
-
Connectez-vous à votre site Web en tant que client et suivez les étapes suivies par un client pour utiliser votre type d'action. Vos étapes varient en fonction de votre catégorie d'action, de votre site Web et de votre configuration, mais incluent généralement une action d'achèvement qui renvoie le client vers la page Modifier l'action.
-
Sur la page CodePipeline Modifier l'action, les champs de configuration supplémentaires pour l'action s'affichent. Les champs qui s'affichent sont les propriétés de configuration que vous avez spécifiées dans le fichier de définition des actions. Entrez les informations dans les champs personnalisés pour votre type d'action.
Par exemple, si le fichier de définition d'action a spécifié une propriété nommée
Host, un champ portant le libellé Hôte s'affiche sur la page Modifier l'action pour votre action. -
Dans Artefacts de sortie, entrez le nom de l'artefact au format suivant :
Artifactname::FileNameNotez que les quantités minimales et maximales autorisées sont définies en fonction de ce qui est
outputArtifactDetailsspécifié dans le fichier de définition du type d'action. -
Choisissez Terminé pour revenir à la page des détails du pipeline.
Note
Vos clients peuvent éventuellement utiliser la CLI pour ajouter le type d'action à leur pipeline.
-
Pour tester votre action, modifiez la source spécifiée dans l'étape source du pipeline ou suivez les étapes décrites dans Démarrer manuellement un pipeline.
Pour créer un pipeline avec votre type d'action, suivez les étapes décrites Créez un pipeline, des étapes et des actions et choisissez votre type d'action parmi autant d'étapes que vous souhaitez tester.
Afficher un type d'action
Vous pouvez utiliser l'interface de ligne de commande pour afficher votre type d'action. Utilisez la get-action-type commande pour afficher les types d'actions créés à l'aide d'un modèle d'intégration.
Pour afficher un type d'action
-
Créez un fichier JSON d'entrée et nommez-le
file.json. Ajoutez l'ID de votre type d'action au format JSON, comme indiqué dans l'exemple suivant.{ "category": "Test", "owner": "ThirdParty", "provider": "TestProvider", "version": "1" } -
Dans une fenêtre de terminal ou sur la ligne de commande, exécutez la get-action-type commande.
aws codepipeline get-action-type --cli-input-json file://file.jsonCette commande renvoie la sortie de définition d'action pour un type d'action. Cet exemple montre un type d'action créé avec le modèle d'intégration Lambda.
{ "actionType": { "executor": { "configuration": { "lambdaExecutorConfiguration": { "lambdaFunctionArn": "arn:aws:lambda:us-west-2:<account-id>:function:my-function" } }, "type": "Lambda" }, "id": { "category": "Test", "owner": "ThirdParty", "provider": "TestProvider", "version": "1" }, "inputArtifactDetails": { "minimumCount": 0, "maximumCount": 1 }, "outputArtifactDetails": { "minimumCount": 0, "maximumCount": 1 }, "permissions": { "allowedAccounts": [ "<account-id>" ] }, "properties": [] } }
Mettre à jour un type d'action
Vous pouvez utiliser l'interface de ligne de commande pour modifier les types d'actions créés à l'aide d'un modèle d'intégration.
Pour un type d'action publique, vous ne pouvez pas mettre à jour le propriétaire, vous ne pouvez pas remplacer les propriétés facultatives par des propriétés obligatoires et vous pouvez uniquement ajouter de nouvelles propriétés facultatives.
-
Utilisez la
get-action-typecommande pour obtenir la structure de votre type d'action. Copiez la structure. -
Créez un fichier JSON d'entrée et nommez-le
action.json. Collez-y la structure de type d'action que vous avez copiée à l'étape précédente. Mettez à jour tous les paramètres que vous souhaitez modifier. Vous pouvez également ajouter des paramètres facultatifs.Pour plus d'informations sur les paramètres du fichier d'entrée, consultez la description du fichier de définition d'action dansÉtape 2 : Création d'un fichier de définition du type d'action.
L'exemple suivant montre comment mettre à jour un exemple de type d'action créé avec le modèle d'intégration Lambda. Cet exemple apporte les modifications suivantes :
-
Change le
providernom enTestProvider1. -
Ajoutez une limite de délai d'expiration des tâches de 900 secondes.
-
Ajoute une propriété de configuration d'action nommée
Hostqui est affichée au client à l'aide de l'action.{ "actionType": { "executor": { "configuration": { "lambdaExecutorConfiguration": { "lambdaFunctionArn": "arn:aws:lambda:us-west-2:<account-id>:function:my-function" } }, "type": "Lambda","jobTimeout": 900}, "id": { "category": "Test", "owner": "ThirdParty", "provider": "TestProvider1", "version": "1" }, "inputArtifactDetails": { "minimumCount": 0, "maximumCount": 1 }, "outputArtifactDetails": { "minimumCount": 0, "maximumCount": 1 }, "permissions": { "allowedAccounts": [ "account-id" ] },"properties": { "description": "} }Owned build action parameter description", "optional": true, "noEcho": false, "key": true, "queryable": false, "name": "Host" }
-
-
Sur le terminal ou la ligne de commande, exécutez la update-action-type commande
aws codepipeline update-action-type --cli-input-json file://action.jsonCette commande renvoie la sortie du type d'action correspondant à vos paramètres mis à jour.