

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

# Plataformas Linux do Elastic Beanstalk
<a name="platforms-linux"></a>

As plataformas Elastic Beanstalk Linux oferecem uma grande quantidade de funcionalidades prontas para uso. Você pode estender as plataformas de várias maneiras para oferecer suporte ao seu aplicativo. Para obter detalhes, consulte [Estender as plataformas Linux do Elastic Beanstalk](platforms-linux-extend.md).

A maioria das plataformas compatíveis com o Elastic Beanstalk são baseadas no sistema operacional Linux. Especificamente, essas plataformas são baseadas no Amazon Linux, uma distribuição Linux fornecida pela AWS. As plataformas Linux do Elastic Beanstalk usam instâncias do Amazon Elastic Compute Cloud EC2 (Amazon), e essas instâncias executam o Amazon Linux.

**Topics**
+ [Versões compatíveis do Amazon Linux](#platforms-linux.versions)
+ [Lista de plataformas Linux do Elastic Beanstalk](#platforms-linux.list)
+ [Fluxo de trabalho de implantação da instância](platforms-linux-extend.workflow.md)
+ [Fluxo de trabalho de implantação de instâncias para o ECS em execução no Amazon Linux 2 e versões posteriores](platforms-linux-extend.workflow.ecs-al2.md)
+ [Ferramentas de script de plataforma para ambientes Elastic Beanstalk](custom-platforms-scripts.md)

## Versões compatíveis do Amazon Linux
<a name="platforms-linux.versions"></a>

AWS Elastic Beanstalk oferece suporte a plataformas baseadas no Amazon Linux 2 e no Amazon Linux 2023.

Para obter mais informações sobre Amazon Linux 2 e Amazon Linux 2023, consulte o seguinte:
+ **Amazon Linux 2** — [Amazon Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-linux-ami-basics.html) no *Guia do EC2 usuário da Amazon*.
+ **Amazon Linux 2023** – [O que é o Amazon Linux 2023?](https://docs.aws.amazon.com/linux/al2023/ug/what-is-amazon-linux.html) no Guia do usuário *Amazon Linux 2023*.

Para obter detalhes sobre as versões de plataforma compatíveis, consulte [Plataformas compatíveis com Elastic Beanstalk](concepts.platforms.md).

**nota**  
Você pode migrar seu aplicativo de uma ramificação da plataforma ou do AL1 Elastic AL2 Beanstalk para a ramificação equivalente da plataforma 023. AL2 Para obter mais informações, consulte [Migrar a aplicação Linux do Elastic Beanstalk para o Amazon Linux 2023 ou Amazon Linux 2](using-features.migration-al.md). 

### Amazon Linux 2023
<a name="platforms-linux.versions.al2023"></a>

AWS anunciou a [disponibilidade geral](https://aws.amazon.com//blogs/aws/amazon-linux-2023-a-cloud-optimized-linux-distribution-with-long-term-support/) do Amazon Linux 2023 em março de 2023. O *guia do usuário Amazon Linux 2023* resume as principais diferenças entre o Amazon Linux 2 e o Amazon Linux 2023. Para obter mais informações, consulte [Comparando Amazon Linux 2 e Amazon Linux 2023](https://docs.aws.amazon.com/linux/al2023/ug/compare-with-al2.html) no guia do usuário.

Há um alto grau de compatibilidade entre as plataformas Elastic Beanstalk Amazon Linux 2 e Amazon Linux 2023. Embora haja algumas diferenças a serem observadas:
+ **Instance Metadata Service versão 1 (IMDSv1)** — A configuração da IMDSv1 opção [Desativar](command-options-general.md#command-options-general-autoscalinglaunchconfiguration) é padronizada `true` em AL2 plataformas 023. O padrão está `false` nas AL2 plataformas.
+ ferramenta de **instância pkg-repo — A [pkg-repo](custom-platforms-scripts.md#custom-platforms-scripts.pkg-repo) ferramenta** não está disponível para ambientes executados em AL2 plataformas 023. No entanto, você ainda pode aplicar manualmente as atualizações do pacote e do sistema operacional a uma instância AL2 023. Para obter mais informações, consulte [Gerenciamento de pacotes e atualizações do sistema operacional](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html) no *Guia do usuário do Amazon Linux 2023*
+ ** HTTPd Configuração do Apache** — O `httpd.conf` arquivo Apache para plataformas AL2 023 tem algumas definições de configuração que são diferentes daquelas para: AL2 
  + Negar acesso a todo o sistema de arquivos do servidor por padrão. Essas configurações são descritas em *Proteger arquivos do servidor por padrão* na página [Dicas de segurança](https://httpd.apache.org/docs/2.4/misc/security_tips.html) do site Apache.
  + Negue acesso à configuração de `.htaccess` em todos os diretórios, exceto aqueles especificamente habilitados. Essa configuração é descrita em *Protegendo as configurações do sistema* na página [Dicas de segurança](https://httpd.apache.org/docs/2.4/misc/security_tips.html) do site Apache. A página [Tutorial do Apache HTTP Server: arquivos.htaccess](https://httpd.apache.org/docs/2.4/howto/htaccess.html) afirma que essa configuração pode ajudar a melhorar o desempenho.
  + Negue acesso a arquivos com padrão de nome `.ht*`. Essa configuração impede que os clientes da Web exibam arquivos `.htaccess` e `.htpasswd`.

  Você pode alterar qualquer uma das definições de configuração acima para seu ambiente. Para obter mais informações, consulte [Configurar o Apache HTTPD](platforms-linux-extend.proxy.md#platforms-linux-extend.proxy.httpd).
+ **Suporte a variáveis de ambiente multilinha** — as plataformas AL2 023 suportam valores de várias linhas para variáveis de ambiente e segredos nas configurações de serviço systemd. As plataformas Amazon Linux 2 não oferecem suporte a valores de variáveis de ambiente de várias linhas. Esse aprimoramento permite que você use segredos de várias linhas e valores de configuração em plataformas AL2 023. Para obter mais informações sobre o uso de variáveis e segredos de ambiente, consulte[Valores multilinha nas variáveis de ambiente do Amazon Linux 2](AWSHowTo.secrets.env-vars.md#AWSHowTo.secrets.multiline).
+ **CloudWatch encaminhamento de registros personalizado** — O agente de CloudWatch registros obsoleto (`awslogs`pacote) não está disponível em 023 plataformas. AL2 Se você tiver configurações personalizadas de encaminhamento de log que instalam e usam o agente obsoleto, você deve atualizar seus arquivos de configuração para usar o `awslogs` agente unificado CloudWatch ao migrar do Amazon Linux 2 para o 023. AL2 Para obter mais informações, consulte [Streaming do arquivo de log personalizado](AWSHowTo.cloudwatchlogs.md#AWSHowTo.cloudwatchlogs.streaming.custom).

**Diferenças específicas da plataforma**

Além das diferenças básicas do sistema operacional, há diferenças específicas de plataforma entre as plataformas de tempo de execução Amazon Linux 2 e AL2 023:
+ **Ramificação da plataforma do.NET** — A estratégia de ramificação da plataforma do.NET difere entre o Amazon Linux 2 e AL2 o 023. No Amazon Linux 2, a plataforma do.NET Core mantém uma janela rotativa das versões principais do.NET em uma única ramificação da plataforma. Em AL2 023, cada ramificação da plataforma é fixada em uma versão principal específica do.NET (por exemplo, .NET 9, .NET 10).

  Se você implantar aplicativos dependentes da estrutura (aplicativos que dependem do tempo de executivo.NET instalado na plataforma), você deve selecionar uma ramificação da plataforma que corresponda à versão.NET de destino do seu aplicativo. Se você implantar aplicativos independentes (aplicativos que agrupam seu próprio tempo de execução do.NET), você pode usar qualquer ramificação da plataforma AL2 023 do.NET, independentemente da versão.NET do seu aplicativo, pois seu aplicativo não depende do tempo de execução instalado da plataforma. Para obter mais informações, consulte [Agrupamento de aplicações para o .NET Core na plataforma Linux Elastic Beanstalk](dotnet-linux-platform-bundle-app.md).
+ **Seleção de versão do Node.js** — A plataforma Node.js no Amazon Linux 2 suporta a especificação de uma versão Node.js no `package.json` arquivo do seu aplicativo. A plataforma Node.js em AL2 023 não oferece suporte a esse recurso. Você deve usar a versão padrão do Node.js fornecida pela ramificação da plataforma. Para obter mais informações sobre o gerenciamento de versões do Node.js, consulte[Configurar dependências da sua aplicação no Elastic Beanstalk](nodejs-platform-dependencies.md).
+ **Versão do servidor Ruby Puma** — A plataforma Ruby no Amazon Linux 2 ignora a versão Puma especificada no `Gemfile.lock` arquivo do seu aplicativo e usa a versão Puma padrão da plataforma. A plataforma Ruby em AL2 023 honra a versão Puma especificada em if present. `Gemfile.lock` Se nenhuma versão for especificada, a plataforma instalará a versão Puma padrão da plataforma.
+ **Disponibilidade de pacotes PHP** — Alguns pacotes disponíveis nas plataformas PHP Amazon Linux 2 não estão disponíveis nas plataformas PHP AL2 0.23:
  + *Pacotes do cliente MySQL — Os pacotes* do cliente de `mysql-devel` linha de comando `mysql` e não estão instalados em AL2 plataformas PHP 023. Se seu aplicativo exigir conectividade com o banco de dados MySQL, use o PHP `mysqli` ou `pdo_mysql` as extensões, que estão disponíveis nas duas plataformas.
  + *Ferramentas Compass e Ruby* — Os `rubygems` pacotes `ruby-devel` e para o suporte do framework Compass CSS não estão instalados nas plataformas PHP AL2 023. O Compass foi descontinuado. Considere usar ferramentas modernas de pré-processamento de CSS como alternativas.
+ **Ferramentas de controle de versão Go** — O sistema de controle de versão Bazaar (`bzr`) não está disponível nas plataformas AL2 023 Go. O Bazaar está obsoleto e não está incluído no repositório de pacotes 023. AL2 Em vez disso, use Git, Mercurial ou Subversion para controle de versão, todos disponíveis nas plataformas 023 Go. AL2

## Lista de plataformas Linux do Elastic Beanstalk
<a name="platforms-linux.list"></a>

A lista a seguir fornece as plataformas Linux compatíveis com o Elastic Beanstalk para diferentes linguagens de programação, bem como para contêineres Docker. O Elastic Beanstalk oferece plataformas baseadas no Amazon Linux 2 e Amazon Linux 2023 para todos eles. Para saber mais sobre uma plataforma, selecione o link correspondente.
+ [Docker (e ECS Docker)](create_deploy_docker.md) 
+ [Go](create_deploy_go.md)
+ [Tomcat (executando Java SE)](create_deploy_Java.md)
+ [Java SE](create_deploy_Java.md)
+ [.NET Core no Linux](create-deploy-dotnet-core-linux.md)
+ [Node.js](create_deploy_nodejs.md)
+ [PHP](create_deploy_PHP_eb.md)
+ [Python](create-deploy-python-apps.md)
+ [Ruby](create_deploy_Ruby.md)

# Fluxo de trabalho de implantação da instância
<a name="platforms-linux-extend.workflow"></a>

**nota**  
As informações nesta seção não se aplicam à ramificação da plataforma *ECS em execução no Amazon Linux 2 e no Amazon Linux 2023*. Para obter mais informações, consulte a próxima seção, [Fluxo de trabalho de implantação de instâncias para o ECS em execução no Amazon Linux 2 e versões posterioresFluxo de trabalho de implantação de instâncias para ECS em AL2 e versões posteriores](platforms-linux-extend.workflow.ecs-al2.md). 

Como existem muitas maneiras de estender a plataforma do ambiente, é útil saber o que acontece sempre que o Elastic Beanstalk provisiona ou implementa uma instância. O diagrama a seguir mostra todo esse fluxo de trabalho de implantação. Ele representa as diferentes fases de uma implantação e as etapas que o Elastic Beanstalk realiza em cada fase.

**Observações**  
O diagrama não representa o conjunto completo de etapas que o Elastic Beanstalk realiza em instâncias do ambiente durante a implantação. Nós fornecemos este diagrama como ilustração, para fornecer a você a ordem e o contexto para a execução de suas personalizações.
Para simplificar, o diagrama menciona apenas os subdiretórios de hook `.platform/hooks/*` (para implantações de aplicações), e não os subdiretórios de hook `.platform/confighooks/*` (para implantações de configurações). Os hooks nos últimos subdiretórios são executados durante exatamente as mesmas etapas que os hooks nos subdiretórios correspondentes mostrados no diagrama.

![\[Fluxo de trabalho para ordem de execução de extensões em uma instância de ambiente em execução em uma plataforma baseada no Amazon Linux.\]](http://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/images/platforms-linux-extend-order.png)


A lista a seguir detalha as fases e etapas de implantação.

1. **Passos iniciais**

   O Elastic Beanstalk baixa e extrai a aplicação. Após cada uma dessas etapas, o Elastic Beanstalk executa uma das etapas de extensibilidade.

   1. Executa comandos encontrados na seção [commands:](customize-containers-ec2.md#linux-commands) de qualquer arquivo de configuração.

   1. Executa todos os arquivos executáveis encontrados no diretório `.platform/hooks/prebuild` do pacote de origem (`.platform/confighooks/prebuild` para uma implantação de configuração).

1. **Configurar**

   O Elastic Beanstalk configura a aplicação e o servidor de proxy.

   1. Executa os comandos encontrados no `Buildfile` no pacote de origem.

   1. Copia seus arquivos de configuração de proxy personalizados, se você tiver algum no diretório `.platform/nginx` do pacote de origem, para seu local de runtime.

   1. Executa comandos encontrados na seção [container\$1commands:](customize-containers-ec2.md#linux-container-commands) de qualquer arquivo de configuração.

   1. Executa todos os arquivos executáveis encontrados no diretório `.platform/hooks/predeploy` do pacote de origem (`.platform/confighooks/predeploy` para uma implantação de configuração).

1. **Implante**

   O Elastic Beanstalk implanta e executa a aplicação e o servidor de proxy.

   1. Executa o comando encontrado no arquivo `Procfile` em seu pacote de origem.

   1. Executa ou executa novamente o servidor de proxy com seus arquivos de configuração de proxy personalizados, se você tiver algum.

   1. Executa todos os arquivos executáveis encontrados no diretório `.platform/hooks/postdeploy` do pacote de origem (`.platform/confighooks/postdeploy` para uma implantação de configuração).

# Fluxo de trabalho de implantação de instâncias para o ECS em execução no Amazon Linux 2 e versões posteriores
<a name="platforms-linux-extend.workflow.ecs-al2"></a>

A seção anterior descreve os recursos de extensibilidade compatíveis ao longo das fases do fluxo de trabalho de implantação da aplicação. Há algumas diferenças para ramificação da plataforma Docker no [*ECS em execução no Amazon Linux 2 e versões posteriores*](create_deploy_docker_ecs.md). Esta seção explica como esses conceitos se aplicam a essa ramificação específica da plataforma. 

Como existem muitas maneiras de estender a plataforma do ambiente, é útil saber o que acontece sempre que o Elastic Beanstalk provisiona ou implementa uma instância. O diagrama a seguir mostra todo esse fluxo de trabalho de implantação para um ambiente baseado nas ramificações de plataforma *ECS em execução no Amazon Linux 2* e *ECS em execução no Amazon Linux 2023*. Ele representa as diferentes fases de uma implantação e as etapas que o Elastic Beanstalk realiza em cada fase.

Ao contrário do fluxo de trabalho descrito na seção anterior, a fase de configuração da implantação não é compatível com os seguintes recursos de extensibilidade: comandos `Buildfile`, comandos `Procfile`, configuração de proxy reverso. 

**Observações**  
O diagrama não representa o conjunto completo de etapas que o Elastic Beanstalk realiza em instâncias do ambiente durante a implantação. Nós fornecemos este diagrama como ilustração, para fornecer a você a ordem e o contexto para a execução de suas personalizações.
Para simplificar, o diagrama menciona apenas os subdiretórios de hook `.platform/hooks/*` (para implantações de aplicações), e não os subdiretórios de hook `.platform/confighooks/*` (para implantações de configurações). Os hooks nos últimos subdiretórios são executados durante exatamente as mesmas etapas que os hooks nos subdiretórios correspondentes mostrados no diagrama.

![\[Fluxo de trabalho para ordem de execução de extensões em uma instância de ambiente na plataforma do Docker baseada no ECS.\]](http://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/images/platform-ecs-al2-extended-order.png)


A lista a seguir detalha as etapas do fluxo de trabalho de implantação.

1. Executa todos os arquivos executáveis encontrados no diretório `appdeploy/pre` em `EBhooksDir`.

1. Executa todos os arquivos executáveis encontrados no diretório `.platform/hooks/prebuild` do pacote de origem (`.platform/confighooks/prebuild` para uma implantação de configuração).

1. Executa todos os arquivos executáveis encontrados no diretório `.platform/hooks/predeploy` do pacote de origem (`.platform/confighooks/predeploy` para uma implantação de configuração).

1. Executa todos os arquivos executáveis encontrados no diretório `appdeploy/enact` em `EBhooksDir`.

1. Executa todos os arquivos executáveis encontrados no diretório `appdeploy/post` em `EBhooksDir`.

1. Executa todos os arquivos executáveis encontrados no diretório `.platform/hooks/postdeploy` do pacote de origem (`.platform/confighooks/postdeploy` para uma implantação de configuração).

A referência a `EBhooksDir` representa o caminho do diretório de hooks da plataforma. Para recuperar o nome do caminho do diretório, use a ferramenta de script [get-config](custom-platforms-scripts.md#custom-platforms-scripts.get-config) na linha de comando da instância do ambiente, como mostrado: 

```
$ /opt/elasticbeanstalk/bin/get-config platformconfig -k EBhooksDir
```

# Ferramentas de script de plataforma para ambientes Elastic Beanstalk
<a name="custom-platforms-scripts"></a>

Este tópico descreve as ferramentas que AWS Elastic Beanstalk fornecem para ambientes que usam plataformas Amazon Linux. As ferramentas estão localizadas nas EC2 instâncias Amazon dos ambientes do Elastic Beanstalk.

## get-config
<a name="custom-platforms-scripts.get-config"></a>

Use a ferramenta `get-config` para recuperar valores de variáveis de ambiente em texto simples e outras informações da plataforma e da instância. A ferramenta está disponível em `/opt/elasticbeanstalk/bin/get-config`.

### comandos get-config
<a name="custom-platforms-scripts.get-config.commands"></a>

Cada comando da ferramenta `get-config` retorna um tipo específico de informação. Use a sintaxe a seguir para executar os comandos de qualquer uma das ferramentas.

```
$ /opt/elasticbeanstalk/bin/get-config command [ options ]
```

O exemplo a seguir executa o comando `environment`:

```
$ /opt/elasticbeanstalk/bin/get-config environment -k PORT
```

Dependendo do comando e das opções que você escolher, a ferramenta retorna um objeto (JSON ou YAML) com pares de chave-valor ou um único valor.

Você pode testar `get-config` usando SSH para se conectar a uma EC2 instância em seu ambiente do Elastic Beanstalk.

**nota**  
Quando você executa `get-config` para teste, alguns comandos podem exigir privilégios de usuário raiz para acessar as informações subjacentes. Se você receber um erro de permissão de acesso, execute o comando novamente em `sudo`.  
Você não precisa adicionar `sudo` ao usar a ferramenta nos scripts implantados no ambiente. O Elastic Beanstalk executa todos os seus scripts como o usuário raiz.

As seções a seguir descrevem os comandos da ferramenta.

#### optionsettings: opções de configuração
<a name="custom-platforms-scripts.get-config.commands.optionsettings"></a>

O comando `get-config optionsettings` retorna um objeto listando as opções de configuração definidas no ambiente e usadas pela plataforma em instâncias do ambiente. Elas são organizadas por namespace.

```
$ /opt/elasticbeanstalk/bin/get-config optionsettings
{"aws:elasticbeanstalk:application:environment":{"JDBC_CONNECTION_STRING":""},"aws:elasticbeanstalk:container:tomcat:jvmoptions":{"JVM Options":"","Xms":"256m","Xmx":"256m"},"aws:elasticbeanstalk:environment:proxy":{"ProxyServer":"nginx","StaticFiles":[""]},"aws:elasticbeanstalk:healthreporting:system":{"SystemType":"enhanced"},"aws:elasticbeanstalk:hostmanager":{"LogPublicationControl":"false"}}
```

Para retornar o valor de uma opção de configuração específica, use a opção `--namespace` (`-n`) para especificar um namespace, e a opção `--option-name` (`-o`) para especificar o nome de uma opção.

```
$ /opt/elasticbeanstalk/bin/get-config optionsettings -n aws:elasticbeanstalk:container:php:phpini -o memory_limit
256M
```

#### environment : propriedades do ambiente
<a name="custom-platforms-scripts.get-config.commands.environment"></a>

O comando `get-config environment` retorna um objeto que contém uma lista de propriedades do ambiente, incluindo as que foram configuradas pelo usuário e fornecidas pelo Elastic Beanstalk. As propriedades configuradas pelo usuário são definidas no [console](environments-cfg-softwaresettings.md#environments-cfg-softwaresettings-console) como *Texto simples* ou com o namespace [aws:elasticbeanstalk:application:environment](command-options-general.md#command-options-general-elasticbeanstalkapplicationenvironment) da opção de configuração.

```
$ /opt/elasticbeanstalk/bin/get-config environment
{"JDBC_CONNECTION_STRING":"","RDS_PORT":"3306","RDS_HOSTNAME":"anj9aw1b0tbj6b.cijbpanmxz5u.us-west-2.rds.amazonaws.com","RDS_USERNAME":"testusername","RDS_DB_NAME":"ebdb","RDS_PASSWORD":"testpassword1923851"}
```

Por exemplo, o Elastic Beanstalk fornece propriedades de ambiente para conexão a uma instância de banco de dados integrada do Amazon RDS (por exemplo, `RDS_HOSTNAME`). Essas propriedades de conexão do RDS aparecem na saída do `get-config environment`. No entanto, elas não aparecem na saída do `get-config optionsettings`. Isso ocorre porque elas não foram definidas nas opções de configuração.

Para retornar uma propriedade específica do ambiente, use a opção `--key` (`-k`) para especificar uma chave de propriedade.

```
$ /opt/elasticbeanstalk/bin/get-config environment -k TESTPROPERTY
testvalue
```

**nota**  
A ferramenta `get-config` não pode recuperar [variáveis de ambiente que armazenam segredos](AWSHowTo.secrets.env-vars.md). Para obter mais informações sobre como recuperar programaticamente valores de segredos ou armazenamentos de parâmetros, consulte [Uso do Secrets Manager](AWSHowTo.secrets.Secrets-Manager-and-Parameter-Store.md#AWSHowTo.secrets.Secrets-Manager) ou [Usando Systems Manager Parameter Store](AWSHowTo.secrets.Secrets-Manager-and-Parameter-Store.md#AWSHowTo.secrets.SSM-parmameter-store).

#### contêiner: valores de configuração na instância
<a name="custom-platforms-scripts.get-config.commands.container"></a>

O comando `get-config container` retorna um objeto que lista valores de configuração de ambiente e plataforma para instâncias de ambiente. 

O exemplo a seguir mostra a saída do comando em um ambiente Tomcat do Amazon Linux 2.

```
$ /opt/elasticbeanstalk/bin/get-config container
{"common_log_list":["/var/log/eb-engine.log","/var/log/eb-hooks.log"],"default_log_list":["/var/log/nginx/access.log","/var/log/nginx/error.log"],"environment_name":"myenv-1da84946","instance_port":"80","log_group_name_prefix":"/aws/elasticbeanstalk","proxy_server":"nginx","static_files":[""],"xray_enabled":"false"}
```

Para retornar o valor de uma chave específica, use a opção `--key` (`-k`) para especificar a chave.

```
$ /opt/elasticbeanstalk/bin/get-config container -k environment_name
myenv-1da84946
```

#### addons: valores de configuração de complementos
<a name="custom-platforms-scripts.get-config.commands.addons"></a>

O comando `get-config addons` retorna um objeto que contém informações de configuração adicionadas ao complemento do ambiente. Use-o para recuperar a configuração de um banco de dados do Amazon RDS associado ao ambiente.

```
$ /opt/elasticbeanstalk/bin/get-config addons
{"rds":{"Description":"RDS Environment variables","env":{"RDS_DB_NAME":"ebdb","RDS_HOSTNAME":"ea13k2wimu1dh8i.c18mnpu5rwvg.us-east-2.rds.amazonaws.com","RDS_PASSWORD":"password","RDS_PORT":"3306","RDS_USERNAME":"user"}}}
```

É possível restringir o resultado de duas maneiras. Para recuperar valores de um complemento específico, use a opção `--add-on` (`-a`) para especificar o nome do complemento.

```
$ /opt/elasticbeanstalk/bin/get-config addons -a rds
{"Description":"RDS Environment variables","env":{"RDS_DB_NAME":"ebdb","RDS_HOSTNAME":"ea13k2wimu1dh8i.c18mnpu5rwvg.us-east-2.rds.amazonaws.com","RDS_PASSWORD":"password","RDS_PORT":"3306","RDS_USERNAME":"user"}}
```

Para retornar o valor de uma chave específica dentro de um complemento, adicione a opção `--key` (`-k`) para especificar a chave.

```
$ /opt/elasticbeanstalk/bin/get-config addons -a rds -k RDS_DB_NAME
ebdb
```

#### platformconfig: valores de configuração constantes
<a name="custom-platforms-scripts.get-config.commands.platformconfig"></a>

O comando `get-config platformconfig` retorna um objeto que contém informações de configuração da plataforma que são constantes para a versão da plataforma. A saída é a mesma em todos os ambientes que executam a mesma versão da plataforma. O objeto de saída do comando tem dois objetos incorporados:
+ `GeneralConfig`: contém informações constantes nas versões mais recentes de todas as ramificações de plataformas Amazon Linux 2 e Amazon Linux 2023.
+ `PlatformSpecificConfig`: contém informações que são constantes para a versão da plataforma e que são específicas para ela.

O exemplo a seguir mostra a saída do comando em um ambiente que usa o *Tomcat 8.5 executando a ramificação da plataforma Corretto 11*.

```
$ /opt/elasticbeanstalk/bin/get-config platformconfig
{"GeneralConfig":{"AppUser":"webapp","AppDeployDir":"/var/app/current/","AppStagingDir":"/var/app/staging/","ProxyServer":"nginx","DefaultInstancePort":"80"},"PlatformSpecificConfig":{"ApplicationPort":"8080","JavaVersion":"11","TomcatVersion":"8.5"}}
```

Para retornar o valor de uma chave específica, use a opção `--key` (`-k`) para especificar a chave. Essas chaves são exclusivas entre os dois objetos incorporados. Não é necessário especificar o objeto que contém a chave.

```
$ /opt/elasticbeanstalk/bin/get-config platformconfig -k AppStagingDir
/var/app/staging/
```

### Opções de saída get-config
<a name="custom-platforms-scripts.get-config.global"></a>

Use a opção `--output` para especificar o formato do objeto de saída. Os valores válidos são `JSON` (padrão) e `YAML`. Essa é uma opção global. Você deve especificá-la antes do nome do comando.

O exemplo a seguir retorna valores de opção de configuração no formato YAML.

```
$ /opt/elasticbeanstalk/bin/get-config --output YAML optionsettings
aws:elasticbeanstalk:application:environment:
  JDBC_CONNECTION_STRING: ""
aws:elasticbeanstalk:container:tomcat:jvmoptions:
  JVM Options: ""
  Xms: 256m
  Xmx: 256m
aws:elasticbeanstalk:environment:proxy:
  ProxyServer: nginx
  StaticFiles:
        - ""
aws:elasticbeanstalk:healthreporting:system:
  SystemType: enhanced
aws:elasticbeanstalk:hostmanager:
  LogPublicationControl: "false"
```

## pkg-repo
<a name="custom-platforms-scripts.pkg-repo"></a>

**nota**  
A ferramenta `pkg-repo` não está disponível para ambientes baseados em plataformas Amazon Linux 2023. No entanto, você pode aplicar manualmente as atualizações do pacote e do sistema operacional a uma instância AL2 023. Para obter mais informações, consulte [Gerenciamento de pacotes e atualizações do sistema operacional](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html) no *Guia do usuário do Amazon Linux 2023*

Em algumas circunstâncias urgentes, talvez seja necessário atualizar suas EC2 instâncias da Amazon com um patch de segurança do Amazon Linux 2 que ainda não foi lançado com as versões necessárias da plataforma Elastic Beanstalk. Você não pode executar uma atualização manual em seus ambientes do Elastic Beanstalk por padrão. Isso ocorre porque as versões da plataforma estão bloqueadas em uma versão específica do repositório do Amazon Linux 2. Esse bloqueio garante que as instâncias executem versões de software compatíveis e consistentes. Para casos urgentes, a ferramenta `pkg-repo` permite uma solução alternativa para atualizar manualmente os pacotes yum no Amazon Linux 2 se você precisar instalá-los em um ambiente antes de serem lançados em uma nova versão da plataforma do Elastic Beanstalk.

A ferramenta `pkg-repo` das plataformas Amazon Linux 2 permitem desbloquear os repositórios dos pacotes `yum`. Em seguida, você pode executar manualmente um **yum update** para um patch de segurança. Por outro lado, você pode seguir a atualização usando a ferramenta para bloquear os repositórios de pacotes yum para evitar atualizações adicionais. A `pkg-repo` ferramenta está disponível no `/opt/elasticbeanstalk/bin/pkg-repo` diretório de todas as EC2 instâncias em seus ambientes do Elastic Beanstalk.

As alterações usando a `pkg-repo` ferramenta são feitas somente na EC2 instância em que a ferramenta é usada. Elas não afetam outras instâncias nem impedem atualizações futuras do ambiente. Os exemplos fornecidos posteriormente neste tópico explicam como aplicar as alterações em todas as instâncias chamando os comandos `pkg-repo` de scripts e arquivos de configuração.

**Atenção**  
Nós não recomendamos essa ferramenta para a maioria dos usuários. Quaisquer alterações manuais aplicadas a uma versão desbloqueada da plataforma é considerada fora de banda. Essa opção só é viável para os usuários em circunstâncias urgentes que podem aceitar os seguintes riscos:  
Não é possível garantir que as versões dos pacotes sejam consistentes entre todas as instâncias de seus ambientes.
Não há garantias de que ambientes modificados usando-se a ferramenta `pkg-repo` funcionem corretamente. Eles não foram testados e verificados em plataformas compatíveis com o Elastic Beanstalk.
Recomendamos a aplicação de práticas recomendadas que incluem planos de teste e backout. Para ajudar a facilitar as melhores práticas, você pode usar o console do Elastic Beanstalk e o EB CLI para clonar um ambiente e trocar o ambiente. URLs Para obter mais informações sobre como usar essas operações, consulte [Implantações azuis/verdes](using-features.CNAMESwap.md) no capítulo *Gerenciar ambientes* deste guia.

Se você planeja editar manualmente os arquivos de configuração do repositório yum, execute a ferramenta `pkg-repo` primeiro. A ferramenta `pkg-repo` talvez não funcione como o esperado em um ambiente Amazon Linux 2 com arquivos de configuração do repositório yum editados manualmente. Isso ocorre porque a ferramenta pode não reconhecer as alterações de configuração.

Para obter mais informações sobre o repositório de pacotes Amazon Linux, consulte o tópico [Package repository](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-linux-ami-basics.html#package-repository) no *Amazon EC2 User Guide*.

### comandos pkg-repo
<a name="custom-platforms-scripts.pkg-repo.commands"></a>

Use a sintaxe a seguir para executar os comandos da ferramenta `pkg-repo`.

```
$ /opt/elasticbeanstalk/bin/pkg-repo command [options]
```

Os comandos de `pkg-repo` são os seguintes:
+ **lock**: bloqueia os repositórios de pacotes `yum` em uma versão específica
+ **unlock**: desbloqueia os repositórios de pacotes `yum` de uma versão específica
+ **status**: lista todos os repositórios de pacotes `yum` e o status de bloqueio atual deles
+ **help**: mostra ajuda geral ou ajuda para um comando

As opções a seguir se aplicam aos seguintes comandos.
+ `lock`, `unlock` e `status ` - opções: `-h`,`--help`, ou nenhum (padrão).
+ `help` – opções: `lock`, `unlock`, `status` ou nenhum (padrão).



O exemplo a seguir executa o comando **unlock**:

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo unlock
Amazon Linux 2 core package repo successfully unlocked
Amazon Linux 2 extras package repo successfully unlocked
```

O exemplo a seguir executa o comando **lock**:

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo lock
Amazon Linux 2 core package repo successfully locked
Amazon Linux 2 extras package repo successfully locked
```

O exemplo a seguir executa o comando **status**:

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo status
Amazon Linux 2 core package repo is currently UNLOCKED
Amazon Linux 2 extras package repo is currently UNLOCKED
```

O exemplo a seguir executa o comando **help** para o comando **lock**.

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo help lock
```

O exemplo a seguir executa o comando **help** para a ferramenta `pkg-repo`.

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo help
```

É possível testar `pkg-repo` usando SSH para se conectar a uma instância no ambiente do Elastic Beanstalk. Uma opção de SSH é o comando CLI do EB [**eb ssh**](eb3-ssh.md).

**nota**  
A ferramenta `pkg-repo` requer privilégios de usuário root para execução. Se você receber um erro de permissão de acesso, execute o comando novamente em `sudo`.  
Você não precisa adicionar `sudo` ao usar a ferramenta nos scripts ou arquivos de configuração que você implanta no seu ambiente. O Elastic Beanstalk executa todos os seus scripts como o usuário raiz.

### exemplos de pkg-repo
<a name="custom-platforms-scripts.pkg-repo.examples"></a>

A seção anterior fornece exemplos de linha de comando para testes em uma EC2 instância individual de um ambiente do Elastic Beanstalk. Essa abordagem pode ser útil para testes. No entanto, ela atualiza apenas uma instância por vez, portanto, não é prático aplicar alterações em todas as instâncias em um ambiente.

Uma abordagem mais pragmática é usar scripts de [hook de plataforma](platforms-linux-extend.hooks.md) ou um arquivo de configuração [`.ebextensions`](ebextensions.md) para aplicar as alterações em todas as instâncias de forma consistente.

O exemplo a seguir chama o `pkg-repo` de um arquivo de configuração da pasta [`.ebextensions`](ebextensions.md). O Elastic Beanstalk executa os comandos no arquivo `update_package.config` quando você implanta seu pacote-fonte de aplicação.

```
.ebextensions
└── update_package.config
```

Para receber a versão mais recente do pacote de *docker**,* essa configuração especifica o pacote de docker no comando **yum update**.

```
### update_package.config ###

commands:
  update_package:
    command: |
      /opt/elasticbeanstalk/bin/pkg-repo unlock
      yum update docker -y
      /opt/elasticbeanstalk/bin/pkg-repo lock
      yum clean all -y
      rm -rf /var/cache/yum
```

Essa configuração não especifica nenhum pacote no comando **yum update**. A consequência é que todas as atualizações disponíveis são aplicadas.

```
### update_package.config ###

commands:
  update_package:
    command: |
      /opt/elasticbeanstalk/bin/pkg-repo unlock
      yum update -y
      /opt/elasticbeanstalk/bin/pkg-repo lock
      yum clean all -y
      rm -rf /var/cache/yum
```

O exemplo a seguir chama o `pkg-repo` de um script bash como um [hook de plataforma](platforms-linux-extend.hooks.md). O Elastic Beanstalk executa o arquivo de script `update_package.sh` localizado no subdiretório `prebuild`.

```
.platform
└── hooks
    └── prebuild
        └── update_package.sh
```

Para receber a versão mais recente do pacote de *docker**,* esse script especifica o pacote do docker no comando **yum update**. Se o nome do pacote for omitido, todas as atualizações disponíveis serão aplicadas. O exemplo do arquivo de configuração anterior demonstra isso.

```
### update_package.sh ###

#!/bin/bash

/opt/elasticbeanstalk/bin/pkg-repo unlock
yum update docker -y
/opt/elasticbeanstalk/bin/pkg-repo lock
yum clean all -y
rm -rf /var/cache/yum
```

## download-source-bundle (Somente Amazon Linux AMI)
<a name="custom-platforms-scripts.download"></a>

Nas ramificações de plataforma da AMI do Amazon Linux (anteriores ao Amazon Linux 2), o Elastic Beanstalk fornece uma ferramenta adicional, que é `download-source-bundle`. Use essa ferramenta para baixar o código-fonte da sua aplicação durante a implantação da plataforma. A ferramenta está disponível em `/opt/elasticbeanstalk/bin/download-source-bundle`.

O script de exemplo `00-unzip.sh` está localizado na pasta `appdeploy/pre` em instâncias do ambiente. Ele demonstra como usar `download-source-bundle` para baixar o código-fonte da aplicação para a pasta `/opt/elasticbeanstalk/deploy/appsource` durante a implantação.