分享方式:


設定 App Service 應用程式

注意

從 2024 年 6 月 1 日起,所有新建立的 App Service 應用程式都可以選擇使用命名慣例 <app-name>-<random-hash>.<region>.azurewebsites.net 來產生唯一的預設主機名稱。 現有的應用程式名稱將保持不變。

範例: myapp-ds27dh7271aah175.westus-01.azurewebsites.net

如需詳細資料,請參閱 App Service 資源的唯一預設主機名稱

本文說明如何設定 Web 應用程式、行動後端或 API 應用程式的常用設定。 如需了解 Azure Functions,請參閱 Azure Functions 的應用程式設定參考

設定應用程式

注意

  • 應用程式設定名稱只可包含字母、數字 (0-9)、句點 (".") 和底線 ("_")
  • 目標 OS 必須視需要逸出應用程式設定值中的特殊字元

例如,若要在 App Service Linux 中使用值 "pa$$w0rd\" 來設定環境變數,應用程式設定的字串應該是:"pa\$\$w0rd\\"

在 App Service 中,應用程式設定是變數,會以環境變數形式傳遞至應用程式程式碼。 針對 Linux 應用程式和自訂容器,App Service 使用 --env 旗標將應用程式設定傳遞至容器,以在容器中設定環境變數。 在這兩種情況下,它們會在應用程式啟動時插入您的應用程式環境中。 當您新增、移除或編輯應用程式設定時,App Service 會觸發應用程式重新開機。

對於 ASP.NET 和 ASP.NET Core 開發人員,在 App Service 中設定應用程式設定,就像在 Web.configappsettings.json<appSettings> 中設定應用程式設定,但 App Service 中的值會覆寫 Web.configappsettings.json 中的值。 您可以在 Web.configappsettings.json 中保留開發設定 (例如本機 MySQL 密碼),但生產祕密 (例如 Azure MySQL 資料庫密碼) 儲存在 App Service 中才安全。 當您在本機偵錯時,相同的程式碼會使用您的開發設定,並在部署至 Azure 時使用您的生產秘密。

同理,其他語言堆疊會在執行時間取得應用程式設定作為環境變數。 如需了解語言堆疊特定步驟,請參閱:

應用程式設定一律會在儲存時加密 (待用加密)。

注意

如果您在應用程式設定中儲存秘密,請考慮使用 金鑰保存庫 參考。 如果您的秘密是用來連線到後端資源,請考慮更安全的連線選項,完全不需要秘密。 如需詳細資訊,請參閱從 Azure App 服務 保護 Azure 服務和資料庫的連線。

  1. Azure 入口網站中,搜尋並選取 [應用程式服務],然後選取您的應用程式。

    搜尋應用程式服務

  2. 在應用程式的左側功能表中,選取 [環境變數]>[應用程式設定]

    顯示如何瀏覽至 [應用程式設定] 頁面的螢幕擷取畫面。

    應用程式設定的值會依預設隱藏在入口網站中,以取得安全性。 若要查看應用程式設定的隱藏值,請選取其 [值] 欄位。 若要查看所有應用程式設定的隱藏值,請選取 [顯示值] 按鈕。

  3. 若要新增應用程式設定,請選取 [新增]。 若要編輯設定,請按一下設定。

  4. 在對話方塊中,您可以將設定貼到目前的位置

    注意

    在預設 Linux app service 或自訂 Linux 容器中,應用程式設定名稱中的任何巢狀 JSON 金鑰結構 (像是 ApplicationInsights:InstrumentationKey) 必須在 App Service 中設定為 ApplicationInsights__InstrumentationKey 作為金鑰名稱。 換句話說,任何 : 都應該以 __ (雙底線) 取代。 應用程式設定名稱中的任何句點都會取代為 _ (單一底線)。

  5. 完成後,選取 [套用]。 別忘了回來在 [環境變數] 頁面中選取 [套用]

大量編輯應用程式設定

選取 [進階編輯] 按鈕。 編輯文字區域中的設定。 完成後,選取 [確定]。 別忘了回來在 [環境變數] 頁面中選取 [套用]

應用程式設定具有下列 JSON 格式:

[
  {
    "name": "<key-1>",
    "value": "<value-1>",
    "slotSetting": false
  },
  {
    "name": "<key-2>",
    "value": "<value-2>",
    "slotSetting": false
  },
  ...
]

設定連接字串

注意

請考慮更安全的連線選項,完全不需要連線秘密。 如需詳細資訊,請參閱從 Azure App 服務 保護 Azure 服務和資料庫的連線。

