前言

[Azure 筆記] 前言


原文

Configure application settings


App setting

在 App Service 中,app setting 其實就是 environment variables
設置好的 app setting 會透過 --env 被傳到 container
而 app setting 總是會被加密保存

如果你使用的是 ASP.NET,app setting 就像是 Web.configappsettings.json 內的 <appSetting>
但你在 app setting 設置的值將會覆蓋(override) 在 Web.configappsettings.json 內的值

也因這個特性
你可以在 Web.configappsettings.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 nameProduction slotDeployment 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
  },
  ...
]

(( 其實我不太懂原文在這裏加上這麼一段是什麼意思,如果大家知道的話請在下面留言告知一下。先謝過了( •̀ ω •́ )✧

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Trending