了解 Azure Functions 应用设置

已完成

你是一名 Tailwind Traders 工程师,正在处理连接到数据库的 API。 该 API 通过数据库连接字符串连接到相应数据库。 在本模块中,你将了解在 Azure Functions API 中存储敏感信息(如连接字符串)的最佳做法。

将连接字符串存储为应用设置

最好不要对连接字符串进行硬编码。 你可能会在不同的文件中使用连接字符串,并且将来可能会更改。

你需要将连接字符串存储为应用设置:

  • 可在一个位置指定应用设置,并在整个应用中引用它。
  • 在将来的任意时间点都可以轻松更改这些设置,而无需更改代码。
  • 应用设置永远不会签入到源代码管理中。

Azure Functions 项目有一个 local.settings.json 文件。 在本地开发时此文件包含由应用用作配置值的一组键/值对。 你可以将自己的项添加到 Values 对象。 可以从代码访问这些值。

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

如果你想要添加连接字符串,可以添加另一个名为“CONNECTION_STRING”(或任意名称)的属性,然后将连接字符串传递给数据库。

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

访问 Azure Functions 代码中的应用设置

若要通过 JavaScript 在 Azure Functions 中访问这些配置值,请使用 process.env 对象。 它包含 local.settings.json 文件中指定的所有键/值对。

./api/src/services/product.services.ts 处的以下代码从 process.env 对象读取连接字符串,以创建用于访问 Azure Cosmos DB 服务的 CosmosClient 对象。

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

现在你已经知道了如何在本地开发期间安全存储连接字符串,以及如何在应用程序中引用该字符串。