Spécification des images de l'environnement d'exécution - Amazon CodeCatalyst

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.

Spécification des images de l'environnement d'exécution

Une image d'environnement d'exécution est un conteneur Docker dans lequel CodeCatalyst s'exécutent des actions de flux de travail. Le conteneur Docker s'exécute sur la plate-forme informatique que vous avez choisie et inclut un système d'exploitation et des outils supplémentaires dont une action de flux de travail peut avoir besoin AWS CLI, tels que Node.js et .tar.

Par défaut, les actions du flux de travail s'exécutent sur l'une des images actives fournies et gérées par CodeCatalyst. Seules les actions de création et de test prennent en charge les images personnalisées. Pour de plus amples informations, veuillez consulter Affectation d'une image Docker d'environnement d'exécution personnalisée à une action.

Images actives

Les images actives sont des images d'environnement d'exécution qui sont entièrement prises en charge par CodeCatalyst des outils préinstallés et qui incluent ceux-ci. Il existe actuellement deux séries d'images actives : l'une publiée en mars 2024 et l'autre publiée en novembre 2022.

Le fait qu'une action utilise une image de mars 2024 ou de novembre 2022 dépend de l'action :

  • Les actions de création et de test ajoutées à un flux de travail le 26 mars 2024 ou après cette date incluront une Container section dans leur YAML définition qui spécifie explicitement une image de mars 2024. Vous pouvez éventuellement supprimer la Container section pour revenir à l'image de novembre 2022.

  • Les actions de création et de test ajoutées à un flux de travail avant le 26 mars 2024 n'incluront Container aucune section dans leur YAML définition et utiliseront par conséquent une image de novembre 2022. Vous pouvez conserver l'image de novembre 2022 ou la mettre à jour. Pour mettre à niveau l'image, ouvrez l'action dans l'éditeur visuel, choisissez l'onglet Configuration, puis sélectionnez l'image de mars 2024 dans la liste déroulante des images docker de l'environnement d'exécution. Cette sélection ajoutera une Container section à la YAML définition de l'action remplie avec l'image de mars 2024 appropriée.

  • Toutes les autres actions utiliseront une image de novembre 2022 ou une image de mars 2024. Pour plus d'informations, consultez la documentation de l'action.

Images de mars 2024

Les images de mars 2024 sont les dernières images fournies par CodeCatalyst. Il existe une image de mars 2024 par combinaison type de calcul/flotte.

Le tableau suivant présente les outils installés sur chaque image de mars 2024.

Outils d'image de mars 2024
Outil CodeCatalyst Amazon EC2 pour Linux x86_64 - CodeCatalystLinux_x86_64:2024_03 CodeCatalyst Lambda pour Linux x86_64 - CodeCatalystLinuxLambda_x86_64:2024_03 CodeCatalyst Amazon EC2 pour Linux Arm64 - CodeCatalystLinux_Arm64:2024_03 CodeCatalyst Lambda pour Linux Arm64 - CodeCatalystLinuxLambda_Arm64:2024_03
AWS CLI 2,1,17 2,1,17 2,1,17 2,1,17
AWS Copilote CLI 1,32.1 1,32.1 1,32.1 1,32.1
Docker 24,0,9 N/A 24,0,9 N/A
Docker Compose 2.23.3 N/A 2.23.3 N/A
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
npm 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 3.11.6 3.11.6 3.11.6
pip 22.3.1 22.3.1 22.3.1 22.3.1
.NET 8,0,100 8,0,100 8,0,100 8,0,100

Images de novembre 2022

Il existe une image de novembre 2022 par combinaison type de calcul/flotte. Une image Windows de novembre 2022 est également disponible avec l'action de génération si vous avez configuré un parc provisionné.

Le tableau suivant montre les outils installés sur chaque image de novembre 2022.

