Entender configurações do aplicativo do Azure Functions

Concluído

Como engenheiro da Tailwind Traders, você está trabalhando em uma API que se conecta a um banco de dados. Sua API se conectará a esse banco de dados por meio de uma cadeia de conexão de banco de dados. Neste módulo, você aprenderá as melhores práticas para armazenar informações confidenciais, como cadeias de conexão em uma API do Azure Functions.

Armazenar as cadeias de conexão como configuração do aplicativo

É uma boa ideia evitar cadeias de conexão de hard-coding. Você provavelmente usará a cadeia de conexão em arquivos diferentes. Há uma chance de que ela possa ser alterada no futuro.

Você desejará armazenar a cadeia de conexão como uma configuração de aplicativo:

  • As configurações do aplicativo são especificadas em um local e referenciadas em todo o aplicativo.
  • Eles podem ser facilmente alterados em qualquer momento no futuro sem a necessidade de alterar o código.
  • As configurações do aplicativo nunca fazem check-in no controle do código-fonte.

Um projeto do Azure Functions tem um arquivo local.settings.json. Esse arquivo contém um conjunto de pares de chave/valor que o aplicativo usa como valores de configuração ao desenvolver localmente. Você pode adicionar itens próprios ao objeto Values. Você pode acessar esses valores de seu código.

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "node",
    "AzureWebJobsFeatureFlags": "EnableWorkerIndexing"
  }
}

Se você quiser adicionar uma cadeia de conexão, poderá adicionar outra propriedade chamada "CONNECTION_STRING" (ou como quiser chamá-la) e, em seguida, passar a cadeia de conexão para o banco de dados.

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "node",
    "AzureWebJobsFeatureFlags": "EnableWorkerIndexing",
     "CONNECTION_STRING": "AccountEndpoint=https://tailwind-traders-7071.documents.azure.com:443/;AccountKey=123456;"
  }
}

Como acessar as configurações do aplicativo no código do Azure Functions

Para acessar esses valores de configuração em seu Azure Functions a partir do JavaScript, use o objeto process.env. Ela contém todos os pares chave/valor especificados no arquivo local.settings.json.

O código a seguir, encontrado em ./api/src/services/product.services.ts, lê a cadeia de conexão do objeto process.env para criar o objeto CosmosClient para acessar o serviço do Azure Cosmos DB.

let client = new CosmosClient(process.env.CONNECTION_STRING);

Agora você sabe como armazenar com segurança uma cadeia de conexão durante o desenvolvimento local e como fazer referência a essa cadeia de caracteres no seu aplicativo.