

A Amazon não CodeCatalyst está mais aberta a novos clientes. Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Como migrar do CodeCatalyst](migration.md).

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

# Configuração de um devfile para um Ambiente de Desenvolvimento
<a name="devenvironment-devfile"></a>

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 aplicativos de que precisa e a Amazon as CodeCatalyst instala em seu ambiente de desenvolvimento para você. 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 blueprint diferente, CodeCatalyst cria 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 devfile universal padrão é usada para todos IDEs. CodeCatalyst atualmente suporta a versão 2.0.0 do devfile. Para ter mais informações sobre o devfile, consulte [Esquema Devfile - Versão 2.0.0](https://devfile.io/docs/2.0.0/devfile-schema).

**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

**Topics**
+ [Edição do repositório devfile para um Ambiente de Desenvolvimento](devenvironment-devfile-moving.md)
+ [Recursos do Devfile suportados pelo CodeCatalyst](#devenvironment-devfile-support)
+ [Exemplo de um devfile para um Ambiente de Desenvolvimento](#devenvironment-devfile-example)
+ [Solução de problemas de um repositório devfile usando o modo de recuperação](#devenvironment-devfile-recovery)
+ [Especificar imagens de devfile universais para um Ambiente de Desenvolvimento](devenvironment-universal-image.md)
+ [Comandos Devfile](devenvironment-devfile-commands.md)
+ [Eventos do Devfile](devenvironment-devfile-events.md)
+ [Componentes do Devfile](devenvironment-devfile-components.md)

# Edição do repositório devfile para um Ambiente de Desenvolvimento
<a name="devenvironment-devfile-moving"></a>

Use o procedimento a seguir para editar o repositório devfile para um Ambiente de Desenvolvimento.

## Editando um devfile de repositório para um ambiente de desenvolvimento no CodeCatalyst
<a name="devenvironment-devfile-procedure"></a><a name="devenvironment-devfile-steps"></a>

**Para editar o repositório devfile**

1. Abra o CodeCatalyst console em [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Navegue até o projeto que contém o repositório de origem para o qual você deseja editar o devfile.

1. No painel de navegação, selecione **Código**.

1. Selecione **Repositórios de origem**.

1. Escolha o repositório de origem que contém o devfile que você deseja editar.

1. Na lista de arquivos, escolha o arquivo `devfile.yaml`.

1. Escolha **Editar**.

1. Edite o devfile.

1. Selecione **Confirmar** ou crie uma solicitação pull para que um membro da equipe possa revisar e aprovar as alterações.

**nota**  
Se editar o devfile, você precisará reiniciar o devfile para que as alterações sejam implementadas. Isso pode ser feito executando `/aws/mde/mde start --location devfile.yaml`. Se houver algum problema ao iniciar o devfile, ele entrará no modo de recuperação. No entanto, se você editar um devfile associado a um Ambiente de Desenvolvimento conectado à VPC, precisará reiniciar o Ambiente de Desenvolvimento para que as alterações entrem em vigor.

Você pode revisar qual devfile está sendo usado executando `/aws/mde/mde status`. O campo de localização tem o caminho do devfile em relação à pasta `/projects` do ambiente.

```
{
            "status": "STABLE",
            "location": "devfile.yaml"
        }
```

Você também pode mover o devfile padrão em `/projects/devfile.yaml` para o seu repositório de código-fonte. Para atualizar a localização do devfile, use o seguinte comando: `/aws/mde/mde start --location repository-name/devfile.yaml`.

## Edição do repositório devfile para um Ambiente de Desenvolvimento em um IDE
<a name="devenvironment-devfile-ide"></a>

Para alterar a configuração de um Ambiente de Desenvolvimento, você deve editar o devfile. Recomendamos que você edite o devfile em um IDE compatível e, em seguida, atualize seu ambiente de desenvolvimento, mas você também pode editar o devfile a partir da raiz do repositório de origem em. CodeCatalyst Se você editar o devfile em um IDE compatível, confirme e envie suas alterações para o repositório de origem ou crie uma solicitação pull para que um membro da equipe possa revisar e aprovar as edições no devfile.
+ [Editando o arquivo de desenvolvimento do repositório para um ambiente de desenvolvimento no AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/devenvironment-cloud9.title.html#ide-toolkits-edit-devfile-cloud9)
+ [Edição do repositório devfile para um Ambiente de Desenvolvimento no VS Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/codecatalyst-devenvironment.html#codecatalyst-devenvironment-devfile)
+ [Editando o arquivo de desenvolvimento do repositório para um ambiente de desenvolvimento no JetBrains](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/codecatalyst-overview.html#codecatalyst-overview-default)

## Recursos do Devfile suportados pelo CodeCatalyst
<a name="devenvironment-devfile-support"></a>

CodeCatalyst suporta os seguintes recursos do devfile na versão 2.0.0. Para ter mais informações sobre o devfile, consulte [Esquema Devfile - Versão 2.0.0](https://devfile.io/docs/2.0.0/devfile-schema).


| Recurso | Tipo | 
| --- | --- | 
|  `exec`  |  Command  | 
|  `postStart`  |  Event  | 
|  `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
<a name="devenvironment-devfile-example"></a>

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
<a name="devenvironment-devfile-recovery"></a>

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.

# Especificar imagens de devfile universais para um Ambiente de Desenvolvimento
<a name="devenvironment-universal-image"></a>

A *imagem universal* padrão inclui as linguagens de programação mais usadas e as ferramentas relacionadas que podem ser usadas em seu IDE. Se nenhuma imagem for especificada, CodeCatalyst fornece essa imagem e contém ferramentas que são mantidas pelo CodeCatalyst. Para permanecer notificado sobre o lançamento de novas imagens, consulte [Assinatura de notificações de imagem universal com o SNS](#devenvironment-universal-notifications).

A Amazon oferece suporte CodeCatalyst ativo às seguintes imagens de devfile:


| Versão da imagem | Identificador da imagem | 
| --- | --- | 
| Universal image 4.0 | public.ecr.aws/aws-mde/universal-image:4.0 | 
| Universal image 5.0 | public.ecr.aws/aws-mde/universal-image:5.0 | 

**nota**  
Você também pode usar `public.ecr.aws/aws-mde/universal-image:latest` para ter a imagem mais recente, que atualmente é `public.ecr.aws/aws-mde/universal-image:5.0`.

CodeCatalyst desativou as imagens a seguir. Ainda é possível usar essas imagens, mas elas não serão armazenadas em cache no host de criação e resultarão em tempos de inicialização do Ambiente de Desenvolvimento mais altos.


| Versão da imagem | Identificador da imagem | Data da substituição | 
| --- | --- | --- | 
| Universal image 1.0 | public.ecr.aws/aws-mde/universal-image:1.0 | 16 de agosto de 2024 | 
| Universal image 2.0 | public.ecr.aws/aws-mde/universal-image:2.0 | 16 de agosto de 2024 | 
| Universal image 3.0 | public.ecr.aws/aws-mde/universal-image:3.0 | 30 de julho de 2025 | 

**nota**  
Se você estiver usando AWS Cloud9, o preenchimento automático não funcionará para PHP, Ruby e CSS após a atualização para. `universal-image:3.0`

**Topics**
+ [Assinatura de notificações de imagem universal com o SNS](#devenvironment-universal-notifications)
+ [Versões de runtime da imagem universal 4.0](#devenvironment-universal-runtimes-4.0)
+ [Versões de tempo de execução do Universal Image 5.0](#devenvironment-universal-runtimes-5.0)

## Assinatura de notificações de imagem universal com o SNS
<a name="devenvironment-universal-notifications"></a>

CodeCatalyst fornece um serviço universal de notificação por imagem. Você pode usá-lo para assinar um tópico do Amazon Simple Notification Service (SNS) que notifica você quando atualizações CodeCatalyst universais de imagens forem lançadas. Para ter mais informações sobre tópicos do SNS, consulte [O que é o Amazon Simple Notification Service?](https://docs.aws.amazon.com/sns/latest/dg/welcome.html).

Sempre que novas imagens universais são lançadas, enviamos notificações aos assinantes; esta seção descreve como assinar atualizações CodeCatalyst universais de imagens.

**Exemplo de mensagem**

```
{
    "Type": "Notification",
    "MessageId": "123456789",
    "TopicArn": "arn:aws:sns:us-east-1:1234657890:universal-image-updates",
    "Subject": "New Universal Image Release",
    "Message": {
        "v1": {
            "Message": "A new version of the Universal Image has been released. You are now able to launch new DevEnvironments using this image.",
            "image ": {
                "release_type": "MAJOR VERSION",
                "image_name": "universal-image",
                "image_version": "2.0",
                "image_uri": "public.ecr.aws/amazonlinux/universal-image:2.0"
            }
        }
    },
    "Timestamp": "2021-09-03T19:05:57.882Z",
    "UnsubscribeURL": "example url"
}
```

**Para assinar atualizações de imagens CodeCatalyst universais usando o console do Amazon SNS**

1. Abra o console do Amazon SNS no [Painel](https://console.aws.amazon.com/sns/v2/home).

1. Na barra de navegação, escolha seu Região da AWS.

1. No painel de navegação, escolha **Subscriptions (Assinaturas)** e, depois, selecione **Create subscription (Criar assinatura)**.

1. Em **ARN do tópico**, insira `arn:aws:sns:us-east-1:089793673375:universal-image-updates`.

1. Em **Protocol (Protocolo)**, selecione **Email**.

1. No **Endpoint**, forneça um endereço de e-mail. O endereço de e-mail será usado para receber notificações.

1. Selecione **Criar assinatura**.

1. Você receberá um e-mail de confirmação com o assunto "AWS Notificação - Confirmação de assinatura”. Abra o e-mail e selecione **Confirmar assinatura**.

**Para cancelar a assinatura de atualizações de imagens CodeCatalyst universais usando o console do Amazon SNS**

1. Abra o console do Amazon SNS no [Painel](https://console.aws.amazon.com/sns/v2/home).

1. Na barra de navegação, escolha seu Região da AWS.

1. No painel de navegação, selecione **Assinaturas** e selecione a assinatura da qual você deseja cancelar a assinatura.

1. Escolha **Ações** e escolha **Excluir assinaturas**.

1. Escolha **Excluir**.

## Versões de runtime da imagem universal 4.0
<a name="devenvironment-universal-runtimes-4.0"></a>

A tabela a seguir lista os runtimes para `universal-image:4.0`.


**Versões do runtime de `universal-image:4.0`**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/codecatalyst/latest/userguide/devenvironment-universal-image.html)

## Versões de tempo de execução do Universal Image 5.0
<a name="devenvironment-universal-runtimes-5.0"></a>

A tabela a seguir lista os runtimes disponíveis para `universal-image:5.0`.


**Versões do runtime de `universal-image:5.0`**  

| Nome do runtime  | Versão | Versão secundária mais recente e principal específica | 
| --- | --- | --- | 
| aws cli |  2,25  |  `aws-cli: 2.x`  | 
| docker compose |  2.34  |  `docker-compose: 2.x`  | 
| dotnet |  8.0  |  `dotnet: 8.x`  | 
| golang |  1,24  |  `golang: 1.x`  | 
| java |  corretto21  |  `java: corretto21.x`  | 
| nodejs |  22,0  |  `nodejs: 22.x`  | 
| php |  8.3.16  |  `php: 8.x`  | 
| python |  3.12  |  `python: 3.x`  | 
| ruby |  3.4.2  |  `ruby: 3.x`  | 
| terraform |  1.10.5  |  `terraform: 1.x`  | 

# Comandos Devfile
<a name="devenvironment-devfile-commands"></a>

Atualmente, CodeCatalyst só suporta `exec` comandos em seu devfile. Para ter mais informações, consulte [Adicionar comandos](https://devfile.io/docs/2.0.0/adding-commands) na documentação do Devfile.io.

O exemplo a seguir mostra como especificar comandos `exec` no devfile.

```
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: updateyum
    exec:
      component: test
      commandLine: "yum -y update --security"
```

Depois de se conectar ao Ambiente de Desenvolvimento, você pode executar comandos definidos por meio do terminal.

```
/aws/mde/mde command <command-id>
/aws/mde/mde command executescript
```

Para comandos de longa execução, você pode usar o sinalizador de streaming `-s` para gerar a execução do comando em tempo real.

```
/aws/mde/mde -s command <command-id>
```

**nota**  
`command-id` deve estar em letras minúsculas.

## Parâmetros de execução suportados por CodeCatalyst
<a name="devenvironment-exec-support"></a>

CodeCatalyst suporta os seguintes `exec` parâmetros na versão 2.0.0 do devfile.
+ `commandLine`
+ `component`
+ `id`
+ `workingDir`

# Eventos do Devfile
<a name="devenvironment-devfile-events"></a>

Atualmente, CodeCatalyst só oferece suporte a `postStart` eventos em seu devfile. Para obter mais informações, consulte a [postStartObject](https://devfile.io/docs/2.0.0/adding-event-bindings#post-start-object)documentação do Devfile.io.

O exemplo a seguir mostra como adicionar vinculações de eventos `postStart` ao devfile.

```
commands:
  - id: executescript
    exec:
      component: test
      commandLine: "./projects/devfiles/script.sh"
  - id: updateyum
    exec:
      component: test
      commandLine: "yum -y update --security"
events:
  postStart:
    - updateyum
    - executescript
```

Após a inicialização, seu Ambiente de Desenvolvimento executará os comandos `postStart` especificados na ordem em que foram definidos. Se um comando falhar, o Ambiente de Desenvolvimento continuará em execução e a saída da execução será armazenada nos logs em `/aws/mde/logs`.

# Componentes do Devfile
<a name="devenvironment-devfile-components"></a>

Atualmente, CodeCatalyst só oferece suporte a `container` componentes em seu devfile. Para ter mais informações, consulte [Adicionar componentes](https://devfile.io/docs/2.0.0/adding-components) na documentação do Devfile.io.

O exemplo a seguir mostra como adicionar um comando de inicialização ao contêiner no devfile.

```
components:
  - name: test
    container:
      image: public.ecr.aws/amazonlinux/amazonlinux:2
      command: ['sleep', 'infinity']
```

**nota**  
Quando o contêiner tem um comando de entrada de curta duração, você deve incluir `command: ['sleep', 'infinity']` para manter o contêiner em execução.

CodeCatalyst também oferece suporte às seguintes propriedades em seu componente de contêiner: `args` `env``mountSources`,, `volumeMounts` e.