View a markdown version of this page

Utilizzo dei tipi di azione - AWS CodePipeline

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo dei tipi di azione

I tipi di azione sono azioni preconfigurate che tu, in qualità di provider, crei per i clienti utilizzando uno dei modelli di integrazione supportati in AWS CodePipeline.

È possibile richiedere, visualizzare e aggiornare i tipi di azione. Se il tipo di azione è stato creato per il tuo account come proprietario, puoi utilizzarlo AWS CLI per visualizzare o aggiornare le proprietà e la struttura del tipo di azione. Se sei il fornitore o il proprietario del tipo di azione, i tuoi clienti possono scegliere l'azione e aggiungerla alle proprie pipeline dopo che sarà disponibile in CodePipeline.

Nota

Le azioni vengono create all'custominterno del owner campo da eseguire con un collaboratore. Non le crei con un modello di integrazione. Per informazioni sulle azioni personalizzate, vedereCrea e aggiungi un'azione personalizzata in CodePipeline.

Componenti del tipo di azione

I seguenti componenti costituiscono un tipo di azione.

  • ID del tipo di azione: l'ID è composto dalla categoria, dal proprietario, dal provider e dalla versione. L'esempio seguente mostra un ID del tipo di azione con un proprietario diThirdParty, una categoria diTest, un provider denominato TestProvider e una versione di1.

    { "Category": "Test", "Owner": "ThirdParty", "Provider": "TestProvider", "Version": "1" },
  • Configurazione dell'esecutore: il modello di integrazione, o motore di azione, specificato al momento della creazione dell'azione. Quando si specifica l'esecutore per un tipo di azione, si sceglie uno dei due tipi:

    • Lambda: il proprietario del tipo di azione scrive l'integrazione come una funzione Lambda, che viene richiamata CodePipeline ogni volta che c'è un job disponibile per l'azione.

    • JobWorker: il proprietario del tipo di azione scrive l'integrazione come un job worker che esegue il polling dei lavori disponibili nelle pipeline dei clienti. L'operatore esegue quindi il lavoro e invia nuovamente il risultato del lavoro CodePipeline utilizzando le API. CodePipeline

      Nota

      Il modello di integrazione dei lavoratori non è il modello di integrazione preferito.

  • Elementi di input e output: limiti per gli artefatti che il proprietario del tipo di azione designa per i clienti dell'azione.

  • Autorizzazioni: la strategia delle autorizzazioni che designa i clienti che possono accedere al tipo di azione di terze parti. Le strategie di autorizzazione disponibili dipendono dal modello di integrazione scelto per il tipo di azione.

  • URL: collegamenti diretti a risorse con cui il cliente può interagire, come la pagina di configurazione del proprietario del tipo di azione.

Richiedi un tipo di azione

Quando un nuovo tipo di CodePipeline azione viene richiesto da un provider di terze parti, il tipo di azione viene creato per il proprietario del tipo di azione in CodePipeline e il proprietario può gestire e visualizzare il tipo di azione.

Un tipo di azione può essere un'azione privata o pubblica. Quando il tipo di azione viene creato, è privato. Per richiedere che un tipo di azione venga modificato in un'azione pubblica, contatta il team CodePipeline di assistenza.

Prima di creare il file di definizione dell'azione, le risorse per l'esecutore e la richiesta del tipo di azione per il CodePipeline team, devi scegliere un modello di integrazione.

Fase 1: Scegli il tuo modello di integrazione

Scegli il tuo modello di integrazione e quindi crea la configurazione per quel modello. Dopo aver scelto il modello di integrazione, è necessario configurare le risorse di integrazione.

  • Per il modello di integrazione Lambda, crei una funzione Lambda e aggiungi le autorizzazioni. Aggiungi le autorizzazioni alla funzione Lambda dell'integratore per fornire al servizio le autorizzazioni per richiamarlo utilizzando l'entità del CodePipeline servizio:. CodePipeline codepipeline.amazonaws.com Le autorizzazioni possono essere aggiunte utilizzando o la riga di comando. CloudFormation

    • Esempio di aggiunta di autorizzazioni utilizzando: 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
    • Documentazione per la riga di comando

  • Per il modello di integrazione dei job worker, si crea un'integrazione con un elenco di account consentiti in cui il job worker effettua il polling delle offerte di lavoro con le CodePipeline API.