對於 ASP.NET 和 ASP.NET Core 開發人員,在 App Service 中設定連接字串就像在 Web.config<connectionStrings> 中設定它們一樣,但您在 App Service 中設定的值會覆寫 Web.config 中的值。您可以將開發設定 (例如資料庫檔案) 安全地保留在 Web.config 中,並將生產秘密 (例如 SQL Database 登入資訊) 安全地保存在 App Service 中。 當您在本機偵錯時,相同的程式碼會使用您的開發設定,並在部署至 Azure 時使用您的生產秘密。

針對其他語言堆疊,最好改用應用程式設定,因為連接字串需要變數金鑰中的特殊格式設定才能存取值。

注意

在某種情況下,您可能想要使用連接字串,而不是非 .NET 語言的應用程式設定:只有您在 App Service 應用程式中設定資料庫的連接字串時,才會備份特定 Azure 資料庫類型。 如需詳細資訊,請參閱建立自訂備份。 如果您不需要此自動備份,請使用應用程式設定。

在執行時間,連接字串會以環境變數的形式提供,前面加上下列連線類型:

  • SQLServer:SQLCONNSTR_
  • MySQL: MYSQLCONNSTR_
  • SQLAzure:SQLAZURECONNSTR_
  • 自訂:CUSTOMCONNSTR_
  • PostgreSQL:POSTGRESQLCONNSTR_
  • 通知中樞:NOTIFICATIONHUBCONNSTR_
  • 服務匯流排:SERVICEBUSCONNSTR_
  • 事件中樞:EVENTHUBCONNSTR_
  • 文件 DB:DOCDBCONNSTR_
  • Redis 快取:REDISCACHECONNSTR_

注意

以 PostgreSQL、通知中樞、服務匯流排、事件中樞、文件 DB 和 Redis 快取為目標的 .NET 應用程式應將連接字串設定為 [自訂],作為 .NET EnvironmentVariablesConfigurationProvider 中的已知問題的因應措施

例如,可以存取名為 connectionstring1 的 MySQL 連接字串作為環境變數 MYSQLCONNSTR_connectionString1。 如需了解語言堆疊特定步驟,請參閱:

連線設定一律會在儲存時加密 (待用加密)。

注意

連接字串可以透過使用 Key Vault 參考,從 Key Vault 進行解析。

  1. Azure 入口網站中,搜尋並選取 [應用程式服務],然後選取您的應用程式。

    搜尋應用程式服務

  2. 在應用程式的左側功能表中,選取 [環境變數]>[連接字串]

    此螢幕擷取畫面顯示開啟 [連接字串] 的 UI。

    連接字串的值會依預設隱藏在入口網站中,以取得安全性。 若要查看連接字串的隱藏值,請選取其 [值] 欄位。 若要查看所有連接字串的隱藏值,請選取 [顯示值] 按鈕。

  3. 若要新增連接字串,請選取 [新增]。 若要編輯連接字串,請選取連接字串。

  4. 在對話方塊中,您可以將連接字串貼到目前的位置

  5. 完成後,選取 [套用]。 別忘了回來在 [環境變數] 頁面中選取 [套用]

編輯大量連接字串

選取 [進階編輯] 按鈕。 編輯文字區域中的連接字串。 完成後,選取 [套用]。 別忘了回來在 [環境變數] 頁面中選取 [套用]

連接字串具有下列 JSON 格式:

[
  {
    "name": "name-1",
    "value": "conn-string-1",
    "type": "SQLServer",
    "slotSetting": false
  },
  {
    "name": "name-2",
    "value": "conn-string-2",
    "type": "PostgreSQL",
    "slotSetting": false
  },
  ...
]

設定語言堆疊設定

設定一般設定

Azure 入口網站中,搜尋並選取 [應用程式服務],然後選取您的應用程式。 在應用程式的左側功能表中,選取 [設定]>[一般設定]

一般設定

