Specificazione delle immagini dell'ambiente di runtime - Amazon CodeCatalyst

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

Specificazione delle immagini dell'ambiente di runtime

Un'immagine di ambiente di runtime è un contenitore Docker all'interno del quale vengono CodeCatalyst eseguite le azioni del flusso di lavoro. Il contenitore Docker viene eseguito sulla piattaforma di elaborazione prescelta e include un sistema operativo e strumenti aggiuntivi di cui potrebbe aver bisogno un'azione di workflow, come Node.js AWS CLI e.tar.

Per impostazione predefinita, le azioni del flusso di lavoro verranno eseguite su una delle immagini attive fornite e gestite da. CodeCatalyst Solo le azioni di compilazione e test supportano immagini personalizzate. Per ulteriori informazioni, consulta Assegnazione di un'immagine Docker in un ambiente di runtime personalizzato a un'azione.

Immagini attive

Le immagini attive sono immagini di ambiente di runtime che sono completamente supportate CodeCatalyst e includono strumenti preinstallati. Attualmente esistono due set di immagini attive: uno rilasciato a marzo 2024 e l'altro rilasciato a novembre 2022.

Il fatto che un'azione utilizzi un'immagine di marzo 2024 o novembre 2022 dipende dall'azione:

Immagini di marzo 2024

Le immagini di marzo 2024 sono le ultime immagini fornite da. CodeCatalyst Esiste un'immagine di marzo 2024 per combinazione di tipo di computazione/parco macchine.

La tabella seguente mostra gli strumenti installati su ogni immagine di marzo 2024.

strumenti di immagine di marzo 2024
Strumento CodeCatalyst Amazon EC2 per Linux x86_64 - CodeCatalystLinux_x86_64:2024_03 CodeCatalyst Lambda per Linux x86_64 - CodeCatalystLinuxLambda_x86_64:2024_03 CodeCatalyst Amazon EC2 per Linux Arm64 - CodeCatalystLinux_Arm64:2024_03 CodeCatalyst Lambda per Linux Arm64 - CodeCatalystLinuxLambda_Arm64:2024_03
AWS CLI 2.15.17 2,15,17 2,15,17 2,15,17
AWS Copilota CLI 1.32.1 1,32,1 1,32,1 1,32,1
Docker 24,9 N/D 24,9 N/D
Docker Compose 2.23.3 N/D 2.23.3 N/D
Git 2,43,0 2,43,0 2,43,0 2,43,0
Go 1,21,5 1,21,5 1,21,5 1,21,5
Gradle 8,5 8,5 8,5 8,5
Java Corretto 17 Corretto 17 Corretto 17 Corretto 17
Maven 3.9.6 3,9,6 3,9,6 3,9,6
Node.js 18,19,0 18,19,0 18,19,0 18,19,0
giri/min 10.2.3 10,2,3 10,2,3 10,2,3
Python 3,9,18 3,9,18 3,9,18 3,9,18
Python3 3,11,6 311,6 311,6 311,6
pip 22,31 22,31 22,31 22,31
.NET 8,0100 8,0100 8,0100 8,0100

Immagini di novembre 2022

È disponibile un'immagine di novembre 2022 per combinazione di tipo di computazione/flotta. È disponibile anche un'immagine Windows di novembre 2022 con l'azione di creazione se hai configurato una flotta predisposta.

La tabella seguente mostra gli strumenti installati in ogni immagine di novembre 2022.

strumenti di immagine di novembre 2022
Strumento CodeCatalyst Amazon EC2 per Linux x86_64 - CodeCatalystLinux_x86_64:2022_11 CodeCatalyst Lambda per Linux x86_64 - CodeCatalystLinuxLambda_x86_64:2022_11 CodeCatalyst Amazon EC2 per Linux Arm64 - CodeCatalystLinux_Arm64:2022_11 CodeCatalyst Lambda per Linux Arm64 - CodeCatalystLinuxLambda_Arm64:2022_11 CodeCatalyst Amazon EC2 per Windows x86_64 - CodeCatalystWindows_x86_64:2022_11
AWS CLI 2.15.17 2,15,17 2,15,17 2,15,17 2,13,19
AWS Copilota CLI 0.6.0 0,6,0 N/D N/D 1,30,1
Docker 23,01 N/D 23,1 N/D N/D
Docker Compose 2.16.0 N/D 2.16.0 N/D N/D
Git 2.40.0 2.40.0 2,39,2 2,339,2 2,42,0
Go 1.20.2 1.20.2 1,20.1 1,20.1 1,19
Gradle 80,2 80,2 8.0.1 8.0.1 8.3
Java Corretto 17 Corretto 17 Corretto 17 Corretto 17 Corretto 17
Maven 3.9.4 3,9,4 3.9.0 3.9.0 3,9,4
Node.js 16,20,2 16,20,2 16,19,1 16,14,2 16,20,0
giri/min 8.19.4 8,19,4 8,19,3 8,5,0 8,19,4
Python 3,9,15 2,7,18 3.11.2 2,7,18 3,9,13
Python3 N/D 3,9,15 N/D 3.11.2 N/D
pip 222,2 222,2 23,1 23,1 22,4
.NET 6,0,407 6,0,407 6,0,406 6,0,406 6,0,414

