共用方式為


設定 App Service 應用程式

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

附註

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

如需詳細資訊,請參閱有關使用唯一預設主機名稱建立 Web 應用程式的部落格文章

設定應用程式設定

在 Azure App Service 中,應用程式設定是作為環境變數傳遞至應用程式程式代碼的變數。 下列條件適用於應用程式設定:

  • 應用程式設定名稱只能包含字母、數位(0-9)、句號(.)和底線(_)。
  • 目標作業系統必須視需要逸出應用程式設定值中的特殊字元。

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

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

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

其他程式語言的堆疊會在執行時將應用程式設定以環境變數的形式取得。 如需每個語言堆疊專屬的步驟,請參閱:

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

附註

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

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

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

    顯示用於選擇應用程式設定的螢幕快照。

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

    附註

    若要在 Azure 入口網站中檢視此區段,需要讀寫使用者權限。 具有足夠許可權的 RBAC 內建角色為擁有者、參與者和網站參與者。 不允許讀取者角色單獨存取此頁面。

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

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

    附註

    在預設的 Linux App Service 或自訂 Linux 容器中,應用程式設定名稱中的任何巢狀 JSON 金鑰結構都必須以不同的方式設定金鑰名稱。 以雙底線 (__) 取代任何冒號 (:)。 以單底線(_) 取代任何句號 (.)。 例如, ApplicationInsights:InstrumentationKey 必須在 App Service 中針對金鑰名稱設定為 ApplicationInsights__InstrumentationKey

  5. 當您完成時,請選取 [ 套用]。 然後選取 環境變數 頁面上的 套用

大量編輯應用程式設定

  1. 選取 [ 進階編輯]。
  2. 編輯文字區域中的設定。
  3. 完成時,請選取 [確定]。 然後在環境變數頁面上選取套用

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

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

設定連接字串

本節說明如何設定連接字串。

附註

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

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

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

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

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

  • SQL Server: SQLCONNSTR_
  • MySQL: MYSQLCONNSTR_
  • Azure SQL: SQLAZURECONNSTR_
  • 自訂:CUSTOMCONNSTR_
  • PostgreSQL:POSTGRESQLCONNSTR_
  • Azure 通知中樞: NOTIFICATIONHUBCONNSTR_
  • Azure 服務總線: SERVICEBUSCONNSTR_
  • Azure 事件中樞: EVENTHUBCONNSTR_
  • Azure Cosmos DB: DOCDBCONNSTR_
  • Redis 緩存: REDISCACHECONNSTR_

附註

以 PostgreSQL、通知中樞、服務總線、事件中樞、Azure Cosmos DB 和 Redis 快取為目標的 .NET 應用程式,應將連接字元串設定為 Custom 作為 .NET EnvironmentVariablesConfigurationProvider 中已知問題的因應措施。

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

連接字串在儲存時一律會加密(靜態加密)。

附註

您也可以使用 Key Vault 參考,從 Key Vault 解析連接字串。

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

  2. 在應用程式的左側功能表上,選取 [ 設定>環境變數]。 然後選取 [連接字串]。

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

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

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

  5. 當您完成時,請選取 [ 套用]。 然後在 [環境變數] 頁面上選取 [套用]。

編輯大量連接字串

  1. 選取 [ 進階編輯]。
  2. 編輯文字區域中的連接字串。
  3. 當您完成時,請選取 [ 套用]。 別忘了也選取 [環境變數] 頁面上的 [套用]。

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

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

設定語言堆疊設定

若要設定語言堆疊設定,請參閱下列資源:

設定一般設定

若要設定一般設定,請遵循您慣用工具的步驟。

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

  2. 在應用程式的左側功能表上,選取 [ 設定>組態]。 然後選取 [ 一般設定]。

    顯示開啟一般設定之選取項目的螢幕快照。

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

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

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

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

    • 平台:選擇32位或64位。 僅限 Windows 應用程式使用。

    • FTP 狀態:只允許 FTPS,或完全停用 FTP。

    • HTTP 版本:設定為 2.0 以啟用 HTTPS/2 通訊協議的支援。

      附註

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

    • WebSocket:例如,針對 ASP.NET SignalRsocket.io 設定。

    • AlwaysOn:如果您想要讓應用程式保持載入狀態,即使沒有流量也一樣開啟。

      AlwaysOn 關閉時(預設值),應用程式會在 20 分鐘後卸除,而不需要任何傳入要求。 卸載的應用程式可能會因為新要求的準備時間,而造成高延遲。

      AlwaysOn 開啟時,前端負載平衡器每隔五分鐘就會將要求傳送 GET 至應用程式根目錄。 連續 Ping 可防止應用程式卸載。

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

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

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

    • 只限 HTTPS:如果您要將所有 HTTP 流量重新導向至 HTTPS,請啟用 。

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

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

  • 來自客戶端的憑證:在相互驗證中需要客戶端憑證。

設定預設文件

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

設定預設檔案的設定僅適用於 Windows 應用程式。

  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. 選取 [確定]。 然後選取 [組態] 頁面上的 [儲存]。

設定自訂容器