了解 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 物件讀取連接字串,以建立 CosmosClient 物件來存取 Azure Cosmos DB 服務。

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

您現在知道如何在本機開發期間安全地儲存連接字串,以及如何在您的應用程式中參考該字串。