Especificação de imagens do ambiente de execução - Amazon CodeCatalyst

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Especificação de imagens do ambiente de execução

Uma imagem do ambiente de tempo de execução é um contêiner do Docker no qual são CodeCatalyst executadas ações de fluxo de trabalho. O contêiner do Docker é executado na plataforma de computação escolhida e inclui um sistema operacional e ferramentas extras que uma ação de fluxo de trabalho pode precisar, como o AWS CLI Node.js e .tar.

Por padrão, as ações do fluxo de trabalho serão executadas em uma das imagens ativas fornecidas e mantidas pela CodeCatalyst. Somente ações de criação e teste oferecem suporte a imagens personalizadas. Para obter mais informações, consulte Atribuindo uma imagem Docker de um ambiente de tempo de execução personalizado a uma ação.

Imagens ativas

Imagens ativas são imagens do ambiente de execução que são totalmente suportadas CodeCatalyst e incluem ferramentas pré-instaladas. Atualmente, existem dois conjuntos de imagens ativas: um lançado em março de 2024 e outro lançado em novembro de 2022.

Se uma ação usa uma imagem de março de 2024 ou novembro de 2022 depende da ação:

  • As ações de criação e teste adicionadas a um fluxo de trabalho em ou após 26 de março de 2024 incluirão uma Container seção em sua YAML definição que especifica explicitamente uma imagem de março de 2024. Opcionalmente, você pode remover a Container seção para voltar à imagem de novembro de 2022.

  • As ações de criação e teste que foram adicionadas a um fluxo de trabalho antes de 26 de março de 2024 não incluirão uma Container seção em sua YAML definição e, consequentemente, usarão uma imagem de novembro de 2022. Você pode manter a imagem de novembro de 2022 ou atualizá-la. Para atualizar a imagem, abra a ação no editor visual, escolha a guia Configuração e selecione a imagem de março de 2024 na lista suspensa de imagens docker do ambiente Runtime. Essa seleção adicionará uma Container seção à YAML definição da ação que é preenchida com a imagem apropriada de março de 2024.

  • Todas as outras ações usarão uma imagem de novembro de 2022 ou uma imagem de março de 2024. Para obter mais informações, consulte a documentação da ação.

Imagens de março de 2024

As imagens de março de 2024 são as imagens mais recentes fornecidas por CodeCatalyst. Há uma imagem de março de 2024 por combinação de tipo de computação/frota.

A tabela a seguir mostra as ferramentas instaladas em cada imagem de março de 2024.

Ferramentas de imagem de março de 2024
Ferramenta CodeCatalyst Amazon EC2 para Linux x86_64 - CodeCatalystLinux_x86_64:2024_03 CodeCatalyst Lambda para Linux x86_64 - CodeCatalystLinuxLambda_x86_64:2024_03 CodeCatalyst Amazon EC2 para Linux Arm64 - CodeCatalystLinux_Arm64:2024_03 CodeCatalyst Lambda para Linux Arm64 - CodeCatalystLinuxLambda_Arm64:2024_03
AWS CLI 2.15.17 2.15.17 2.15.17 2.15.17
AWS Copiloto CLI 1.32.1 1.32.1 1.32.1 1.32.1
Docker 24.0.9 N/D 24.0.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 Correto 17 Correto 17 Correto 17 Correto 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

Imagens de novembro de 2022

Há uma imagem de novembro de 2022 por combinação de tipo de computação/frota. Também há uma imagem do Windows de novembro de 2022 disponível com a ação de criação se você tiver configurado uma frota provisionada.

A tabela a seguir mostra as ferramentas instaladas em cada imagem de novembro de 2022.

