

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

# Edição da especificação de compilação
<a name="edit-build-settings"></a>

É possível personalizar as configurações de compilação de uma aplicação editando a especificação de compilação (buildspec) no console do Amplify. As configurações de compilação são aplicadas a todas as ramificações da aplicação, exceto às ramificações que tenham um arquivo `amplify.yml` salvo no repositório Git.

**Para editar as configurações de compilação no console do Amplify**

1. Faça login no Console de gerenciamento da AWS e abra o console do [Amplify](https://console.aws.amazon.com/amplify/).

1. Escolha a aplicação para a qual deseja editar as configurações de compilação.

1. No painel de navegação, escolha **Hospedagem**, e, em seguida, escolha **Configurações de compilação**.

1. Na página **Configurações da compilação**, na seção **Especificação de compilação da aplicação**, escolha **Editar**.

1. Na janela **Editar especificação de compilação**, insira suas atualizações.

1. Escolha **Salvar**.

É possível usar os exemplos descritos nos tópicos a seguir para atualizar suas configurações de compilação para cenários específicos.

**Topics**
+ [Definição de configurações de compilação específicas de ramificações com scripts](#branch-specific-build-settings)
+ [Configuração de um comando para navegar até uma subpasta](#navigating-to-a-subfolder)
+ [Implantação de backend com o frontend para uma aplicação Gen 1](#frontend-with-backend)
+ [Definir a pasta de saída](#setting-the-output-folder)
+ [Instalar pacotes como parte da compilação](#installing-packages-as-part-of-your-build)
+ [Usar um registro privado de npm](#using-a-private-npm-registry)
+ [Instalar pacotes do SO](#installing-os-packages)
+ [Configuração de armazenamento de chave-valor para cada compilação](#key-value-storage-for-every-build)
+ [Ignorar a compilação para uma confirmação](#skip-build-for-a-commit)
+ [Desativação das compilações automáticas em cada confirmação](#disable-automatic-builds)
+ [Configuração de compilação e implantação de frontend baseado em diff](#enable-diff-deploy)
+ [Configuração de compilações de backend baseadas em diff para uma aplicação Gen 1](#enable-diff-backend)

## Definição de configurações de compilação específicas de ramificações com scripts
<a name="branch-specific-build-settings"></a>

É possível usar o script shell bash para definir configurações de compilação específicas de ramificação. Por exemplo, o script a seguir usa a variável de ambiente do sistema *\$1 AWS\$1BRANCH* para executar um conjunto de comandos se o nome da ramificação for *principal* e um conjunto diferente de comandos se o nome da ramificação for *dev*.

```
frontend:
  phases:
    build:
      commands:
        - if [ "${AWS_BRANCH}" = "main" ]; then echo "main branch"; fi
        - if [ "${AWS_BRANCH}" = "dev" ]; then echo "dev branch"; fi
```

## Configuração de um comando para navegar até uma subpasta
<a name="navigating-to-a-subfolder"></a>

Para monorepos, os usuários desejam poder fazer `cd` em uma pasta para executar a compilação. Depois de executar o comando `cd`, ele será aplicado a todos os estágios da compilação. Assim, não será necessário repetir o comando em fases separadas.

```
version: 1
env:
  variables:
    key: value
frontend:
  phases:
    preBuild:
      commands:
        - cd react-app
        - npm ci
    build:
      commands:
        - npm run build
```

## Implantação de backend com o frontend para uma aplicação Gen 1
<a name="frontend-with-backend"></a>

**nota**  
Esta seção se aplica somente a aplicações do Amplify Gen 1. Um backend Gen 1 é criado usando o Amplify Studio e a interface de linha de comando (CLI) do Amplify.

O comando `amplifyPush` é um script auxiliar que ajuda com as implantações de backend. As configurações de compilação abaixo determinam automaticamente o ambiente de backend correto a ser implantado para a ramificação atual.

```
version: 1
env:
  variables:
    key: value
backend:
  phases:
    build:
      commands:
        - amplifyPush --simple
```

## Definir a pasta de saída
<a name="setting-the-output-folder"></a>

As configurações de criação a seguir definem o diretório de saída como a pasta pública.

```
frontend:
  phases:
    commands:
      build:
        - yarn run build
  artifacts:
    baseDirectory: public
```

## Instalar pacotes como parte da compilação
<a name="installing-packages-as-part-of-your-build"></a>

É possível usar os comandos `npm` ou `yarn` para instalar pacotes durante a compilação.

```
frontend:
  phases:
    build:
      commands:
        - npm install -g <package>
        - <package> deploy
        - yarn run build
  artifacts:
    baseDirectory: public
```

## Usar um registro privado de npm
<a name="using-a-private-npm-registry"></a>

É possível adicionar referências a um registro privado nas configurações de criação ou adicioná-lo como uma variável de ambiente.

```
build:
  phases:
    preBuild:
      commands:
        - npm config set <key> <value>
        - npm config set registry https://registry.npmjs.org
        - npm config set always-auth true
        - npm config set email hello@amplifyapp.com
        - yarn install
```

## Instalar pacotes do SO
<a name="installing-os-packages"></a>

A AL2023 imagem do Amplify executa seu código com um usuário não privilegiado chamado. `amplify` O Amplify concede a esse usuário privilégios para executar comandos do SO usando o comando `sudo` do Linux. Se você quiser instalar pacotes de sistema operacional para dependências ausentes, é possível usar comandos como `yum` e `rpm` com `sudo`.

O exemplo de seção de compilação a seguir demonstra a sintaxe para instalar um pacote de sistema operacional usando o comando `sudo`.

```
build:
  phases:
    preBuild:
      commands:
        - sudo yum install -y <package>
```

## Configuração de armazenamento de chave-valor para cada compilação
<a name="key-value-storage-for-every-build"></a>

O `envCache` fornece armazenamento de chave-valor no momento da compilação. Os valores armazenados no `envCache` só podem ser modificados durante uma compilação e podem ser reutilizados na próxima compilação. Com o `envCache`, é possível armazenar informações sobre o ambiente implantado e disponibilizá-lo para o contêiner de compilação em criações sucessivas. Ao contrário dos valores armazenados no `envCache`, as alterações nas variáveis do ambiente durante uma compilação não são mantidas para compilações futuras.

Exemplo de uso:

```
envCache --set <key> <value>
envCache --get <key>
```

## Ignorar a compilação para uma confirmação
<a name="skip-build-for-a-commit"></a>

Para pular uma compilação automática em um determinado commit, inclua o texto **[skip-cd]** no final da mensagem do commit.

## Desativação das compilações automáticas em cada confirmação
<a name="disable-automatic-builds"></a>

É possível configurar o Amplify para desativar as compilações automáticas em cada confirmação de código. Para configurar, escolha **Configurações da aplicação**, **Configurações de ramificação** e, em seguida, localize a seção **Ramificações** que lista as ramificações conectadas. Selecione uma ramificação e escolha **Ações**, **Desativar compilação automática**. Novas confirmações para essa ramificação não iniciarão mais uma nova compilação.

## Configuração de compilação e implantação de frontend baseado em diff
<a name="enable-diff-deploy"></a>

É possível configurar o Amplify para usar compilações de frontend baseadas em diff. Se ativado, no início de cada compilação, o Amplify tenta executar um diff na sua pasta `appRoot` ou na pasta `/src/` por padrão. Se o Amplify não encontrar nenhuma diferença, ele ignora as etapas de compilação, teste (se configurado) e implantação do frontend e não atualiza seu aplicativo hospedado.

**Para configurar o frontend baseado em diff, criar e implantar**

1. Faça login no Console de gerenciamento da AWS e abra o console do [Amplify](https://console.aws.amazon.com/amplify/).

1. Escolha o aplicativo para o qual configurar a compilação e implantação de frontend com base em diff.

1. No painel de navegação, escolha **Hospedagem**, **Variáveis de ambiente**.

1. Na seção **Variáveis de ambiente**, escolha **Gerenciar variáveis**.

1. O procedimento para configurar a variável de ambiente varia dependendo se você está habilitando ou desabilitando a compilação e implantação de frontend com base em diff.
   + Para habilitar a compilação e implantação de frontend baseado em diff

     1. Na seção **Gerenciar variáveis**, em **Variável**, insira `AMPLIFY_DIFF_DEPLOY`.

     1. Em **Valor**, insira `true`.
   + Para desabilitar a compilação e implantação de frontend baseado em diff

     1. Execute um destes procedimentos:
       + Na seção **Gerenciar variáveis**, localize `AMPLIFY_DIFF_DEPLOY`. Em **Valor**, insira `false`.
       + Remova a variável de ambiente `AMPLIFY_DIFF_DEPLOY`.

1. Escolha **Salvar**.

Opcionalmente, é possível definir a variável de ambiente `AMPLIFY_DIFF_DEPLOY_ROOT` para substituir o caminho padrão por um caminho relativo à raiz do seu repositório, como `dist`.

## Configuração de compilações de backend baseadas em diff para uma aplicação Gen 1
<a name="enable-diff-backend"></a>

**nota**  
Esta seção se aplica somente a aplicações do Amplify Gen 1. Um backend Gen 1 é criado usando o Amplify Studio e a interface de linha de comando (CLI) do Amplify.

É possível configurar o Amplify Hosting para usar compilações de backend baseadas em diff usando a variável de ambiente `AMPLIFY_DIFF_BACKEND`. Quando você habilita compilações de backend baseadas em diff, no início de cada compilação, o Amplify tenta executar uma comparação na pasta em seu repositório `amplify`. Se o Amplify não encontrar nenhuma diferença, ele pula a etapa de compilação do backend e não atualiza seus atributos de backend. Se seu projeto não tiver uma pasta `amplify` no seu repositório, o Amplify ignorará o valor da variável de ambiente `AMPLIFY_DIFF_BACKEND`.

Se você atualmente tem comandos personalizados especificados nas configurações de compilação da sua fase de backend, as compilações condicionais de backend não funcionarão. Se quiser que esses comandos personalizados sejam executados, é necessário movê-los para a fase de frontend das configurações de compilação no arquivo `amplify.yml` do seu aplicativo.

**Para configurar compilações de backend baseadas em diff**

1. Faça login no Console de gerenciamento da AWS e abra o console do [Amplify](https://console.aws.amazon.com/amplify/).

1. Escolha o aplicativo para o qual configurar as compilações de backend baseadas em diff.

1. No painel de navegação, escolha **Hospedagem**, **Variáveis de ambiente**.

1. Na seção **Variáveis de ambiente**, escolha **Gerenciar variáveis**.

1. O procedimento para configurar a variável de ambiente varia dependendo se você está habilitando ou desabilitando compilações de backend baseadas em diff.
   + Para habilitar compilações de backend baseadas em diff

     1. Na seção **Gerenciar variáveis**, em **Variável**, insira `AMPLIFY_DIFF_BACKEND`.

     1. Em **Valor**, insira `true`.
   + Para desativar as compilações de backend baseadas em diff

     1. Execute um destes procedimentos:
       + Na seção **Gerenciar variáveis**, localize `AMPLIFY_DIFF_BACKEND`. Em **Valor**, insira `false`.
       + Remova a variável de ambiente `AMPLIFY_DIFF_BACKEND`.

1. Escolha **Salvar**.