Cosa succede se un'immagine attiva non include gli strumenti di cui ho bisogno?

Se nessuna delle immagini attive fornite da CodeCatalyst include gli strumenti necessari, hai un paio di opzioni:

  • Puoi fornire un'immagine Docker per un ambiente di runtime personalizzato che includa gli strumenti necessari. Per ulteriori informazioni, consulta Assegnazione di un'immagine Docker in un ambiente di runtime personalizzato a un'azione.

    Nota

    Se vuoi fornire un'immagine Docker per un ambiente di runtime personalizzato, assicurati che nell'immagine personalizzata sia installato Git.

  • Puoi fare in modo che l'azione di compilazione o test del tuo flusso di lavoro installi gli strumenti di cui hai bisogno.

    Ad esempio, puoi includere le seguenti istruzioni nella Steps sezione del YAML codice dell'azione di compilazione o test:

    Configuration: Steps: - Run: ./setup-script

    Il setup-script l'istruzione eseguirebbe quindi il seguente script per installare il gestore di pacchetti Node (npm):

    #!/usr/bin/env bash echo "Setting up environment" touch ~/.bashrc curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash source ~/.bashrc nvm install v16.1.0 source ~/.bashrc

    Per ulteriori informazioni sull'azione di compilazioneYAML, vedereAzioni di creazione e test YAML.

Assegnazione di un'immagine Docker in un ambiente di runtime personalizzato a un'azione

Se non desideri utilizzare un'immagine Active fornita da CodeCatalyst, puoi fornire un'immagine Docker per un ambiente di runtime personalizzato. Se vuoi fornire un'immagine personalizzata, assicurati che abbia Git installato al suo interno. L'immagine può risiedere in Docker Hub, Amazon Elastic Container Registry o in qualsiasi archivio pubblico.

Per sapere come creare un'immagine Docker personalizzata, consulta Containerizzare un'applicazione nella documentazione Docker.

Usa le seguenti istruzioni per assegnare l'immagine Docker del tuo ambiente di runtime personalizzato a un'azione. Dopo aver specificato un'immagine, la CodeCatalyst distribuisce sulla tua piattaforma di elaborazione all'inizio dell'azione.

Nota

Le seguenti azioni non supportano immagini Docker in ambiente di runtime personalizzate: Deploy AWS CloudFormation stack, Deploy to e GitHub Actions. InoltreECS, le immagini Docker dell'ambiente di runtime personalizzato non supportano il tipo di calcolo Lambda.