Passaggio 2: creare un file di definizione del tipo di azione

Si definisce un tipo di azione in un file di definizione del tipo di azione utilizzando JSON. Nel file, includi la categoria di azione, il modello di integrazione utilizzato per gestire il tipo di azione e le proprietà di configurazione.

Nota

Dopo aver creato un'azione pubblica, non è possibile modificare la proprietà del tipo di azione in properties da optional arequired. Inoltre, non puoi modificare ilowner.

Per ulteriori informazioni sui parametri del file di definizione del tipo di azione, consulta ActionTypeDeclaration e UpdateActionType nella sezione CodePipeline API Reference.

Il file di definizione del tipo di azione contiene otto sezioni:

  • description: la descrizione del tipo di azione da aggiornare.

  • executor: informazioni sull'esecutore per un tipo di azione creato con un modello di integrazione supportato, Lambda ojob worker. Puoi fornire solo uno dei due jobWorkerExecutorConfiguration olambdaExecutorConfiguration, in base al tipo di esecutore.

    • configuration: Risorse per la configurazione del tipo di azione, in base al modello di integrazione scelto. Per il modello di integrazione Lambda, usa la funzione Lambda ARN. Per il modello di integrazione del lavoratore di lavoro, utilizza l'account o l'elenco di account da cui viene eseguito il lavoratore.

    • jobTimeout: il timeout in secondi per il lavoro. L'esecuzione di un'azione può essere costituita da più lavori. Questo è il timeout per un singolo processo e non per l'intera esecuzione dell'azione.

      Nota

      Per il modello di integrazione Lambda, il timeout massimo è di 15 minuti.

    • policyStatementsTemplate: la dichiarazione politica che specifica le autorizzazioni nell'account del CodePipeline cliente necessarie per eseguire correttamente l'esecuzione di un'azione.

    • type: il modello di integrazione utilizzato per creare e aggiornare il tipo di azione, oLambda. JobWorker

  • id: la categoria, il proprietario, il provider e l'ID di versione per il tipo di azione:

    • category: Il tipo di azione può essere intrapresa nella fase: Source, Build, Deploy, Test, Invoke o Approval.

    • provider: il fornitore del tipo di azione richiamata, ad esempio la società del fornitore o il nome del prodotto. Il nome del provider viene fornito al momento della creazione del tipo di azione.

    • owner: Il creatore del tipo di azione chiamato: AWS oThirdParty.

    • version: Una stringa utilizzata per definire la versione del tipo di azione. Per la prima versione, imposta il numero di versione su 1.

  • inputArtifactDetails: il numero di artefatti da aspettarsi dalla fase precedente della pipeline.

  • outputArtifactDetails: il numero di artefatti da aspettarsi dal risultato della fase del tipo di azione.

  • permissions: dettagli che identificano gli account con le autorizzazioni per utilizzare il tipo di azione.

  • properties: i parametri necessari per il completamento delle attività del progetto.

    • description: la descrizione della proprietà che viene visualizzata agli utenti.

    • optional: se la proprietà di configurazione è facoltativa.

    • noEcho: se il valore del campo immesso dal cliente viene omesso dal registro. In caso true affermativo, il valore viene cancellato quando viene restituito con una richiesta GetPipeline API.

    • key: se la proprietà di configurazione è una chiave.

    • queryable: se la proprietà viene utilizzata con il polling. Un tipo di azione può avere fino a una proprietà interrogabile. Se una è presente, la proprietà deve essere obbligatoria e non segreta.

    • name: il nome della proprietà che viene visualizzato agli utenti.

  • urls: agli utenti CodePipeline viene visualizzato un elenco degli URL.

    • entityUrlTemplate: URL alle risorse esterne per il tipo di azione, ad esempio una pagina di configurazione.

    • executionUrlTemplate: URL ai dettagli dell'ultima esecuzione dell'azione.

    • revisionUrlTemplate: URL visualizzato nella CodePipeline console alla pagina in cui i clienti possono aggiornare o modificare la configurazione dell'azione esterna.

    • thirdPartyConfigurationUrl: URL di una pagina in cui gli utenti possono iscriversi a un servizio esterno ed eseguire la configurazione iniziale dell'azione fornita da quel servizio.