您可以在這裡設定應用程式的一些常見設定。 有些設定會要求您擴大至較高的定價層

  • 堆疊設定:用來執行應用程式的軟體堆疊,包括語言和 SDK 版本。

    針對 Linux 應用程式,您可以選取語言執行時間版本,並設定選擇性的啟動命令或啟動命令檔。

    Linux 容器的一般設定

  • 平台設定:讓您可設定裝載平台的設定,包括:

    • 平台位元:32 位元或 64 位元。 僅限 Windows 應用程式使用。
    • FTP 狀態:僅允許 FTPS 或完全停用 FTP。
    • HTTP 版本:設定為 2.0 以啟用 HTTPS/2 通訊協定支援。

    注意

    大部分的新式瀏覽器僅支援透過 TLS 的 HTTP/2 通訊協定,非加密的流量則會繼續使用 HTTP/1.1。 若要確定用戶端瀏覽器使用 HTTP/2 連線到您的應用程式,請保護您的自訂 DNS 名稱。 如需詳細資訊,請參閱在 Azure App Service 中使用 TLS/SSL 繫結保護自訂 DNS 名稱

    • WebSocket:例如適用於 ASP.NET SignalR Servicesocket.io

    • Always On:即便沒有任何流量,也讓應用程式保持在載入狀態。 當沒有開啟 Always On 時 (預設),應用程式會在沒有任何傳入要求的 20 分鐘後卸載。 卸載的應用程式可能會因為新要求的準備時間,而造成高延遲。 開啟 Always On 時,前端負載平衡器每隔五分鐘會將 GET 要求傳送至應用程式根目錄。 連續 Ping 可防止應用程式卸載。

      連續 WebJobs 或使用 CRON 運算式觸發的 WebJobs 都需要 Always On。

    • 會話親和性:在多實例部署中,確定用戶端在會話存限期間路由傳送至相同的實例。 您可以為無狀態應用程式將此選項設定為 [關閉]

    • 會話親和性 Proxy:如果您的應用程式位於反向 Proxy 後方(例如 Azure 應用程式閘道 或 Azure Front Door),而且您使用的是預設主機名,則可以開啟會話親和性 Proxy。 會話親和性 Cookie 的網域會與反向 Proxy 的轉送主機名一致。

    • 僅 HTTPS:啟用時,所有 HTTP 流量都會重新導向至 HTTPS。

    • 最低 TLS 版本:請選取您應用程式需要的最低 TLS 加密版本。

  • 偵錯:為 ASP.NETASP.NET CoreNode.js 應用程式啟用遠端偵錯。 這個選項會在 48 小時後自動關閉。

  • 連入的用戶端憑證相互驗證需要用戶端憑證。

設定預設文件

此設定僅適用於 Windows 應用程式。

預設文件是顯示於 App Service 應用程式根 URL 上的網頁。 系統會使用清單中第一個相符的檔案。 如果應用程式使用以 URL 為基礎路由的模組而非提供靜態內容,則不需要預設文件。

  1. Azure 入口網站中,搜尋並選取 [應用程式服務],然後選取您的應用程式。

  2. 在應用程式的左側功能表中,選取 [設定]>[預設文件]。

    預設文件

  3. 若要新增預設文件,請選取 [新增文件]。 若要移除預設文件,請選取下右側的 [刪除]

將 URL 路徑對應至目錄

在預設情況下,App Service 從應用程式程式碼的根目錄啟動應用程式。 但是某些 Web 架構並非從根目錄開始。 例如,Laravelpublic 子目錄開始。 這類應用程式在 http://contoso.com/public 上可以存取,例如您通常會想要將 http://contoso.com 改為導向 public 目錄。 如果您的應用程式啟動檔案位於不同的資料夾中,或者您的存放庫有多個應用程式,您可以編輯或新增虛擬應用程式和目錄。

重要

實體路徑功能的虛擬目錄僅適用於 Windows 應用程式。

  1. Azure 入口網站中,搜尋並選取 [應用程式服務],然後選取您的應用程式。

  2. 在應用程式的左側功能表中,選取 [組態]>[路徑對應]

  3. 選取 [新增虛擬應用程式或目錄]

    • 若要將虛擬目錄對應至實體路徑,請維持選取 [目錄] 核取方塊。 指定虛擬目錄和對應的相對 (實體) 路徑至網站根目錄 (D:\home)。
    • 若要將虛擬目錄標示為 Web 應用程式,請清除 [目錄] 核取方塊。

    目錄核取方塊

  4. 選取 [確定]。 別忘了在 [設定] 頁面中選取 [儲存]

設定處理常式對應

針對 Windows 應用程式,您可以自訂 IIS 處理常式對應及虛擬應用程式和目錄。 處理常式對應可讓您新增自訂指令碼處理器以處理特定副檔名的要求。

若要新增自訂處理常式:

  1. Azure 入口網站中,搜尋並選取 [應用程式服務],然後選取您的應用程式。

  2. 在應用程式的左側功能表中,選取 [組態]>[路徑對應]

    路徑的對應

  3. 選取 [新增處理常式對應]。 設定處理常式,如下所示:

    • 副檔名。 您想要處理的副檔名,例如 *.phphandler.fcgi
    • 指令碼處理器。 您指令碼處理器的絕對路徑。 符合該副檔名的檔案要求,由指令碼處理器來處理。 使用路徑 D:\home\site\wwwroot 來參考您應用程式的根目錄。
    • 引數。 指令碼處理器的選用命令列引數。
  4. 選取 [確定]。 別忘了在 [設定] 頁面中選取 [儲存]

設定自訂容器

下一步