使用 App Service 環境

App Service 環境是 Azure App Service 的單一租用戶部署。 您會將其與 Azure 虛擬網路搭配使用,而您是此系統的唯一使用者。 部署的應用程式受到套用至子網路的網路功能影響。 您的應用程式不需要啟用任何其他功能,即會受到這些網路功能的影響。

注意

本文是關於搭配 v2 App Service 隔離式方案一起使用的 App Service 環境 v3。

建立應用程式

若要在 App Service 環境中建立應用程式,您可以使用和一般建立應用程式相同的程序,但有幾個小差異。 當您建立新的 App Service 方案時:

  • 您可以選擇 App Service 環境作為位置,而不選擇部署應用程式的地理位置。
  • 在 App Service 環境中建立的所有 App Service 方案,都只能位於隔離的 v2 定價層中。

如果您尚未建立 App Service 環境,請建立此環境。

若要在 App Service 環境中建立應用程式:

  1. 選取 [建立資源]> [Web + 行動]> [Web 應用程式]
  2. 選取訂閱。
  3. 輸入新資源群組的名稱,或選取 [使用現有] 並從下拉式清單中挑選一個。
  4. 輸入應用程式的名稱。 如果您已在 App Service 環境中選取 App Service 方案,則應用程式的網域名稱會反映 App Service 環境的網域名稱。
  5. 針對 [發佈]、[執行階段堆疊] 和 [作業系統],請視需要進行選取。
  6. 針對 [區域],選取現有的 App Service 環境 v3。 如果您要建立新的 App Service 環境,請選取區域。 Screenshot that shows how to create an app in an App Service Environment.
  7. 選取現有的 App Service 方案,或建立新方案。 如果您要建立新的方案,請選取您的 App Service 方案所需的大小。 您可為應用程式選取的唯一 SKU,是隔離 v2 定價 SKU。 建立新的 App Service 方案通常需要不到 20 分鐘的時間。 Screenshot that shows pricing tiers and their features and hardware.
  8. 如果您選擇在建立新 App Service 方案的過程中建立新的 App Service 環境,請填寫名稱和虛擬 IP 類型。
  9. 選取 [下一步:監視]。 如果您想要對應用程式啟用 Application Insights,您可以在建立流程期間在此處執行。
  10. 選取 [下一步:標籤],然後將您要的任何標籤新增至應用程式。
  11. 選取 [檢閱 + 建立]。 驗定資訊正確無誤,然後選取 [建立]

Windows 和 Linux 應用程式可位於相同的 App Service 環境中,但不可位於相同的 App Service 方案中。

規模調整的運作方式

每個 App Service 應用程式都會在一個 App Service 方案中執行。 App Service 環境會保留 App Service 方案,而 App Service 方案則保留應用程式。 當您調整應用程式的大小時,您也會調整 App Service 方案和相同方案中的所有應用程式的大小。

當您調整 App Service 方案的大小時,系統會自動新增所需的基礎結構。 請注意,在新增基礎結構時,調整作業會有時間延遲。 例如,如果在調整 App Service 方案時,您有另一個執行相同作業系統和大小的調整作業,可能需要幾分鐘的延遲,要求的調整才會啟動。

對某個大小和作業系統進行的調整作業,不會影響到其他大小和作業系統組合的調整。 例如,如果您調整 Windows I2v2 App Service 方案,則 Windows I3v2 App Service 方案的調整作業會立即啟動。 調整通常需要不到 15 分鐘的時間。

在多租用戶的 App Service 中,調整是立即性的,因為有共用資源的集區可用來加以支援。 App Service 環境是單一租用戶服務,因此沒有共用緩衝區,且會根據需求配置資源。

應用程式存取

在使用內部虛擬 IP (VIP) 的 App Service 環境中,用來建立應用程式的網域尾碼為 .<asename>.appserviceenvironment.net。 如果您的 App Service 環境名為 my-ase,而您裝載了名為 contoso 的應用程式,您可透過下列 URL 連線到該處:

  • contoso.my-ase.appserviceenvironment.net
  • contoso.scm.my-ase.appserviceenvironment.net

只有在您位於相同的虛擬網路,或連線至該虛擬網路時,才能存取使用內部 VIP 的 App Service 環境上裝載的應用程式。 同樣地,只有在您位於相同的虛擬網路或連線至該虛擬網路時,才能進行發佈。

在具有外部 VIP 的 App Service 環境中,用來建立應用程式的網域尾碼為 .<asename>.p.azurewebsites.net。 如果您的 App Service 環境名為 my-ase,而您裝載了名為 contoso 的應用程式,您可透過下列 URL 連線到該處:

  • contoso.my-ase.p.azurewebsites.net
  • contoso.scm.my-ase.p.azurewebsites.net

您可以使用 scm URL 來存取 Kudu 主控台,或使用 Web 部署來發佈您的應用程式。 如需詳細資訊,請參閱 Azure App Service 的 Kudu 主控台。 Kudu 主控台提供給您的 Web UI 可供偵錯、上傳檔案、編輯檔案之用。

