設定應用程式設定
在 App Service 中,應用程式設定是變數,會以環境變數形式傳遞至應用程式程式碼。 針對 Linux 應用程式和自訂容器,App Service 使用 --env 旗標將應用程式設定傳遞至容器,以在容器中設定環境變數。 在這兩種情況下,它們會在應用程式啟動時插入您的應用程式環境中。 當您新增、移除或編輯應用程式設定時,App Service 會觸發應用程式重新開機。
對於 ASP.NET 和 ASP.NET Core 開發人員,在 App Service 中設定應用程式設定,就像在 <appSettings> 或 appsettings.json 的 中設定,但 App Service 中的值會覆寫 Web.config 或 appsettings.json 中的值。 您可以在 Web.config 或 appsettings.json 中保留開發設定 (例如本機 MySQL 密碼),但生產祕密 (例如 Azure MySQL 資料庫密碼) 儲存在 App Service 中才安全。 當您在本機偵錯時,相同的程式碼會使用您的開發設定,並在部署至 Azure 時使用您的生產秘密。
應用程式設定一律會在儲存時加密 (待用加密)。 應用程式設定名稱只能包含字母、數位(0-9)、句點 (“.”),和底線 (“_”) 應用程式設定的值中必須視需要逸出目標 OS。
瀏覽至應用程式的管理頁面,然後選取 [環境變數] > [應用程式設定],即可存取應用程式設定。
新增和編輯設定
若要新增應用程式設定,請選取 [+ 新增]。 如果您使用部署位置,可以指定您的設定是否可交換。 在對話方塊中,您可以將設定貼到目前的位置。
完成後,選取 [套用]。 別忘了回來在 [環境變數] 頁面中選取 [套用]。
注意
在預設 Linux app service 或自訂 Linux 容器中,應用程式設定名稱中的任何巢狀 JSON 金鑰結構 (像是 ApplicationInsights:InstrumentationKey) 必須在 App Service 中設定為 ApplicationInsights__InstrumentationKey 作為金鑰名稱。 換句話說,將任何 : 取代為 __ (雙底線)。 應用程式設定名稱中的任何句點會取代為 (單一 _ 底線)。
大量編輯應用程式設定
若要大量新增或編輯應用程式設定,請選取 [進階] 編輯按鈕。 完成後,選取 [確定]。 別忘了回來在 [環境變數] 頁面中選取 [套用]。 應用程式設定具有下列 JSON 格式:
[
{
"name": "<key-1>",
"value": "<value-1>",
"slotSetting": false
},
{
"name": "<key-2>",
"value": "<value-2>",
"slotSetting": false
},
...
]
設定連接字串
對於 ASP.NET 和 ASP.NET 核心開發人員,在 App Service 中設定連接字串,就像在 <connectionStrings> 的 中設定連接字串,但您在 App Service 中設定的值會覆寫 Web.config 中的連接字串。對於其他語言堆疊,最好改用應用程式設定,因為連接字串要求變數索引鍵中有特殊格式設定,才能存取值。
提示
在某些情況下,您可能想要使用連接字串,而不是 non-.NET 語言的應用程式設定: 只有在 您在 App Service 應用程式中設定資料庫的連接字串時,才會備份特定 Azure 資料庫類型與應用程式。
新增和編輯連接字串會遵循與其他應用程式設定相同的原則,而且也可繫結至部署位置。 以下是 JSON 格式的連接字串範例,可供用於大量新增或編輯:
[
{
"name": "name-1",
"value": "conn-string-1",
"type": "SQLServer",
"slotSetting": false
},
{
"name": "name-2",
"value": "conn-string-2",
"type": "PostgreSQL",
"slotSetting": false
},
...
]
注意
以 PostgreSQL 為目標的 .NET 應用程式應將連接字串設定為 Custom ,以因應 .NET EnvironmentVariablesConfigurationProvider中的已知問題。
在執行時間,連接字串會以環境變數的形式提供,前面加上下列連線類型:
- SQLServer:
SQLCONNSTR_ - MySQL:
MYSQLCONNSTR_ - SQLAzure:
SQLAZURECONNSTR_ - 自訂:
CUSTOMCONNSTR_ - PostgreSQL:
POSTGRESQLCONNSTR_ - 通知中樞:
NOTIFICATIONHUBCONNSTR_ - 服務匯流排:
SERVICEBUSCONNSTR_ - 事件中樞:
EVENTHUBCONNSTR_ - 文件 DB:
DOCDBCONNSTR_ - Redis 快取:
REDISCACHECONNSTR_
例如,可以存取名為 connectionstring1 的 MySQL 連接字串作為環境變數 MYSQLCONNSTR_connectionString1。
設定自訂容器的環境變數
自訂容器可能使用需要外部提供的環境變數。 您可以透過 Cloud Shell 傳入這些變數。 在 Bash 中:
az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings key1=value1 key2=value2
在 PowerShell 中:
Set-AzWebApp -ResourceGroupName <group-name> -Name <app-name> -AppSettings @{"DB_HOST"="myownserver.mysql.database.azure.com"}
應用程式執行時,App Service 應用程式設定會自動插入程序作為環境變數。 您可以使用 URL https://<app-name>.scm.azurewebsites.net/Env 驗證容器環境變數。