

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

# Hooks de plataforma
<a name="platforms-linux-extend.hooks"></a>

Os hooks de plataforma são criados especificamente para estender a plataforma do ambiente. Eles são scripts personalizados e outros arquivos executáveis que são implantados como parte do código-fonte da aplicação, e são executados pelo Elastic Beanstalk durante vários estágios de provisionamento da instância.

**nota**  
Os hooks de plataforma não são compatíveis com as versões da plataforma da AMI do Amazon Linux (anteriores ao Amazon Linux 2).

## Hooks de plataforma de implantação de aplicações
<a name="platforms-linux-extend.hooks.appdeploy"></a>

Uma *implantação de aplicação* ocorre quando você fornece um novo pacote de origem para implantação ou quando faz uma alteração de configuração que exige o encerramento e a recriação de todas as instâncias do ambiente.

Para fornecer hooks de plataforma executados durante a implantação de uma aplicação, coloque os arquivos no diretório `.platform/hooks` do pacote de origem, em um dos seguintes subdiretórios.
+ `prebuild`: estes arquivos serão executados depois que o mecanismo da plataforma do Elastic Beanstalk fizer download e extrair o pacote de origem da aplicação, e antes de configurar a aplicação e o servidor Web.

  Os arquivos `prebuild` são executados depois da execução de comandos encontrados na seção [commands](customize-containers-ec2.md#linux-commands), de qualquer arquivo de configuração, e antes da execução de comandos `Buildfile`.
+ `predeploy`: estes arquivos são executados depois que o mecanismo da plataforma do Elastic Beanstalk configura a aplicação e o servidor Web, e antes de implantá-los em seu local final de runtime.

  Os arquivos `predeploy` são executados depois da execução dos comandos encontrados na seção [container\$1commands](customize-containers-ec2.md#linux-container-commands) de qualquer arquivo de configuração, e antes da execução de comandos `Procfile`.
+ `postdeploy`: estes arquivos são executados depois que o mecanismo da plataforma do Elastic Beanstalk implanta a aplicação e o servidor de proxy.

  Esta é a última etapa do fluxo de trabalho de implantação.

## Hooks de plataforma de implantação de configuração
<a name="platforms-linux-extend.hooks.configdeploy"></a>

Uma *implantação de configuração* ocorre quando você faz alterações de configuração que apenas atualizam instâncias do ambiente sem recriá-las. As atualizações de opção a seguir resultam em uma atualização da configuração.
+ [Propriedades do ambiente e configurações específicas da plataforma](environments-cfg-softwaresettings.md)
+ [Arquivos estáticos](environment-cfg-staticfiles.md)
+ [AWS X-Ray daemon](environment-configuration-debugging.md)
+ [Streaming e armazenamento de logs](environments-cfg-logging.md)
+ Porta da aplicação (para obter detalhes, consulte [Configuração de proxy reverso](platforms-linux-extend.proxy.md))

Para fornecer hooks que são executados durante a implantação de uma configuração, coloque-os no diretório `.platform/confighooks` do pacote de origem. São aplicados os mesmos três subdiretórios que aqueles aplicados para os hooks de implantação de aplicações.

## Mais sobre hooks de plataforma
<a name="platforms-linux-extend.hooks.more"></a>

Os arquivos de hook podem ser arquivos binários ou arquivos de script que começam com uma linha `#!` contendo seu caminho de interpretador, como `#!/bin/bash`. Todos os arquivos devem ter permissão de execução. Use `chmod +x` para definir a permissão de execução em seus arquivos de hook. Em todas as versões de plataforma baseadas no Amazon Linux 2023 e no Amazon Linux 2 lançadas a partir de 29 de abril de 2022, o Elastic Beanstalk concede automaticamente permissões de execução para todos os scripts de hook da plataforma. Nesse caso, não é necessário conceder manualmente as permissões de execução. Para obter uma lista dessas versões da plataforma, consulte as notas de versão do Linux de [29 de abril de 2022 ](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-04-29-linux.html#release-2022-04-29-linux.platforms) no *Guia de notas de versão do AWS Elastic Beanstalk *.

O Elastic Beanstalk executa arquivos em cada um desses diretórios em ordem lexicográfica de nomes de arquivos. Todos os arquivos são executados como o usuário `root`. O diretório de trabalho atual (cwd) para hooks de plataforma é o diretório raiz do aplicativo. Para os arquivos `prebuild` e `predeploy` é o diretório de preparação do aplicativo, e para os arquivos `postdeploy` é o diretório atual do aplicativo. Se um dos arquivos falhar (terminar com um código de saída diferente de zero), a implantação será interrompida e falhará.

Um script de texto de hooks da plataforma pode falhar se contiver caracteres de quebra de linha *retorno de carro/alimentação de linha* (CRLF). Se um arquivo foi salvo em um host Windows e depois transferido para um servidor Linux, ele pode conter quebras de linha CRLF do Windows. Para plataformas lançadas a partir de [29 de dezembro de 2022,](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-12-29-linux.html) o Elastic Beanstalk converte automaticamente os caracteres CRLF do Windows em caracteres de quebra de linha *alimentação de linha* (LF) do Linux em arquivos de texto de hooks de plataforma. Se a aplicação for executada em qualquer plataforma Amazon Linux 2 lançada antes dessa data, você precisará converter os caracteres CRLF do Windows em caracteres LF do Linux. Uma forma de fazer isso é criar e salvar o arquivo de script em um host Linux. Ferramentas que convertem esses caracteres também estão disponíveis na internet.

Os arquivos de hook têm acesso a todas as propriedades de ambiente definidas nas opções da aplicação e às variáveis de ambiente do sistema `HOME`, `PATH` e `PORT`. 

Para obter valores de variáveis de ambiente e outras opções de configuração nos scripts de hook de plataforma, é possível usar o utilitário `get-config` que o Elastic Beanstalk fornece em instâncias do ambiente. Para obter detalhes, consulte [Ferramentas de script de plataforma para ambientes Elastic Beanstalk](custom-platforms-scripts.md).