Il codice seguente mostra un esempio di file di definizione del tipo di azione.

{ "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" } } }

Fase 3: Registrare l'integrazione con CodePipeline

Per registrare il tipo di azione con CodePipeline, contatta il team CodePipeline di assistenza con la tua richiesta.

Il team CodePipeline di assistenza registra la nuova integrazione del tipo di azione apportando modifiche al codebase del servizio. CodePipeline registra due nuove azioni: un'azione pubblica e un'azione privata. Si utilizza l'azione privata per i test e poi, quando è pronta, si attiva l'azione pubblica per servire il traffico dei clienti.

Per registrare una richiesta di integrazione Lambda
  • Invia una richiesta al team CodePipeline di assistenza utilizzando il seguente modulo.

    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 Testing Initial 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 Regioni AWS where your action will be available 5. Will this be available as a public action?
Per registrare una richiesta di integrazione di un lavoratore
  • Invia una richiesta al team CodePipeline di assistenza utilizzando il seguente modulo.

    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 Testing Initial 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 Regioni AWS where your action will be available 5. Will this be available as a public action?

Fase 4: Attiva la tua nuova integrazione

Contatta il team CodePipeline di assistenza quando sei pronto per utilizzare la nuova integrazione pubblicamente.

Aggiungi un tipo di azione disponibile a una pipeline (console)

Aggiungete il vostro tipo di azione a una pipeline in modo da poterla testare. Puoi farlo creando una nuova pipeline o modificandone una esistente.

Nota

Se il tuo tipo di azione è un'azione di categoria di origine, creazione o distribuzione, puoi aggiungerla creando una pipeline. Se il tuo tipo di azione è nella categoria di test, devi aggiungerlo modificando una pipeline esistente.

Per aggiungere il tipo di azione a una pipeline esistente dalla console CodePipeline
  1. Accedi Console di gestione AWS e apri la CodePipeline console all'indirizzo http://console.aws.amazon.com/codesuite/codepipeline/home.

  2. Nell'elenco delle pipeline, scegli la pipeline in cui desideri aggiungere il tipo di azione.

  3. Nella pagina di visualizzazione di riepilogo della pipeline, scegliete Modifica.

  4. Scegli di modificare la fase. Nella fase in cui desideri aggiungere il tipo di azione, scegli Aggiungi gruppo di azioni. Viene visualizzata la pagina Modifica azione.

  5. Nella pagina Modifica azione, in Nome azione, inserisci un nome per l'azione. Questo è il nome che viene visualizzato per la fase della pipeline.

  6. In Action provider, scegli il tipo di azione dall'elenco.

    Nota che il valore nell'elenco si basa su quello provider specificato nel file di definizione del tipo di azione.

  7. In Input artifacts, immettete il nome dell'artefatto nel seguente formato:

    Artifactname::FileName

    Nota che le quantità minime e massime consentite sono definite in base a inputArtifactDetails quanto specificato nel file di definizione del tipo di azione.

  8. Scegliete Connetti a < Action_Name >.

    Si apre una finestra del browser che si collega al sito web che hai creato per il tuo tipo di azione.

  9. Accedi al tuo sito web come cliente e completa i passaggi che un cliente esegue per utilizzare il tuo tipo di azione. I passaggi variano a seconda della categoria di azione, del sito Web e della configurazione, ma in genere includono un'azione di completamento che riporta il cliente alla pagina Modifica azione.

  10. Nella pagina CodePipeline Modifica azione, vengono visualizzati i campi di configurazione aggiuntivi per l'azione. I campi visualizzati sono le proprietà di configurazione specificate nel file di definizione dell'azione. Inserisci le informazioni nei campi personalizzati per il tuo tipo di azione.

    Ad esempio, se il file di definizione dell'azione specifica una proprietà denominataHost, nella pagina Modifica azione relativa all'azione viene visualizzato un campo con l'etichetta Host.

  11. In Output artifacts, inserisci il nome dell'artefatto nel seguente formato:

    Artifactname::FileName

    Nota che le quantità minime e massime consentite sono definite in base a outputArtifactDetails quanto specificato nel file di definizione del tipo di azione.

  12. Scegliete Fine per tornare alla pagina dei dettagli della pipeline.

    Nota

    I tuoi clienti possono opzionalmente utilizzare la CLI per aggiungere il tipo di azione alla loro pipeline.

  13. Per testare la tua azione, apporta una modifica alla fonte specificata nella fase di origine della pipeline o segui i passaggi descritti in Avvio manuale di una pipeline.