Visual
Per assegnare un'immagine Docker all'ambiente di runtime personalizzato utilizzando l'editor visivo
  1. Apri la CodeCatalyst console all'indirizzo https://codecatalyst.aws/.

  2. Nel riquadro di navigazione, scegli CI/CD, quindi scegli Flussi di lavoro.

  3. Scegli il nome del tuo flusso di lavoro. Puoi filtrare in base al nome del repository o del ramo di origine in cui è definito il flusso di lavoro oppure filtrare in base al nome o allo stato del flusso di lavoro.

  4. Scegli Modifica.

  5. Scegli Visual.

  6. Nel diagramma del flusso di lavoro, scegli l'azione che utilizzerà l'immagine Docker del tuo ambiente di runtime personalizzato.

  7. Scegli la scheda Configurazione.

  8. Nella parte inferiore, compila i seguenti campi.

    Immagine Docker in ambiente di runtime - opzionale

    Specificate il registro in cui è archiviata l'immagine. I valori validi includono:

    • CODECATALYST(YAMLeditor)

      L'immagine viene memorizzata nel CodeCatalyst registro.

    • Docker Hub (editor visivo) o DockerHub (YAMLeditor)

      L'immagine è memorizzata nel registro delle immagini di Docker Hub.

    • Altro registro (editor visivo) o Other (YAMLeditor)

      L'immagine viene memorizzata in un registro di immagini personalizzato. È possibile utilizzare qualsiasi registro disponibile pubblicamente.

    • Amazon Elastic Container Registry (editor visivo) o ECR (YAMLeditor)

      L'immagine è archiviata in un repository di immagini di Amazon Elastic Container Registry. Per utilizzare un'immagine in un ECR repository Amazon, questa azione richiede l'accesso ad AmazonECR. Per abilitare questo accesso, devi creare un IAMruolo che includa le seguenti autorizzazioni e una politica di fiducia personalizzata. (Se lo desideri, puoi modificare un ruolo esistente per includere le autorizzazioni e la politica.)

      Il IAM ruolo deve includere le seguenti autorizzazioni nella sua politica del ruolo:

      • ecr:BatchCheckLayerAvailability

      • ecr:BatchGetImage

      • ecr:GetAuthorizationToken

      • ecr:GetDownloadUrlForLayer

      Il IAM ruolo deve includere la seguente politica di fiducia personalizzata:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

      Per ulteriori informazioni sulla creazione di IAM ruoli, vedere Creazione di un ruolo utilizzando criteri di fiducia personalizzati (console) nella Guida per l'IAMutente.

      Dopo aver creato il ruolo, è necessario assegnarlo all'azione tramite un ambiente. Per ulteriori informazioni, consulta Associare un ambiente a un'azione.

    ECRimmagineURL, immagine Docker Hub o immagine URL

    Specifica una delle seguenti proprietà:

    • Se utilizzi un CODECATALYST registro, imposta l'immagine su una delle seguenti immagini attive:

      • CodeCatalystLinux_x86_64:2024_03

      • CodeCatalystLinux_x86_64:2022_11

      • CodeCatalystLinux_Arm64:2024_03

      • CodeCatalystLinux_Arm64:2022_11

      • CodeCatalystLinuxLambda_x86_64:2024_03

      • CodeCatalystLinuxLambda_x86_64:2022_11

      • CodeCatalystLinuxLambda_Arm64:2024_03

      • CodeCatalystLinuxLambda_Arm64:2022_11

      • CodeCatalystWindows_x86_64:2022_11

    • Se utilizzi un registro Docker Hub, imposta l'immagine sul nome dell'immagine Docker Hub e sul tag opzionale.

      Esempio: postgres:latest

    • Se utilizzi un ECR registro Amazon, imposta l'immagine sul ECR registro AmazonURI.

      Esempio: 111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo

    • Se utilizzi un registro personalizzato, imposta l'immagine sul valore previsto dal registro personalizzato.

  9. (Facoltativo) Scegliete Convalida per convalidare il YAML codice del flusso di lavoro prima di eseguire il commit.

  10. Scegliete Commit, inserite un messaggio di commit e scegliete nuovamente Commit.

YAML
Per assegnare un'immagine Docker all'ambiente di runtime personalizzato utilizzando l'editor YAML
  1. Nel riquadro di navigazione, scegli CI/CD, quindi scegli Flussi di lavoro.

  2. Scegli il nome del tuo flusso di lavoro. Puoi filtrare in base al nome del repository o del ramo di origine in cui è definito il flusso di lavoro oppure filtrare in base al nome o allo stato del flusso di lavoro.

  3. Scegli Modifica.

  4. Scegli YAML.

  5. Trova l'azione a cui vuoi assegnare un'immagine Docker in un ambiente di runtime.

  6. Nell'azione, aggiungi una Container sezione e le proprietà sottostantiRegistry. Image Per ulteriori informazioni, consultate la Container descrizione Registry e Image le proprietà nella sezione Azioni dedicata all'azione.

  7. (Facoltativo) Scegliete Convalida per convalidare il YAML codice del flusso di lavoro prima di eseguire il commit.

  8. Scegliete Commit, inserite un messaggio di commit e scegliete nuovamente Commit.

Esempi

Gli esempi seguenti mostrano come assegnare un'immagine Docker di un ambiente di runtime personalizzato a un'azione nel file di definizione del flusso di lavoro.

Esempio: utilizzo di un'immagine Docker in un ambiente di runtime personalizzato per aggiungere il supporto per Node.js 18 con Amazon ECR

L'esempio seguente mostra come utilizzare un'immagine Docker in un ambiente di runtime personalizzato per aggiungere il supporto per Node.js 18 con Amazon ECR.

Configuration: Container: Registry: ECR Image: public.ecr.aws/amazonlinux/amazonlinux:2023

Esempio: utilizzo di un'immagine Docker in un ambiente di runtime personalizzato per aggiungere il supporto per Node.js 18 con Docker Hub

L'esempio seguente mostra come utilizzare un'immagine Docker in un ambiente di runtime personalizzato per aggiungere il supporto per Node.js 18 con Docker Hub.

Configuration: Container: Registry: DockerHub Image: node:18.18.2