Propriedades de ambientes e outras configurações de software - AWS Elastic Beanstalk

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

Propriedades de ambientes e outras configurações de software

A página de configuração Configurar atualizações, monitoramento e logs permite configurar o software nas instâncias do Amazon Elastic Compute Cloud (Amazon EC2) que executam a aplicação. É possível configurar propriedades do ambiente, armazenamento de logs de instância, streaming e depuração do AWS X-Ray e configurações específicas da plataforma.

Definir configurações específicas da plataforma

Além do conjunto padrão de opções disponíveis para todos os ambientes, a maioria das plataformas do Elastic Beanstalk permite que você use configurações específicas de linguagens ou de estruturas de trabalho. Eles aparecem na seção Plataforma de software da página Configurar atualizações, monitoramento e logs e podem assumir as seguintes formas.

  • Propriedades predefinidas do ambiente: a Plataforma Ruby utiliza propriedades do ambiente para configurações de estruturas de trabalho, como RACK_ENV e BUNDLE_WITHOUT.

  • Propriedades de placeholder do ambiente: a plataforma Tomcat define uma propriedade de ambiente chamada JDBC_CONNECTION_STRING que não tem nenhum valor definido. Esse tipo de configuração era mais comuns em versões mais antigas da plataforma.

  • Opções de configuração: a maioria das plataformas define as opções de configuração em namespaces específicos da plataforma ou compartilhados, como aws:elasticbeanstalk:xray ou aws:elasticbeanstalk:container:python.

Como definir configurações específicas da plataforma no console do Elastic Beanstalk
  1. Abra o console do Elastic Beanstalk e, na lista Regions (Regiões), selecione a sua Região da AWS.

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

    nota

    Se você tiver muitos ambientes, use a barra de pesquisa para filtrar a lista de ambientes.

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

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

  5. Em Software da plataforma), faça as alterações necessárias na configuração da opção.

  6. Para salvar as alterações, escolha Apply (Aplicar) na parte inferior da página.

Para obter mais informações sobre as opções específicas da plataforma e sobre como obter valores de propriedade de ambiente no seu código, consulte o tópico da plataforma para sua linguagem ou estrutura:

Configurar propriedades do ambiente (variáveis de ambiente)

É possível usar as propriedades do ambiente (também conhecidas como variáveis de ambiente) para passar segredos, endpoints, configurações de depuração e outras informações para a aplicação. As propriedades do ambiente ajudam você a executar seu aplicativo em vários ambientes para finalidades diferentes, como desenvolvimento, teste, preparação e produção.

Além disso, quando você adiciona um banco de dados ao ambiente, o Elastic Beanstalk define propriedades do ambiente, como RDS_HOSTNAME, que pode ser lido no código da aplicação para criar um objeto ou string de conexão.

Variáveis de ambiente

Na maioria dos casos, as propriedades de ambientes são transferidas para o seu aplicativo como variáveis de ambiente, mas o comportamento depende da Plataforma. Por exemplo, a Plataforma Java SE define variáveis de ambiente que você recupera com System.getenv, enquanto a Plataforma Tomcat define as propriedades do sistema Java que você recupera com System.getProperty. Em geral, as propriedades não são visíveis se você se conectar a uma instância e executar env.

Como configurar as propriedades do ambiente no console do Elastic Beanstalk
  1. Abra o console do Elastic Beanstalk e, na lista Regions (Regiões), selecione a sua Região da AWS.

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

    nota

    Se você tiver muitos ambientes, use a barra de pesquisa para filtrar a lista de ambientes.

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

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

  5. Role para baixo até Propriedades do ambiente.

  6. Selecione Adicionar propriedade do ambiente.

  7. Insira os pares Nome e Valor da propriedade.

  8. Se for necessário adicionar mais variáveis, repita a Etapa 6 e a Etapa 7.

  9. Para salvar as alterações, escolha Apply (Aplicar) na parte inferior da página.

