---
# System prepended metadata

title: Environment Variables

---

# Environment Variables

#### PUBSUB
* **PUBSUB_PROJECT_ID**
    * Identificador do projeto no PubSub
* **GOOGLE_APPLICATION_CREDENTIALS**
    * Credenciais da GCP
* **EVENT_TOPIC_RELATION**
    * Expressa a relação entre os eventos que consumimos e os tópicos nos quais eles serão publicados
* **PUBSUB_CONTEXT_TIMEOUT**
    * Configuração do tempo máximo para iniciar o *client* e os tópicos do PubSub antes de dar *timeout*
* **PUBSUB_TIMEOUT**
    * O tempo máximo que o *client* vai tentar publicar um lote de mensagens
* **PUBSUB_DELAY_THRESHOLD**
    * Publica um lote de mensagens não vazio após passar esse prazo
* **PUBSUB_COUNT_THRESHOLD**
    * Determina o número de mensagens a serem publicadas por lote no PubSub. Defina como 1 para que as mensagens sejam publicadas imediatamente
* **PUBSUB_BYTE_THRESHOLD**
    * Publica um lote de mensagens após ele atingir o número de bytes definido nessa variável.

---

#### AMQP
* **AMQP_URL**
    * *Hostname* do RabbitMQ
* **AMQP_USERNAME**
    * Nome de usuário para acesso ao RabbitMQ
* **AMQP_PASSWORD**
    * Senha para acesso ao RabbitMQ
* **AMQP_CHANNEL_MAX**
    * Número máximo de canais que podem ser abertos. Valor deve ser, no mínimo, o valor da variável `COORDINATOR_NUMBER_CONCURRENT_CONSUMERS` acrescido de 1
* **AMQP_HEARTBEAT_INTERVAL**
    * Intervalo de tempo para verificar se a conexão TCP continua acessível
* **AMQP_HANDSHAKE_TIMEOUT**
    * Tempo limite para estabelecer uma conexão TCP
* **AMQP_RETRY_ATTEMPTS**
    * Número máximo de retentativas de publicação na fila
* **AMQP_RETRY_INTERVAL**
    * Intervalo de tempo máximo entre retentativas de publicação
* **AMQP_RETRY_VARIATION**
    * Variação do tempo de retentativa de publicação

---

#### TOPOLOGY
* **TOPOLOGY_AFFILIATION_EXCHANGE_NAME**
    * Nome da *exchange* no RabbitMQ
* **TOPOLOGY_AFFILIATION_EVENTS_QUEUE_NAME**
    * Nome da fila no RabbitMQ
* **TOPOLOGY_AFFILIATION_ROUTING_KEY**
    * Chave de roteamento da fila
* **TOPOLOGY_DEADLETTER_EXCHANGE_NAME**
    * Nome da *exchange* de *DeadLetter*
* **TOPOLOGY_DEADLETTER_QUEUE_NAME**
    * Nome da fila de *DeadLetter*
* **TOPOLOGY_DEADLETTER_ROUTING_KEY**
    * Chave de roteamento da fila de *DeadLetter*

---

#### COORDINATOR
* **COORDINATOR_NUMBER_CONCURRENT_CONSUMERS**
    * Número máximo de consumidores concorrentes
* **COORDINATOR_CONSUMERS_THROUGHPUT**
    * Define quantas mensagens em movimento cada consumidor deve receber
* **CONSUME_ENABLED**
    * Define se o consumo de eventos do RabbitMQ está ativado ou não. Uma vez que o consumo de eventos estiver desativado, canais de consumo e de publicação não serão criados

---

#### CONSUMER
* **CONSUMER_CONSUMING_QUEUE**
    * Nome da fila da qual as mensagens vão ser consumidas, equivalente à variável `TOPOLOGY_AFFILIATION_EVENTS_QUEUE_NAME`.
* **CONSUMER_MAX_ATTEMPTS**
    * Número máximo de retentativas de consumo do evento
* **CONSUMER_PROCESSING_TIMEOUT**
    * Tempo limite para processamento de evento em segundos

---

#### NEW RELIC
* **NEWRELIC_KEY**
    * Chave do *New Relic*
* **NEWRELIC_APP_NAME**
    * Nome da aplicação no *New Relic*
* **NEWRELIC_ENABLED**
    * Habilitar métricas para *New Relic*
* **NEWRELIC_DISTRIBUTED_TRACE_ENABLED**
    * Habilitar rastreamento distribuído do *New Relic*

---

#### APP
* **APPLICATION_DEBUG_MODE**
    * Habilitar modo *debug*
* **APPLICATION_PRODUCT_COMPANY**
    * Nome da companhia dona da aplicação
* **APPLICATION_PRODUCT_NAME**
    * Nome da aplicação
* **APPLICATION_PRODUCT_VERSION**
    * Versão da aplicação

---

#### LOCAL ENVIRONMENT
* **PUBSUB_EMULATOR_HOST**
    * *Hostname* do PubSub em ambiente local
* **PUBSUB_EMULATOR_TOPIC**
    * Tópicos de eventos
* **PUBSUB_PROJECT_ID**
    * Identificador do projeto no PubSub em ambiente local