outils d'image de novembre 2022
Outil CodeCatalyst Amazon EC2 pour Linux x86_64 - CodeCatalystLinux_x86_64:2022_11 CodeCatalyst Lambda pour Linux x86_64 - CodeCatalystLinuxLambda_x86_64:2022_11 CodeCatalyst Amazon EC2 pour Linux Arm64 - CodeCatalystLinux_Arm64:2022_11 CodeCatalyst Lambda pour Linux Arm64 - CodeCatalystLinuxLambda_Arm64:2022_11 CodeCatalyst Amazon EC2 pour Windows x86_64 - CodeCatalystWindows_x86_64:2022_11
AWS CLI 2,1,17 2,1,17 2,1,17 2,1,17 2,13,19
AWS Copilote CLI 0.6.0 0.6.0 N/A N/A 1,30.1
Docker 23,01 N/A 23,0.1 N/A N/A
Docker Compose 2.16.0 N/A 2.16.0 N/A N/A
Git 2.40.0 2.40.0 2,39,2 2,39,2 2,42,0
Go 1.20.2 1.20.2 1.20.1 1.20.1 1,19
Gradle 8,0.2 8,0.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
npm 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/A 3,9,15 N/A 3.11.2 N/A
pip 22.2.2 22.2.2 23,0.1 23,0.1 22,0.4
.NET 6,0,407 6,0,407 6,0,406 6,0,406 6,0,414

Et si une image active n'inclut pas les outils dont j'ai besoin ?

Si aucune des images actives fournies par n' CodeCatalyst inclut les outils dont vous avez besoin, plusieurs options s'offrent à vous :

  • Vous pouvez fournir une image Docker d'environnement d'exécution personnalisée qui inclut les outils nécessaires. Pour de plus amples informations, veuillez consulter Affectation d'une image Docker d'environnement d'exécution personnalisée à une action.

    Note

    Si vous souhaitez fournir une image Docker d'environnement d'exécution personnalisée, assurez-vous que Git est installé sur votre image personnalisée.

  • Vous pouvez demander à l'action de création ou de test de votre flux de travail d'installer les outils dont vous avez besoin.

    Par exemple, vous pouvez inclure les instructions suivantes dans la Steps section du YAML code de l'action de compilation ou de test :

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

    Le setup-script l'instruction exécuterait alors le script suivant pour installer le gestionnaire de packages 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

    Pour plus d'informations sur l'action de générationYAML, consultezCréez et testez des actions YAML.

Affectation d'une image Docker d'environnement d'exécution personnalisée à une action

Si vous ne souhaitez pas utiliser une image active fournie par CodeCatalyst, vous pouvez fournir une image Docker d'environnement d'exécution personnalisée. Si vous souhaitez fournir une image personnalisée, assurez-vous que Git y est installé. L'image peut résider dans Docker Hub, Amazon Elastic Container Registry ou dans n'importe quel référentiel public.

Pour savoir comment créer une image Docker personnalisée, consultez la section Conteneuriser une application dans la documentation Docker.

Suivez les instructions suivantes pour attribuer l'image Docker de votre environnement d'exécution personnalisé à une action. Après avoir spécifié une image, elle la CodeCatalyst déploie sur votre plateforme de calcul lorsque l'action démarre.

Note

Les actions suivantes ne prennent pas en charge les images Docker de l'environnement d'exécution personnalisé : Deploy AWS CloudFormation stack, Deploy to ECS et GitHub Actions. Les images Docker de l'environnement d'exécution personnalisé ne prennent pas non plus en charge le type de calcul Lambda.