Limites de propriedades de ambiente
  • As chaves podem conter caracteres alfanuméricos e os seguintes símbolos: _ . : / + \ - @

    Os símbolos listados são válidos para chaves de propriedade do ambiente, mas podem não ser válidos para nomes de variáveis de ambiente na plataforma do seu ambiente. Para compatibilidade com todas as plataformas, limite as propriedades do ambiente ao padrão a seguir: [A-Z_][A-Z0-9_]*

  • Os valores podem conter caracteres alfanuméricos, espaço em branco e os seguintes símbolos: _ . : / = + \ - @ ' "

    nota

    Alguns caracteres em valores de propriedades de ambiente devem ser escapados. Use o caractere de barra invertida (\) para representar alguns caracteres especiais e de controle. A lista a seguir inclui exemplos para representar alguns caracteres que precisam ser escapados:

    • barra invertida (\): para representar, use \\

    • aspas simples ('): para representar, use \'

    • aspas duplas ("): para representar, use \"

  • As chaves e os valores diferenciam letras maiúsculas de minúsculas.

  • O tamanho total de todas as propriedades de ambiente não pode exceder 4.096 bytes quando forem armazenadas como sequências de caracteres com o formato de chave=valor.

Namespaces de configurações de software

Você pode usar um arquivo de configuração para definir opções de configuração e executar outras tarefas de configuração de instância durante implantações. As opções de configuração podem ser definidas pelo serviço Elastic Beanstalk ou pela plataforma utilizada, e são organizadas em namespaces.

É possível usar os arquivos de configuração do Elastic Beanstalk para definir propriedades do ambiente e opções de configuração em seu código-fonte. Use o aws:elasticbeanstalk:application:environment namespace para definir propriedades do ambiente.

exemplo .ebextensions/options.config
option_settings: aws:elasticbeanstalk:application:environment: API_ENDPOINT: www.example.com/api

Se você usar arquivos de configuração ou modelos do AWS CloudFormation para criar recursos personalizados, poderá usar uma função do AWS CloudFormation para obter informações sobre o recurso e atribuí-lo dinamicamente a uma propriedade do ambiente durante a implantação. O exemplo a seguir do repositório elastic-beanstalk-samples GitHub usa a função Ref para obter o ARN de um tópico do Amazon SNS que ele cria, e o atribui a uma propriedade de ambiente denominada NOTIFICATION_TOPIC.

Observações
  • Se você usar uma função do AWS CloudFormation para definir uma propriedade de ambiente, o console do Elastic Beanstalk exibirá o valor da propriedade antes que a função seja avaliada. Você pode usar o script de plataforma get-config para confirmar os valores das propriedades do ambiente que estão disponíveis para seu aplicativo.

  • A plataforma Docker de vários contêineres não usa o AWS CloudFormation para criar recursos de contêiner. Como resultado, essa Plataforma não oferece suporte para definir as propriedades de ambiente usando as funções AWS CloudFormation.

exemplo .Ebextensions/sns-topic.config
Resources: NotificationTopic: Type: AWS::SNS::Topic option_settings: aws:elasticbeanstalk:application:environment: NOTIFICATION_TOPIC: '`{"Ref" : "NotificationTopic"}`'

Você também pode usar esse recurso para propagar informações de pseudoparâmetros do AWS CloudFormation. Este exemplo obtém a região atual e a atribui a uma propriedade chamada AWS_REGION.

exemplo .Ebextensions/env-regionname.config
option_settings: aws:elasticbeanstalk:application:environment: AWS_REGION: '`{"Ref" : "AWS::Region"}`'

A maioria das plataformas do Elastic Beanstalk define namespaces adicionais com opções para configurar o software que é executado na instância, como o proxy inverso que retransmite solicitações para sua aplicação. Para obter mais informações sobre os namespaces disponíveis para a sua plataforma, consulte a seguir:

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 para obter mais informações.

Acessar propriedades de ambiente

Na maioria dos casos, você acessa as propriedades do ambiente no código do seu aplicativo, como uma variável de ambiente. Porém, em geral, as propriedades do ambiente são transferidas apenas para o aplicativo e não podem ser visualizadas conectando uma instância em seu ambiente e executando-a env.

  • Go: os.Getenv

    endpoint := os.Getenv("API_ENDPOINT")
  • Java SE: System.getenv

    String endpoint = System.getenv("API_ENDPOINT");
  • Tomcat: System.getProperty

    String endpoint = System.getProperty("API_ENDPOINT");
  • .NET Core no Linux: Environment.GetEnvironmentVariable

    string endpoint = Environment.GetEnvironmentVariable("API_ENDPOINT");
  • .NET: appConfig

    NameValueCollection appConfig = ConfigurationManager.AppSettings; string endpoint = appConfig["API_ENDPOINT"];
  • Node.js: process.env

    var endpoint = process.env.API_ENDPOINT
  • PHP: $_SERVER

    $endpoint = $_SERVER['API_ENDPOINT'];
  • Python: os.environ

    import os endpoint = os.environ['API_ENDPOINT']
  • Ruby: ENV

    endpoint = ENV['API_ENDPOINT']

Fora do código do aplicativo, como em um script que é executado durante a implantação, você pode acessar as propriedades do ambiente com a get-config Plataforma de script. Consulte o repositório GitHub do elastic-beanstalk-samples para obter exemplos de configurações que usam get-config.