Você pode remapear / copiar / alias de variáveis de ambiente para novas no AWstal elástico do AWS?

2

Neste momento, minhas variáveis de banco de dados são definidas como RDS_* , no entanto, eu gostaria de remapear as convenções do meu aplicativo.

Isso ajudaria a evitar a gravação de detecções específicas da AWS dentro do meu projeto, o que é obviamente desejável.

    
por Omega 26.05.2015 / 16:01

1 resposta

2

Existem algumas opções diferentes, cada uma com suas próprias armadilhas:

1. Adicionando Variáveis de Ambiente à Configuração do EB

Quando dentro de seu ambiente, navegue até a seção Configuração e, em seguida, Configuração de software. Lá você verá uma lista de variáveis de ambiente e na parte inferior você pode listar suas próprias variáveis personalizadas. A desvantagem disso é que agora existe uma maneira de mapear dinamicamente os valores das variáveis de ambiente da AWS. Se um valor na AWS for alterado, você precisará atualizar manualmente o seu. É mais provável que isso aconteça no caso de você atualizar / fazer o downgrade do seu banco de dados. Portanto, você desejará atualizar o host do banco de dados para o novo ponto de extremidade do RDS. (NOTA: Isto é baseado em opções disponíveis para ambientes PHP. Eu já vi variações para outros idiomas, mas pode ser uma documentação antiga.)

2. Adicionando um script de implantação de postagem

Isso é um pouco trabalhoso com o beanstalk, mas é possível executar scripts pós-implantação. Eu não vou entrar em grande detalhe, mas basicamente você vai precisar adicionar scripts post deploy como descrito neste article para um bean de bean padrão ami. Em seguida, você precisará copiar a instância como uma nova ami e alterná-la nas instâncias do beanstalk para usá-la por padrão. No script post deploy, você pode adicionar o mapeamento às suas variáveis de ambiente.

3. Adicionando o mapeamento ao seu código

Eu sei que você não quer fazer isso, mas acho que isso seria a menor quantidade de dor de cabeça para você. Eu incluí um exemplo muito simples no PHP. Tenha cuidado ao trocar o $ _ENV e o getenv () / putenv () / $ _ SERVER se você usar o PHP, pois eles são extraídos de diferentes fontes e podem ser alterados independentemente.

<?php
    if(getenv('RDS_VAR')) {
        putenv('NEW_VAR', getenv('RDS_VAR'))
    }
?>

Considerações finais

Eu uso uma combinação de 1 e 3 ao implantar um aplicativo no Beanstalk, pois ele oferece mais flexibilidade ao lidar com variáveis de ambiente dinâmicas. Primeiro mapeio os valores para a configuração de meus aplicativos, conforme descrito no item 3, se quiser planejar a possibilidade de trocar o ponto de extremidade, a senha ou o nome de usuário do RDS, posso adicionar variáveis de ambiente como mencionado em # 1 e colocar substituições em meu env AWS mapeamento. Isso me permite ficar em sincronia com as variáveis de ambiente da AWS, mas também substituí-las manualmente na configuração do software, se eu precisar trocar o banco de dados por um backup.

    
por 02.06.2015 / 11:56