

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

# Usar a plataforma Go do Elastic Beanstalk
<a name="go-environment"></a>

Este tópico descreve como configurar, criar e executar suas aplicações Go no Elastic Beanstalk.

AWS Elastic Beanstalk suporta várias ramificações de plataforma para diferentes versões da linguagem de programação Go. Consulte [Go](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.go) no documento *Plataformas do AWS Elastic Beanstalk * para uma lista completa.

Quanto aos aplicativos simples em Go, há duas formas de implantá-los:
+ Forneça um pacote de origem com um arquivo de origem na raiz chamado `application.go`, que contém o pacote principal do seu aplicativo. O Elastic Beanstalk cria o binário usando o seguinte comando:

  ```
  go build -o bin/application application.go
  ```

  Depois que a aplicação é criada, o Elastic Beanstalk a inicia na porta 5000.
+ Forneça um pacote de origem com um arquivo binário chamado `application`. O arquivo binário pode ficar localizado na raiz do pacote de origem ou no diretório `bin/` do pacote de origem. Se você colocar o arquivo binário `application` nos dois locais, o Elastic Beanstalk usará o arquivo do diretório `bin/`.

  O Elastic Beanstalk inicia essa aplicação na porta 5000.

Em ambos os casos, com nossas ramificações da plataforma Go compatíveis, você também pode fornecer requisitos de módulo em um arquivo `go.mod`. Para obter mais informações, consulte [Migrar para módulos Go](https://blog.golang.org/migrating-to-go-modules) no blog do Go.

Quanto aos aplicativos mais complexos em Go, há duas formas de implantá-los:
+ Forneça um pacote de origem que inclua os arquivos de origem do aplicativo, juntamente com um [Buildfile](go-buildfile.md) e um [Procfile](go-procfile.md). O Buildfile inclui um comando para criar o aplicativo e o Procfile inclui instruções para executar o aplicativo.
+ Forneça um pacote de origem que inclua os arquivos binários do aplicativo, juntamente com um Procfile. O Procfile inclui instruções para executar o aplicativo.

A plataforma Go inclui um servidor de proxy para atender a ativos estáticos e encaminhar o tráfego para sua aplicação. Você pode [estender ou substituir a configuração de proxy padrão](go-nginx.md) para cenários avançados.

Para obter detalhes sobre as várias maneiras de estender uma plataforma do Elastic Beanstalk baseada em Linux, consulte [Estender as plataformas Linux do Elastic Beanstalk](platforms-linux-extend.md).

## Configurar o ambiente Go
<a name="go-options"></a>

As configurações da plataforma Go permitem que você ajuste o comportamento de suas instâncias da Amazon EC2 . Você pode editar a configuração da instância Amazon do ambiente do Elastic Beanstalk usando o console EC2 do Elastic Beanstalk.

Você pode usar o console do Elastic Beanstalk para habilitar a alternância de logs para o Amazon S3 e configurar variáveis que sua aplicação pode ler no ambiente.

**Como configurar o ambiente Go no console do Elastic Beanstalk**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. No painel de navegação, escolha **Configuration (Configuração)**.

1. Na categoria de configuração **Updates, monitoring, and logging (Atualizações, monitoramento e logs)**, escolha **Edit (Editar)**.

### Opções de log
<a name="go-options-logs"></a>

A seção Log Options tem duas configurações:
+ **Instance profile (Perfil da instância)**: especifica o perfil da instância que tem permissão para acessar o bucket do Amazon S3 associado à sua aplicação.
+ **Habilitar a rotação de arquivos de log para o Amazon S3** — Especifica se os arquivos de log das EC2 instâncias da Amazon do seu aplicativo são copiados para o bucket do Amazon S3 associado ao seu aplicativo.

### Arquivos estáticos
<a name="go-options-staticfiles"></a>

Para melhorar a performance, você pode usar a seção **Static files** (Arquivos estáticos) para configurar o servidor proxy para servir arquivos estáticos (por exemplo, HTML ou imagens) de um conjunto de diretórios dentro da aplicação Web. Defina, para cada diretório, o caminho virtual para mapeamento de diretórios. Quando o servidor de proxy recebe uma solicitação para um arquivo no caminho especificado, ele atende o arquivo diretamente em vez de rotear solicitação para seu aplicativo.

Para ver detalhes sobre como configurar arquivos estáticos usando arquivos de configuração ou o console do Elastic Beanstalk, consulte [Fornecer arquivos estáticos](environment-cfg-staticfiles.md).

### Propriedades de ambiente
<a name="go-options-properties"></a>

A seção **Propriedades do ambiente** permite que você especifique as configurações do ambiente nas EC2 instâncias da Amazon que estão executando seu aplicativo. As propriedades de ambiente são passadas para o aplicativo como pares de chave-valor.

No ambiente Go executado no Elastic Beanstalk, as variáveis de ambiente podem ser acessadas usando a função `os.Getenv`. Por exemplo, você pode ler uma propriedade denominada `API_ENDPOINT` em uma variável com o seguinte código:

```
endpoint := os.Getenv("API_ENDPOINT")
```

Consulte [Variáveis de ambiente e outras configurações de software](environments-cfg-softwaresettings.md) para obter mais informações.

## Namespace de configuração do Go
<a name="go-namespaces"></a>

Você pode usar um [arquivo de configuração](ebextensions.md) para definir opções de configuração e executar outras tarefas de configuração de instância durante implantações. Opções de configuração podem ser [específicas da plataforma](command-options-specific.md) ou aplicáveis a [todas as plataformas](command-options-general.md) no serviço Elastic Beanstalk como um todo. As opções de configuração são organizadas em *namespaces*.

A plataforma Go não define nenhum namespace específico da plataforma. É possível configurar o proxy para servir arquivos estáticos usando o namespace `aws:elasticbeanstalk:environment:proxy:staticfiles`. Para obter detalhes e um exemplo, consulte [Fornecer arquivos estáticos](environment-cfg-staticfiles.md).

O Elastic Beanstalk oferece muitas opções de configuração para personalizar o ambiente. Além de arquivos de configuração, você também pode definir opções de configuração usando o console, configurações salvas, a EB CLI ou a AWS CLI. Consulte [Opções de configuração](command-options.md) para obter mais informações.

## A plataforma Go da AMI do Amazon Linux (anterior ao Amazon Linux 2)
<a name="go.alami"></a>

Se o ambiente Go do Elastic Beanstalk usar uma versão da plataforma AMI do Amazon Linux (anterior ao Amazon Linux 2), leia as informações adicionais nesta seção.

**Observações**  
As informações neste tópico se aplicam somente às ramificações da plataforma baseadas no Amazon Linux AMI (AL1). AL2As ramificações AL2 da plataforma 023/ são incompatíveis com as versões anteriores da plataforma Amazon Linux AMI (AL1) e *exigem configurações diferentes*.
 [Em 18 de julho de 2022,](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-07-18-linux-al1-retire.html) **o Elastic Beanstalk definiu o status de todas as ramificações da plataforma baseadas no Amazon Linux AMI AL1 () como descontinuadas.** Para obter mais informações sobre como migrar para uma ramificação da plataforma Amazon Linux 2023 atual e totalmente compatível, consulte [Migrar a aplicação Linux do Elastic Beanstalk para o Amazon Linux 2023 ou Amazon Linux 2](using-features.migration-al.md).

### Namespaces de configuração Go — Amazon Linux AMI () AL1
<a name="go.alami.namespaces"></a>

Você pode usar um [arquivo de configuração](ebextensions.md) para definir opções de configuração e executar outras tarefas de configuração de instância durante implantações. Opções de configuração podem ser [específicas da plataforma](command-options-specific.md) ou aplicáveis a [todas as plataformas](command-options-general.md) no serviço Elastic Beanstalk como um todo. As opções de configuração são organizadas em *namespaces*.

**nota**  
As informações neste tópico se aplicam somente às ramificações da plataforma baseadas no Amazon Linux AMI (AL1). AL2As ramificações AL2 da plataforma 023/ são incompatíveis com as versões anteriores da plataforma Amazon Linux AMI (AL1) e *exigem configurações diferentes*.

A plataforma Go da AMI do Amazon Linux é compatível com um namespace de configuração específico da plataforma, além dos [namespaces compatíveis com todas as plataformas](command-options-general.md). O namespace `aws:elasticbeanstalk:container:golang:staticfiles` permite que você defina opções que mapeiam os caminhos em seu aplicativo Web para as pastas em seu pacote de origem do aplicativo que incluem o conteúdo estático.

Por exemplo, este [arquivo de configuração](ebextensions.md) informa ao servidor de proxy que deve servir arquivos da pasta `staticimages` no caminho `/images`:

**Example .ebextensions/go-settings.config**  

```
option_settings:
  aws:elasticbeanstalk:container:golang:staticfiles:
    /html: statichtml
    /images: staticimages
```

O Elastic Beanstalk oferece muitas opções de configuração para personalizar o ambiente. Além de arquivos de configuração, você também pode definir opções de configuração usando o console, configurações salvas, a EB CLI ou a AWS CLI. Consulte [Opções de configuração](command-options.md) para obter mais informações.