了解 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);
现在你已经知道了如何在本地开发期间安全存储连接字符串,以及如何在应用程序中引用该字符串。