Per creare una pipeline con il tuo tipo di azione, segui i passaggi indicati Crea una pipeline, fasi e azioni e scegli il tipo di azione tra tutte le fasi da testare.

Visualizza un tipo di azione

È possibile utilizzare la CLI per visualizzare il tipo di azione. Usa il get-action-type comando per visualizzare i tipi di azione che sono stati creati utilizzando un modello di integrazione.

Per visualizzare un tipo di azione
  1. Crea un file JSON di input e assegna un nome al filefile.json. Aggiungi l'ID del tipo di azione in formato JSON come mostrato nell'esempio seguente.

    { "category": "Test", "owner": "ThirdParty", "provider": "TestProvider", "version": "1" }
  2. In una finestra di terminale o nella riga di comando, esegui il get-action-type comando.

    aws codepipeline get-action-type --cli-input-json file://file.json

    Questo comando restituisce l'output della definizione dell'azione per un tipo di azione. Questo esempio mostra un tipo di azione creato con il modello di integrazione 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": [] } }

Aggiornare un tipo di azione

È possibile utilizzare la CLI per modificare i tipi di azione creati con un modello di integrazione.

Per un tipo di azione pubblico, non puoi aggiornare il proprietario, non puoi modificare le proprietà opzionali in obbligatorie e puoi solo aggiungere nuove proprietà opzionali.

  1. Usa il get-action-type comando per ottenere la struttura per il tuo tipo di azione. Copia la struttura.

  2. Crea un file JSON di input e assegnagli un nome. action.json Incolla la struttura del tipo di azione che hai copiato nel passaggio precedente. Aggiorna tutti i parametri che desideri modificare. Puoi anche aggiungere parametri opzionali.

    Per ulteriori informazioni sui parametri del file di input, vedete la descrizione del file di definizione delle azioni inPassaggio 2: creare un file di definizione del tipo di azione.

    L'esempio seguente mostra come aggiornare un tipo di azione di esempio creato con il modello di integrazione Lambda. Questo esempio apporta le seguenti modifiche:

    • Cambia il provider nome inTestProvider1.

    • Aggiungi un limite di timeout del lavoro di 900 secondi.

    • Aggiunge una proprietà di configurazione dell'azione denominata Host che viene visualizzata al cliente utilizzando l'azione.

      { "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" } } }
  3. Nel terminale o nella riga di comando, esegui il update-action-type comando

    aws codepipeline update-action-type --cli-input-json file://action.json

    Questo comando restituisce l'output del tipo di azione in modo che corrisponda ai parametri aggiornati.