Categorias
última actualização de Março 09, 2020
um único app corre sempre em vários ambientes, incluindo pelo menos na sua máquina de desenvolvimento e na produção em Heroku. Um aplicativo de código aberto pode ser implantado em centenas de ambientes diferentes.
embora todos estes ambientes possam executar o mesmo código, eles geralmente têm configurações específicas do ambiente. Por exemplo, um ambiente de preparação e produção de um aplicativo pode usar diferentes baldes Amazon S3, o que significa que eles também precisam de credenciais diferentes para esses baldes.
a configuração específica do ambiente de um aplicativo deve ser armazenada em variáveis de ambiente (não no código fonte do aplicativo). Isto permite modificar a configuração de cada ambiente de forma isolada, e impede que as credenciais seguras sejam armazenadas no controle de versões. Saiba mais sobre como armazenar config no ambiente.
num host tradicional ou quando trabalha localmente, muitas vezes define variáveis de ambiente no seu ficheiro .bashrc
. Em Heroku, usas varas de configuração.
- gerir vars de configuração
- usando o CLI de Heroku
- Exibir a configuração atual var valores
- Definir uma configuração var
- Remover uma configuração var
- Usando o Heroku Dashboard
- Usando a Plataforma API
- acessando valores de VaR de configuração a partir do Código
- exemplos
- as Políticas de configuração var
- add-ons and config vars
- configuração Local
- modos de produção e desenvolvimento
gerir vars de configuração
sempre que definir ou remover uma var de configuração usando qualquer método, o seu aplicativo é reiniciado e uma nova versão é criada.
os valores de VaR de configuração são persistentes-eles permanecem no lugar ao longo de implantações e reiniciamentos de app. A menos que precises de mudar um valor, só precisas de o definir uma vez.
usando o CLI de Heroku
os comandos heroku config
do CLI de Heroku torna fácil gerir os vars de configuração do seu app.
Exibir a configuração atual var valores
$ heroku configGITHUB_USERNAME: joesmithOTHER_VAR: production$ heroku config:get GITHUB_USERNAMEjoesmith
Definir uma configuração var
$ heroku config:set GITHUB_USERNAME=joesmithAdding config vars and restarting myapp... done, v12GITHUB_USERNAME: joesmith
Remover uma configuração var
$ heroku config:unset GITHUB_USERNAMEUnsetting GITHUB_USERNAME and restarting myapp... done, v13
Usando o Heroku Dashboard
Você também pode editar a configuração vars a partir do seu aplicativo Settings
guia no Heroku Dashboard:
Usando a Plataforma API
Você pode gerenciar o aplicativo de configuração de variáveis por meio de programação com o Heroku Plataforma API usando um simples HTTPS RESTO do cliente e JSON estruturas de dados. Você precisa de um token de acesso Heroku válido que represente um usuário com permissões adequadas no aplicativo.
acessando valores de VaR de configuração a partir do Código
vars de configuração são expostos ao código do seu app como variáveis de ambiente. Por exemplo, no nó.js pode aceder à sua aplicação DATABASE_URL
config var com process.env.DATABASE_URL
.
exemplos
adicione alguns vars de configuração para as suas chaves de conta S3:
$ cd myapp$ heroku config:set S3_KEY=8N029N81 S3_SECRET=9s83109d3+583493190Setting config vars and restarting myapp... done, v14S3_KEY: 8N029N81S3_SECRET: 9s83109d3+583493190
configure o seu código para ler os vars à hora de execução. Por exemplo, em Ruby você acede às variáveis de ambiente usando o padrão ENV
– então agora você pode escrever um inicializador como assim:
AWS::S3::Base.establish_connection!( :access_key_id => ENV, :secret_access_key => ENV)
no nó.js, use process.env
para aceder a variáveis de ambiente:
const aws = require('aws-sdk');let s3 = new aws.S3({ accessKeyId: process.env.S3_KEY, secretAccessKey: process.env.S3_SECRET});
Em Java, você pode acessá-lo através de chamadas para System.getenv('key')
, como:
S3Handler = new S3Handler(System.getenv("S3_KEY"), System.getenv("S3_SECRET"))
Em Python, usando a biblioteca boto:
from boto.s3.connection import S3Connections3 = S3Connection(os.environ, os.environ)
Agora, após a implantação Heroku, o aplicativo utilize as teclas definida na configuração.
as Políticas de configuração var
- as chaves de configuração var devem usar apenas caracteres alfanuméricos e o carácter sublinhado (
_
) para garantir que são acessíveis a partir de todas as linguagens de programação. As teclas Config var não devem incluir o carácter hífen. - dados da var de configuração (a combinação de todas as chaves e valores) não pode exceder 32kb para cada aplicação.
- as chaves de VaR de configuração não devem começar com um duplo sublinhado (
__
). - a chave de uma var de configuração não deve começar com
HEROKU_
a menos que seja definida pela própria plataforma de Heroku.
add-ons and config vars
se você fornecer um add-on para o seu app, ele geralmente adiciona um ou mais vars de config para o app. Os valores destes vars de configuração podem ser atualizados pelo provedor add-on a qualquer momento.
veja os valores adicionais podem mudar para saber mais sobre add-ons e como eles usam vars de configuração.
configuração Local
Use a ferramenta da linha de comandos local do Heroku para executar a sua aplicação localmente.
modos de produção e desenvolvimento
muitas línguas e estruturas suportam um modo de desenvolvimento. Isto normalmente permite mais depuração, bem como recarga dinâmica ou recompilação de arquivos fonte alterados.
por exemplo, em um ambiente de Ruby, você poderia definir uma var de configuração RACK_ENV
para development
para permitir tal modo.
é importante entender e manter o controle destes vars de configuração em uma app de produção Heroku. Enquanto um modo de desenvolvimento é tipicamente grande para o desenvolvimento, não é tão grande para a produção, porque pode degradar o desempenho.