Ferramentas de imagem de novembro de 2022
Ferramenta CodeCatalyst Amazon EC2 para Linux x86_64 - CodeCatalystLinux_x86_64:2022_11 CodeCatalyst Lambda para Linux x86_64 - CodeCatalystLinuxLambda_x86_64:2022_11 CodeCatalyst Amazon EC2 para Linux Arm64 - CodeCatalystLinux_Arm64:2022_11 CodeCatalyst Lambda para Linux Arm64 - CodeCatalystLinuxLambda_Arm64:2022_11 CodeCatalyst Amazon EC2 para 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 Copiloto CLI 0.6.0 0.6.0 N/D N/D 1.30.1
Docker 23.01 N/D 23.0.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.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 Correto 17 Correto 17 Correto 17 Correto 17 Correto 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/D 3.9.15 N/D 3.11.2 N/D
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

E se uma imagem ativa não incluir as ferramentas de que preciso?

Se nenhuma das imagens ativas fornecidas pelo CodeCatalyst incluir as ferramentas necessárias, você tem algumas opções:

  • Você pode fornecer uma imagem Docker de ambiente de tempo de execução personalizada que inclua as ferramentas necessárias. Para obter mais informações, consulte Atribuindo uma imagem Docker de um ambiente de tempo de execução personalizado a uma ação.

    nota

    Se você quiser fornecer uma imagem Docker de ambiente de tempo de execução personalizada, certifique-se de que sua imagem personalizada tenha o Git instalado nela.

  • Você pode fazer com que a ação de criação ou teste do seu fluxo de trabalho instale as ferramentas necessárias.

    Por exemplo, você pode incluir as seguintes instruções na Steps seção do YAML código da ação de compilação ou teste:

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

    A ferramenta setup-script A instrução então executaria o seguinte script para instalar o gerenciador de pacotes 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

    Para obter mais informações sobre a ação de criaçãoYAML, consulteCrie e teste ações YAML.

Atribuindo uma imagem Docker de um ambiente de tempo de execução personalizado a uma ação

Se você não quiser usar uma imagem ativa fornecida pela CodeCatalyst, você pode fornecer uma imagem Docker de ambiente de tempo de execução personalizada. Se você quiser fornecer uma imagem personalizada, certifique-se de que ela tenha o Git instalado nela. A imagem pode residir no Docker Hub, no Amazon Elastic Container Registry ou em qualquer repositório público.

Para saber como criar uma imagem personalizada do Docker, consulte Containerize an application na documentação do Docker.

Use as instruções a seguir para atribuir a imagem do Docker do seu ambiente de tempo de execução personalizado a uma ação. Depois de especificar uma imagem, CodeCatalyst implante-a na sua plataforma de computação quando a ação começar.

nota

As ações a seguir não oferecem suporte a imagens personalizadas do Docker do ambiente de tempo de execução: Deploy AWS CloudFormation stack, Deploy to ECS e GitHub Actions. As imagens do Docker do ambiente de tempo de execução personalizado também não oferecem suporte ao tipo de computação Lambda.

