AWS Lambda - 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à.

AWS Lambda

Consente di eseguire una funzione Lambda come azione nella pipeline. Utilizzando l'oggetto evento che è un input per questa funzione, la funzione ha accesso alla configurazione dell'operazione, alle posizioni degli artefatti di input, alle posizioni degli artefatti di output e ad altre informazioni necessarie per accedere agli artefatti. Per un evento di esempio passato a una funzione di richiamo Lambda, vedereEvento JSON di esempio. Come parte dell'implementazione della funzione Lambda, deve esserci una chiamata a PutJobSuccessResult API o PutJobFailureResult API. In caso contrario, l'esecuzione di questa operazione si blocca fino a che l'operazione non scade. Se specifichi artefatti di output per l'operazione, questi devono essere caricati nel bucket S3 come parte dell'implementazione della funzione.

Importante

Non registrare l'evento JSON CodePipeline inviato a Lambda perché ciò può comportare la registrazione delle credenziali utente nei CloudWatch registri. Il CodePipeline ruolo utilizza un evento JSON per passare credenziali temporanee a Lambda sulartifactCredentials campo. Per un evento di esempio, consultare Evento JSON di esempio.

Tipo di operazione

  • Categoria: Invoke

  • Proprietario: AWS

  • Provider: Lambda

  • Versione: 1

Parametri di configurazione

FunctionName

Campo obbligatorio: sì

FunctionNameè il nome della funzione creata in Lambda.

UserParameters

Required: No

Una stringa che può essere elaborata come input dalla funzione Lambda.

Input artifact (Artefatti di input)

  • Numero di artefatti: 0 to 5

  • Descrizione: L'insieme di artefatti da rendere disponibili alla funzione Lambda.

Artefatti di output

  • Numero di artefatti: 0 to 5

  • Descrizione: L'insieme di artefatti prodotti come output dalla funzione Lambda.

Variabili di output

Questa azione produrrà come variabili tutte le coppie chiave-valore incluse nellaoutputVariables sezione della richiesta PutJobSuccessResult API.

Per ulteriori informazioni sulle variabili in CodePipeline, consultaVariables.

Esempio di configurazione dell'operazione

YAML
Name: Lambda Actions: - Name: Lambda ActionTypeId: Category: Invoke Owner: AWS Provider: Lambda Version: '1' RunOrder: 1 Configuration: FunctionName: myLambdaFunction UserParameters: 'http://192.0.2.4' OutputArtifacts: [] InputArtifacts: [] Region: us-west-2
JSON
{ "Name": "Lambda", "Actions": [ { "Name": "Lambda", "ActionTypeId": { "Category": "Invoke", "Owner": "AWS", "Provider": "Lambda", "Version": "1" }, "RunOrder": 1, "Configuration": { "FunctionName": "myLambdaFunction", "UserParameters": "http://192.0.2.4" }, "OutputArtifacts": [], "InputArtifacts": [], "Region": "us-west-2" } ] },

Evento JSON di esempio

L'azione Lambda invia un evento JSON che contiene l'ID del lavoro, la configurazione dell'azione della pipeline, le posizioni degli artefatti di input e output e qualsiasi informazione di crittografia per gli artefatti. L'operatore accede a questi dettagli per completare l'azione Lambda. Per ulteriori informazioni, consulta Dettagli del processo. Di seguito è riportato un esempio di evento.

{ "CodePipeline.job": { "id": "11111111-abcd-1111-abcd-111111abcdef", "accountId": "111111111111", "data": { "actionConfiguration": { "configuration": { "FunctionName": "MyLambdaFunction", "UserParameters": "input_parameter" } }, "inputArtifacts": [ { "location": { "s3Location": { "bucketName": "bucket_name", "objectKey": "filename" }, "type": "S3" }, "revision": null, "name": "ArtifactName" } ], "outputArtifacts": [], "artifactCredentials": { "secretAccessKey": "secret_key", "sessionToken": "session_token", "accessKeyId": "access_key_ID" }, "continuationToken": "token_ID", "encryptionKey": { "id": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "type": "KMS" } } } }

L'evento JSON fornisce i seguenti dettagli del lavoro per l'azione Lambda in CodePipeline:

  • id: l'ID univoco generato dal sistema del processo.

  • accountId: l'IDAWS dell'account associato al lavoro.

  • data: altre informazioni richieste da un esecutore del processo per completare il processo.

    • actionConfiguration: i parametri di operazione per l'operazione Lambda. Per le definizioni, consulta Parametri di configurazione .

    • inputArtifacts: l'artefatto fornito all'operazione.

      • location: la posizione dello store degli artefatti.

        • s3Location: le informazioni sulla posizione dell'artefatto di input per l'operazione.

          • bucketName: il nome dell'archivio degli artefatti della pipeline per l'azione (ad esempio, un bucket Amazon S3 denominato codepipeline-us-east -2-1234567890).

          • objectKey: il nome dell'applicazione (ad esempio, CodePipelineDemoApplication.zip).

        • type: il tipo di artefatto nella posizione. Al momento, S3 è l'unico tipo di artefatto valido.

      • revision: l'ID revisione dell'artefatto. A seconda del tipo di oggetto, può essere un commit ID (GitHub) o un ID di revisione (Amazon Simple Storage Service). Per ulteriori informazioni, consulta ArtifactRevision.

      • name: il nome dell'artefatto da utilizzare, ad esempio MyApp.

    • outputArtifacts: l'output dell'operazione.

      • location: la posizione dello store degli artefatti.

        • s3Location: le informazioni sulla posizione dell'artefatto di output per l'operazione.

          • bucketName: il nome dell'archivio degli artefatti della pipeline per l'azione (ad esempio, un bucket Amazon S3 denominato codepipeline-us-east -2-1234567890).

          • objectKey: il nome dell'applicazione (ad esempio, CodePipelineDemoApplication.zip).

        • type: il tipo di artefatto nella posizione. Al momento, S3 è l'unico tipo di artefatto valido.

      • revision: l'ID revisione dell'artefatto. A seconda del tipo di oggetto, può essere un commit ID (GitHub) o un ID di revisione (Amazon Simple Storage Service). Per ulteriori informazioni, consulta ArtifactRevision.

      • name: il nome dell'output di un artefatto, ad esempio MyApp.

    • artifactCredentials: le credenziali diAWS sessione utilizzate per accedere agli artefatti di input e output nel bucket Amazon S3. Queste credenziali sono credenziali temporanee emesse da AWS Security Token Service (AWS STS).

      • secretAccessKey: la chiave di accesso segreta per la sessione.

      • sessionToken: il token per la sessione.

      • accessKeyId: la chiave di accesso segreta per la sessione.

    • continuationToken: un token generato dall'operazione. Le operazioni future utilizzano questo token per identificare l'istanza in esecuzione dell'operazione. Al termine dell'operazione, non è necessario fornire alcun token di continuazione.

    • encryptionKey: la chiave di crittografia utilizzata per crittografare i dati nello store degli artefatti, ad esempio una chiave AWS KMS. Se non è definita, viene utilizzata la chiave predefinita per Amazon Simple Storage Service.

      • id: l'ID utilizzato per identificare la chiave. Per una chiave AWS KMS, puoi utilizzare l'ID della chiave, l'ARN della chiave o l'ARN dell'alias.

      • type: il tipo di chiave di crittografia, ad esempio una chiave AWS KMS.

Le risorse correlate seguenti possono essere utili durante l'utilizzo di questa operazione.