Configuração de um devfile para um Ambiente de Desenvolvimento - Amazon CodeCatalyst

Configuração de um devfile para um Ambiente de Desenvolvimento

Um devfile é um padrão aberto que ajuda você a personalizar seus ambientes de desenvolvimento em toda a sua equipe. Um devfile é um arquivo YAML que codifica as ferramentas de desenvolvimento necessárias. Ao configurar um devfile, você pode pré-determinar as ferramentas de projeto e as bibliotecas de aplicações de que precisa e o Amazon CodeCatalyst as instala em seu Ambiente de Desenvolvimento. O devfile é específico do repositório para o qual foi criado, e você pode criar um devfile separado para cada repositório. Seu Ambiente de Desenvolvimento oferece suporte a comandos e eventos e fornece uma imagem padrão de devfile universal.

Se você criar um projeto usando o esquema vazio, poderá criar um devfile manualmente. Se você criar um projeto usando um esquema diferente, o CodeCatalyst criará um devfile automaticamente. O diretório /projects de um Ambiente de Desenvolvimento armazena os arquivos que são extraídos do repositório de origem e do devfile. O diretório /home, que está vazio quando você cria um Ambiente de Desenvolvimento pela primeira vez, armazena os arquivos criados enquanto usa o Ambiente de Desenvolvimento. Tudo nos diretórios /projects e /home de um Ambiente de Desenvolvimento é armazenado de forma persistente.

nota

A pasta /home só será alterada se você alterar o nome do devfile ou o nome do componente devfile. Se você alterar o nome do devfile ou do componente devfile, o conteúdo do diretório /home será substituído e os dados do diretório /home anterior não poderão ser recuperados.

Se você criar um Ambiente de Desenvolvimento com um repositório de origem que não contenha um devfile na raiz ou criar um Ambiente de Desenvolvimento sem um repositório de origem, um devfile universal padrão será aplicado automaticamente ao repositório de origem. A mesma imagem padrão de devfile universal é usada para todos os IDEs. O CodeCatalyst atualmente é compatível com o devfile versão 2.0.0. Para ter mais informações sobre o devfile, consulte Esquema Devfile - Versão 2.0.0.

nota

Você só pode incluir imagens de contêiner público em seu devfile.

Os ambientes de desenvolvimento conectados à VPC oferecem suporte apenas às seguintes imagens de devfile:

  • Imagem universal

  • Imagens privadas do Amazon ECR, se o repositório estiver na mesma região da VPC

Recursos do devfile aceitos pelo CodeCatalyst

O CodeCatalyst aceita os recursos a seguir na versão 2.0.0 do devfile. Para ter mais informações sobre o devfile, consulte Esquema Devfile - Versão 2.0.0.

Atributo Tipo

exec

Comando

postStart

Evento

container

Componente

args

Propriedades do componente

env

Propriedades do componente

mountSources

Propriedades do componente

volumeMounts

Propriedades do componente

Exemplo de um devfile para um Ambiente de Desenvolvimento

Veja a seguir um exemplo de um devfile simples.

schemaVersion: 2.0.0 metadata: name: al2 components: - name: test container: image: public.ecr.aws/amazonlinux/amazonlinux:2 mountSources: true command: ['sleep', 'infinity'] - name: dockerstore commands: - id: setupscript exec: component: test commandLine: "chmod +x script.sh" workingDir: /projects/devfiles - id: executescript exec: component: test commandLine: "/projects/devfiles/script.sh" - id: yumupdate exec: component: test commandLine: "yum -y update --security" events: postStart: - setupscript - executescript - yumupdate

Os logs de inicialização, comandos e eventos do devfile são capturados e armazenados em /aws/mde/logs. Para depurar o comportamento do devfile, inicie seu Ambiente de Desenvolvimento usando um devfile ativo e acesse os logs.

Solução de problemas de um repositório devfile usando o modo de recuperação

Se houver algum problema ao iniciar seu devfile, ele entrará no modo de recuperação para que você ainda possa se conectar ao ambiente e corrigir o devfile. No modo de recuperação, a execução de /aws/mde/mde status não conterá a localização do devfile.

{ "status": "STABLE" }

Você pode verificar o erro nos logs em /aws/mde/logs, corrigir o devfile e tentar executar /aws/mde/mde start novamente.