Visual
Para atribuir uma imagem Docker de ambiente de tempo de execução personalizado usando o editor visual
  1. Abra o CodeCatalyst console em https://codecatalyst.aws/.

  2. No painel de navegação, escolha CI/CD e, em seguida, escolha Fluxos de trabalho.

  3. Escolha o nome do seu fluxo de trabalho. Você pode filtrar pelo nome do repositório ou ramificação de origem em que o fluxo de trabalho está definido, ou filtrar pelo nome ou status do fluxo de trabalho.

  4. Selecione a opção Editar.

  5. Escolha Visual.

  6. No diagrama do fluxo de trabalho, escolha a ação que usará a imagem Docker do seu ambiente de tempo de execução personalizado.

  7. Escolha a guia Configuração.

  8. Na parte inferior, preencha os campos a seguir.

    Imagem Docker do ambiente de execução - opcional

    Especifique o registro em que sua imagem está armazenada. Os valores válidos são:

    • CODECATALYST(YAMLeditor)

      A imagem é armazenada no CodeCatalyst registro.

    • Docker Hub (editor visual) ou DockerHub (YAMLeditor)

      A imagem é armazenada no registro de imagens do Docker Hub.

    • Outro registro (editor visual) ou Other (YAMLeditor)

      A imagem é armazenada em um registro de imagem personalizado. Qualquer registro disponível publicamente pode ser usado.

    • Amazon Elastic Container Registry (editor visual) ou ECR (YAMLeditor)

      A imagem é armazenada em um repositório de imagens do Amazon Elastic Container Registry. Para usar uma imagem em um ECR repositório da Amazon, essa ação precisa acessar a AmazonECR. Para habilitar esse acesso, você deve criar uma IAMfunção que inclua as seguintes permissões e uma política de confiança personalizada. (Você pode modificar uma função existente para incluir as permissões e a política, se quiser.)

      A IAM função deve incluir as seguintes permissões em sua política de função:

      • ecr:BatchCheckLayerAvailability

      • ecr:BatchGetImage

      • ecr:GetAuthorizationToken

      • ecr:GetDownloadUrlForLayer

      A IAM função deve incluir a seguinte política de confiança personalizada:

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

      Para obter mais informações sobre a criação de IAM funções, consulte Criação de uma função usando políticas de confiança personalizadas (console) no Guia IAM do usuário.

      Depois de criar a função, você deve atribuí-la à ação por meio de um ambiente. Para obter mais informações, consulte Associando um ambiente a uma ação.

    ECRimagemURL, imagem do Docker Hub ou imagem URL

    Especifique um dos seguintes:

    • Se você estiver usando um CODECATALYST registro, defina a imagem como uma das seguintes imagens ativas:

      • 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 você estiver usando um registro do Docker Hub, defina a imagem com o nome da imagem do Docker Hub e a tag opcional.

      Exemplo: postgres:latest

    • Se você estiver usando um ECR registro da Amazon, defina a imagem como o ECR registro da AmazonURI.

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

    • Se você estiver usando um registro personalizado, defina a imagem com o valor esperado pelo registro personalizado.

  9. (Opcional) Escolha Validar para validar o YAML código do fluxo de trabalho antes de confirmar.

  10. Escolha Confirmar, insira uma mensagem de confirmação e escolha Confirmar novamente.

YAML
Para atribuir uma imagem Docker de ambiente de execução personalizado usando o editor YAML
  1. No painel de navegação, escolha CI/CD e, em seguida, escolha Fluxos de trabalho.

  2. Escolha o nome do seu fluxo de trabalho. Você pode filtrar pelo nome do repositório ou ramificação de origem em que o fluxo de trabalho está definido, ou filtrar pelo nome ou status do fluxo de trabalho.

  3. Selecione a opção Editar.

  4. Escolha YAML.

  5. Encontre a ação à qual você deseja atribuir uma imagem do Docker do ambiente de execução.

  6. Na ação, adicione uma Container seção Registry e Image propriedades subjacentes. Para obter mais informações, consulte a Container descrição Registry e Image as propriedades do Ações para sua ação.

  7. (Opcional) Escolha Validar para validar o YAML código do fluxo de trabalho antes de confirmar.

  8. Escolha Confirmar, insira uma mensagem de confirmação e escolha Confirmar novamente.

Exemplos

Os exemplos a seguir mostram como atribuir uma imagem Docker de ambiente de tempo de execução personalizada a uma ação no arquivo de definição do fluxo de trabalho.

Exemplo: usando uma imagem Docker de ambiente de tempo de execução personalizado para adicionar suporte ao Node.js 18 com a Amazon ECR

O exemplo a seguir mostra como usar uma imagem Docker de ambiente de tempo de execução personalizada para adicionar suporte ao Node.js 18 com a Amazon ECR.

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

Exemplo: usando uma imagem Docker de ambiente de tempo de execução personalizado para adicionar suporte ao Node.js 18 com o Docker Hub

O exemplo a seguir mostra como usar uma imagem Docker de ambiente de tempo de execução personalizada para adicionar suporte ao Node.js 18 com o Docker Hub.

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