Visual
Pour attribuer une image Docker à un environnement d'exécution personnalisé à l'aide de l'éditeur visuel
  1. Ouvrez la CodeCatalyst console à l'adresse https://codecatalyst.aws/.

  2. Dans le volet de navigation, choisissez CI/CD, puis Workflows.

  3. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

  4. Choisissez Modifier.

  5. Choisissez Visual.

  6. Dans le diagramme du flux de travail, choisissez l'action qui utilisera l'image Docker de votre environnement d'exécution personnalisé.

  7. Cliquez sur l’onglet Configuration.

  8. En bas de la page, remplissez les champs suivants.

    Image Docker de l'environnement d'exécution - facultatif

    Spécifiez le registre dans lequel votre image est stockée. Les valeurs valides sont les suivantes :

    • CODECATALYST(YAMLéditeur)

      L'image est enregistrée dans le CodeCatalyst registre.

    • Docker Hub (éditeur visuel) ou DockerHub (YAMLéditeur)

      L'image est stockée dans le registre d'images de Docker Hub.

    • Autre registre (éditeur visuel) ou Other (YAMLéditeur)

      L'image est stockée dans un registre d'images personnalisé. Tout registre accessible au public peut être utilisé.

    • Amazon Elastic Container Registry (éditeur visuel) ou ECR (YAMLéditeur)

      L'image est stockée dans un référentiel d'images Amazon Elastic Container Registry. Pour utiliser une image dans un ECR référentiel Amazon, cette action nécessite l'accès à AmazonECR. Pour activer cet accès, vous devez créer un IAMrôle incluant les autorisations suivantes et une politique de confiance personnalisée. (Vous pouvez modifier un rôle existant pour inclure les autorisations et la politique, si vous le souhaitez.)

      Le IAM rôle doit inclure les autorisations suivantes dans sa politique de rôle :

      • ecr:BatchCheckLayerAvailability

      • ecr:BatchGetImage

      • ecr:GetAuthorizationToken

      • ecr:GetDownloadUrlForLayer

      Le IAM rôle doit inclure la politique de confiance personnalisée suivante :

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

      Pour plus d'informations sur la création de IAM rôles, voir Création d'un rôle à l'aide de politiques de confiance personnalisées (console) dans le Guide de IAM l'utilisateur.

      Une fois le rôle créé, vous devez l'attribuer à l'action par le biais d'un environnement. Pour de plus amples informations, veuillez consulter Associer un environnement à une action.

    ECRimageURL, image Docker Hub ou image URL

    Spécifiez l’un des éléments suivants :

    • Si vous utilisez un CODECATALYST registre, définissez l'image sur l'une des images actives suivantes :

      • 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

    • Si vous utilisez un registre Docker Hub, attribuez à l'image le nom de l'image Docker Hub et la balise facultative.

      Exemple : postgres:latest

    • Si vous utilisez un ECR registre Amazon, configurez l'image dans le ECR registre AmazonURI.

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

    • Si vous utilisez un registre personnalisé, définissez l'image sur la valeur attendue par le registre personnalisé.

  9. (Facultatif) Choisissez Valider pour valider le YAML code du flux de travail avant de le valider.

  10. Choisissez Valider, entrez un message de validation, puis choisissez à nouveau Valider.

YAML
Pour attribuer une image Docker à un environnement d'exécution personnalisé à l'aide de l'éditeur YAML
  1. Dans le volet de navigation, choisissez CI/CD, puis Workflows.

  2. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

  3. Choisissez Modifier.

  4. Choisissez YAML.

  5. Recherchez l'action à laquelle vous souhaitez attribuer une image Docker de l'environnement d'exécution.

  6. Dans l'action, ajoutez une Container section, un sous-jacent Registry et Image des propriétés. Pour plus d'informations, consultez la Container description Registry et les Image propriétés Actions de votre action.

  7. (Facultatif) Choisissez Valider pour valider le YAML code du flux de travail avant de le valider.

  8. Choisissez Valider, entrez un message de validation, puis choisissez à nouveau Valider.

Exemples

Les exemples suivants montrent comment attribuer une image Docker d'environnement d'exécution personnalisée à une action dans le fichier de définition du flux de travail.

Exemple : utilisation d'une image Docker d'environnement d'exécution personnalisée pour ajouter la prise en charge de Node.js 18 avec Amazon ECR

L'exemple suivant montre comment utiliser une image Docker d'environnement d'exécution personnalisée pour ajouter la prise en charge de Node.js 18 avec Amazon ECR.

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

Exemple : utilisation d'une image Docker d'environnement d'exécution personnalisée pour ajouter la prise en charge de Node.js 18 avec Docker Hub

L'exemple suivant montre comment utiliser une image Docker d'environnement d'exécution personnalisée pour ajouter la prise en charge de Node.js 18 avec Docker Hub.

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