DNS 組態

如果您的 App Service 環境是以外部 VIP 建立的,您的應用程式就會自動置於公用 DNS 中。 如果您的 App Service 環境是以內部 VIP 建立的,您可能需要為其設定 DNS。

如果您選取了自動設定 Azure DNS 私人區域,則會在您 App Service 環境的虛擬網路中設定 DNS。 如果您選取了手動設定 DNS,則需要使用您自己的 DNS 伺服器,或設定 Azure DNS 私人區域。

若要尋找輸入位址,請在 App Service 環境入口網站中選取 [IP 位址]

Screenshot that shows how to find the inbound address.

如果您想要使用自己的 DNS 伺服器,請新增下列記錄:

  1. 建立 <App Service Environment-name>.appserviceenvironment.net 的區域。
  2. 在該區域中建立 A 記錄,此記錄會將 * 指向您的 App Service 環境所使用的輸入 IP 位址。
  3. 在該區域中建立 A 記錄,此記錄會將 @ 指向您的 App Service 環境所使用的輸入 IP 位址。
  4. <App Service Environment-name>.appserviceenvironment.net 中建立名為 scm 的區域。
  5. scm 區域中建立 A 記錄,此記錄會將 * 指向您的 App Service 環境所使用的輸入位址。

若要在 Azure DNS 私人區域中設定 DNS:

  1. 建立名為 <App Service Environment-name>.appserviceenvironment.net 的 Azure DNS 私人區域。
  2. 在該區域中建立一個將 * 指向輸入 IP 位址的 A 記錄。
  3. 在該區域中建立一個將 @ 指向輸入 IP 位址的 A 記錄。
  4. 在該區域中建立一個將 *.scm 指向輸入 IP 位址的 A 記錄。

App Service 環境之預設網域尾碼的 DNS 設定不會將您的應用程式限定為只能以這些名稱存取。 在 App Service 環境中,您可以在應用程式上設定自訂網域名稱,而不會進行任何驗證。 如果您隨後想要建立名為 contoso.net 的區域,您可加以建立,並將其指向輸入 IP 位址。 自訂網域名稱適用於應用程式要求,而如果自訂網域尾碼憑證包含 scm 的萬用字元 SAN,自訂網域名稱也適用於 scm 網站,而且您可建立 *.scm 記錄並將其指向輸入 IP 位址。

發佈

您可以使用下列任一方法來發佈:

  • Web 部署
  • 持續整合 (CI)
  • 在 Kudu 主控台中拖放
  • 整合式開發環境 (IDE),例如 Visual Studio、Eclipse 或 IntelliJ IDEA

透過內部 VIP App Service 環境,發佈端點只能透過輸入位址來使用。 如果您沒有輸入位址的網路存取權,就無法在該 App Service 環境上發佈任何應用程式。 您的 IDE 也必須具有對 App Service 環境上的輸入位址的網路存取權,才能直接對其進行發佈。

若未進行額外的變更,網際網路型 CI 系統 (例如 GitHub 和 Azure DevOps) 並不適用於內部 VIP App Service 環境。 發佈端點無法從網際網路存取。 您可以在虛擬網路中安裝自我裝載發行代理程式,以啟用從 Azure DevOps 發佈至內部 VIP App Service 環境的功能。

儲存體

您有 1 TB 的儲存體可供 App Service 環境中的所有應用程式使用。 隔離定價 SKU 中的 App Service 方案限制為 250 GB。 在 App Service 環境中,每個 App Service 會新增 250 GB 的儲存體,最多 1 TB 的限制。 您可以擁有比 4 個還多的 App Service 方案,但不會有超過 1 TB 限制的額外儲存體。

監視

App Service 環境 v3 中的平台基礎結構會受到 Microsoft 監視和管理,並視需要進行調整。 身為客戶,您只需監視 App Service 方案和個別應用程式執行,並採取適當的動作。 您會發現 App Service 環境有一些可見的計量,但這些計量僅適用於較舊的版本,而不會省略此版本的任何值。 如果您使用 v1 或 v2 App Service 環境,請參閱本節以取得監視和調整的指引。

記錄

您可以整合 Azure 監視器,以將記錄傳送至 Azure 儲存體、Azure 事件中樞或 Azure 監視器記錄。 下表顯示您可以記錄的情況和訊息:

