前言
原文
Configure application settings
App setting
在 App Service 中,app setting 其實就是 environment variables
設置好的 app setting 會透過 --env
被傳到 container
而 app setting 總是會被加密保存
如果你使用的是 ASP.NET,app setting 就像是 Web.config
或 appsettings.json
內的 <appSetting>
但你在 app setting 設置的值將會覆蓋(override) 在 Web.config
或 appsettings.json
內的值
也因這個特性
你可以在 Web.config
或 appsettings.json
設置 development settings (e.g. local MySQL password)
然後在 app setting 中設置 production secret (e.g. MySQL password of production database)
Add / Edit app settings on Azure Portal
逐一修改
你可以經由 Azure Portal 來查看及修改 app settings
批量修改
你只需要在 app settings 介面中點一下 Advance edit
就可以以 JSON 的格式批量的修改 app setting 了
該 JSON 包含了 name、value,以及 slotSetting 格式例子如下
Add / Edit app settings on CLI / PowerShell
Portal 能做的,CLI 自然也都能做
只要在指令中加入 --settings
就可以設置 app setting 了
例子如下
az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings key1=value1 key2=value2
如果你用的是 Azure PowerShell
那就要用到 -AppSettings
了
例子如下
Set-AzWebApp -ResourceGroupName <group-name> -Name <app-name> -AppSettings @{"DB_HOST"="myownserver.mysql.database.azure.com"}
Slot setting
Slot setting 是一個 bolean
如果是 true,那麼這個設定的值就會跟着這個 slot 不會被swap
如果是 false 就不會
下面就是一個例子
Slot name | Production slot | Deployment slot |
App setting of the slots (before swap) | ||
App setting of the slots (after swap) |
在上面的例子中
我們可以看到
因為其一個 slot 的 <key-1> 和 <key-3> 被設置為 "slotSetting": true
所以 <key-1> 和 <key-3> 的值並沒有被 swap
而 <key-2> 的值則是被 swap 了
逐一修改
在使用 Azure portal 新增或修改 app setting 的時候
它會有一個名為 Deployment slot setting
的勾選方塊
把它勾選了就是把 slotSetting
設置為 true,反之就是 false
批量修改
在使用 JSON 設置 app setting 的時候
它有一個名為 slotSetting
的參數
把它設置為 true 或 false 就可以了
就像是這樣
Connection strings
如果你用的是 ASP.NET
App settings 會覆蓋掉 Web.config
內的 <connectionStrings>
下面是一些設置 connection string 的例子
[ { "name": "name-1", "value": "conn-string-1", "type": "SQLServer", "slotSetting": false }, { "name": "name-2", "value": "conn-string-2", "type": "PostgreSQL", "slotSetting": false }, ... ]
(( 其實我不太懂原文在這裏加上這麼一段是什麼意思,如果大家知道的話請在下面留言告知一下。先謝過了( •̀ ω •́ )✧
發佈留言