情況 訊息
App Service 環境子網路空間即將用盡。 指定的 App Service 環境所在的子網路空間即將用盡。 還有 {0} 個剩餘的位址。 這些位址用盡後,App Service 環境將無法調整。
App Service 環境即將達到執行個體總數限制。 指定的 App Service 環境接近 App Service 環境的執行個體總數限制。 其目前包含 {0} 個 App Service 方案執行個體,最多 200 個執行個體。
App Service 環境已暫止。 指定的 App Service 環境已暫止。 App Service 環境暫止可能是因為帳戶不足或虛擬網路設定無效所致。 解決根本原因並恢復 App Service 環境,以繼續提供流量。
App Service 環境升級已啟動。 指定 App Service 環境的平台升級已開始。 預期調整作業發生延遲。
App Service 環境升級已完成。 指定 App Service 環境的平台升級已完成。
App Service 方案建立已啟動。 App Service 方案 ({0}) 建立已啟動。 預期狀態:{1} I{2}v2 背景工作角色。
調整作業已完成。 App Service 方案 ({0}) 建立已完成。 目前狀態:{1} I{2}v2 背景工作角色。
調整作業失敗。 App Service 方案 ({0}) 建立失敗。 這可能是因為 App Service 環境在執行個體數目極高的情況下運作,或子網路位址用盡。
調整作業已開始。 已開始調整 App Service 方案 ({0})。 目前狀態:{1} I(2)v2。 預期狀態:{3} I{4}v2 背景工作角色。
調整作業已完成。 已完成調整 App Service 方案 ({0})。 目前狀態:{1} I{2}v2 背景工作角色。
調整作業已中斷。 App Service 方案 ({0}) 已在調整期間中斷。 先前期望的狀態:{1} I{2}v2 背景工作角色。 新的期望狀態:{3} I{4}v2 背景工作角色。
調整作業失敗。 無法調整 App Service 方案 ({0})。 目前狀態:{1} I{2}v2 背景工作角色。

若要啟用記錄,請遵循下列步驟:

  1. 在入口網站中,移至 [診斷設定]
  2. 選取 [新增診斷設定]。
  3. 提供記錄整合的名稱。
  4. 選取並設定您想要的記錄目的地。
  5. 選取 [AppServiceEnvironmentPlatformLogs]Screenshot that shows how to enable logging.

如果您與 Azure 監視器記錄整合,則可以從 App Service 環境入口網站選取 [記錄],然後針對 AppServiceEnvironmentPlatformLogs 建立查詢,以查看記錄。 只有在您的 App Service 環境有觸發記錄的事件時,才會發出記錄。 如果您的 App Service 環境沒有這類事件,則不會有任何記錄。 若要快速查看記錄的範例,請使用 App Service 方案執行調整作業。 然後,您可以針對 AppServiceEnvironmentPlatformLogs 執行查詢,以查看這些記錄。

建立警示

若要針對您的記錄建立警示,請遵循使用 Azure 監視器建立、檢視和管理記錄警示中的指示。 簡言之:

  1. 在您的 App Service 環境入口網站中開啟 [警示] 頁面。
  2. 選取 [新增警示規則]。
  3. 針對 [資源],選取您的 Azure 監視器記錄工作區。
  4. 使用自訂記錄搜尋來設定條件,以使用查詢。 例如,您可以進行下列設定:AppServiceEnvironmentPlatformLogs | 其中,ResultDescription 包含已開始調整。 適當地設定閾值。
  5. 新增或建立動作群組 (選擇性)。 動作群組是您定義警示回應的位置,例如傳送電子郵件或簡訊。
  6. 為您的警示命名並加以儲存。

內部加密

您無法在 App Service 環境系統中看到內部元件或通訊。 若要達到更高的輸送量,內部元件之間預設不會啟用加密。 系統是安全的,因為流量無法存取而不會受到監視或存取。 如果您有完整加密資料路徑的合規性需求,可以啟用這項功能。 選取 [設定],如下列螢幕擷取畫面所示。

Screenshot that shows how to enable internal encryption.

此選項會加密內部網路流量,也會加密分頁檔和背景工作磁碟。 請注意,此選項可能會影響到您的系統效能。 在變更完整傳播之前,您的 App Service 環境將處於不穩定狀態。 變更的完整傳播可能需要幾小時才能完成,視您有多少執行個體而定。

使用 App Service 環境時,請避免啟用此選項。 如果必須這麼做,最好先將流量轉移至備份,直到作業完成為止。

升級喜好設定

如果您有多個 App Service 環境,您可能會想要先升級其中一些環境。 您可以透過 App Service 環境入口網站來啟用此行為。 在 [設定] 下方,您可以選擇設定 [升級喜好設定]。 可能的值是:

  • :Azure 不會以特定批次升級。 這是預設值。
  • 早期:在 App Service 升級程序的前半段升級。
  • 延遲:在 App Service 升級程序的後半段升級。
  • 手動:取得 15 天的時間範圍,手動部署升級。

選取您想要的值,然後選取 [儲存]

Screenshot that shows the App Service Environment configuration portal.

有多個 App Service 環境時最適合使用這項功能,且您可能因循序的升級而受益。 例如,您可以將開發和測試 App Service 環境設定為早期,而將生產 App Service 環境設定為延遲。

刪除 App Service 環境

若要刪除:

  1. 在 [App Service 環境] 窗格頂端,選取 [刪除]
  2. 輸入 App Service 環境的名稱,以確認您想要將其刪除。 刪除 App Service 環境時,將同時刪除其中包含的所有內容。 Screenshot that shows how to delete.
  3. 選取 [確定]。