共用方式為


App Service on Azure Stack Hub 2302 版本資訊

這些版本資訊說明 Azure Stack Hub 2302 上 Azure App 服務 的改進和修正,以及任何已知問題。 已知問題分為與部署、更新程式及組建問題直接相關的問題(安裝後)。

重要

視需要將 Azure Stack Hub 更新為支援的版本(或部署最新的 Azure Stack 開發工具包),再部署或更新 App Service 資源提供者 (RP)。 請務必閱讀 RP 版本資訊,以瞭解可能影響部署的新功能、修正程式及任何已知問題。

支援的最小 Azure Stack Hub 版本 App Service RP 版本
2301 和更新 2302 安裝程式版本資訊

組建參考

Azure Stack Hub 上的 App Service 2302 組建編號是 98.0.1.703

新功能

Azure Stack Hub 2302 版上的 Azure App 服務 會取代 2022 H1 版本,並包含下列問題的修正:

  • CVE-2023-21703 Azure App 服務 Azure Stack Hub 特權提升弱點

  • 無法從 Azure Stack Hub 系統管理入口網站中的 App Service 角色系統管理員使用者體驗開啟 虛擬機器擴展集 用戶體驗。

  • 所有其他更新都會記載於 Azure Stack Hub 2022 H1 更新版本資訊上的 Azure App 服務。

  • 自 Azure Stack Hub 2022 H1 更新 Azure App 服務 起,字母 K 現在是保留的 SKU 信件。 如果您已定義使用字母 K 的自定義 SKU,請連絡支援人員以協助在升級之前解決這種情況。

必要條件

請參閱開始部署之前的檔

開始將 Azure Stack Hub 上的 Azure App 服務 升級至 2302 之前:

  • 請確定您的 Azure Stack Hub 已更新為 1.2108.2.1271.2206.2.52

  • 請確定 Azure Stack Hub 系統管理入口網站中 Azure App 服務 管理中已準備好所有角色。

  • 在 Azure Stack Hub 管理入口網站中使用 App Service 管理來備份 App Service 秘密。

  • 備份 App Service 和 SQL Server master 資料庫:

    • AppService_Hosting;
    • AppService_Metering;
    • 主機
  • 備份租使用者應用程式內容檔案共用。

    重要

    雲端操作員負責文件伺服器和 SQL Server 的維護和作業。 資源提供者不會管理這些資源。 雲端操作員負責備份 App Service 資料庫和租用戶內容檔案共用。

  • 從 Marketplace 聯合自定義腳本擴充功能 1.9.3 版。

更新前步驟

注意

如果您先前已在 Azure Stack Hub 2022 H1 上部署 Azure App 服務 至 Azure Stack Hub 戳記,此版本是次要升級至 2022 H1,可解決兩個問題。

Azure App 服務 Azure Stack Hub 2302 是一項重大更新,需要數小時才能完成。 系統會更新整個部署,並使用 Windows Server 2022 Datacenter OS 重新建立所有角色。 因此,建議您在套用更新之前通知終端客戶已規劃的更新。

  • 自 Azure Stack Hub 2022 H1 更新 Azure App 服務 起,字母 K 現在是保留的 SKU 信件。 如果您已定義使用字母 K 的自定義 SKU,請連絡支援人員以協助在升級之前解決這種情況。

檢閱 已知問題以進行更新 ,並採取任何規定動作。

部署後步驟

重要

如果您已提供 App Service 資源提供者與 SQL Always On 實例,您必須 將appservice_hosting和appservice_metering資料庫新增至可用性群組 ,並同步處理資料庫,以避免在資料庫故障轉移時遺失服務。

已知問題(更新)

  • 如果您已將appservice_hosting和appservice_metering資料庫轉換成自主資料庫,如果登入尚未成功移轉至自主用戶,升級可能會失敗。

    如果您將appservice_hosting和appservice_metering資料庫轉換成自主資料庫部署后,且尚未成功將資料庫登入移轉至自主使用者,則可能會遇到升級失敗。

    您必須針對裝載appservice_hosting和appservice_metering的 SQL Server 執行下列腳本,才能將 Azure Stack Hub 安裝上的 Azure App 服務 升級至 2020 年第 3 季。 此腳本不具破壞性,而且不會造成停機時間。

    此文稿必須在下列情況下執行:

    • 由具有系統管理員許可權的使用者,例如 SQL SA 帳戶。
    • 如果使用 SQL Always on,請確定腳本是從包含窗體中所有 App Service 登入的 SQL 實例執行:
      • appservice_hosting_FileServer
      • appservice_hosting_HostingAdmin
      • appservice_hosting_LoadBalancer
      • appservice_hosting_Operations
      • appservice_hosting_Publisher
      • appservice_hosting_SecurePublisher
      • appservice_hosting_WebWorkerManager
      • appservice_metering_Common
      • appservice_metering_Operations
      • 所有 WebWorker 登入 - 格式為 WebWorker_<instance ip 位址>
          USE appservice_hosting
          IF EXISTS(SELECT * FROM sys.databases WHERE Name=DB_NAME() AND containment = 1)
          BEGIN
          DECLARE @username sysname ;  
          DECLARE user_cursor CURSOR  
          FOR
              SELECT dp.name
              FROM sys.database_principals AS dp  
              JOIN sys.server_principals AS sp
                  ON dp.sid = sp.sid  
                  WHERE dp.authentication_type = 1 AND dp.name NOT IN ('dbo','sys','guest','INFORMATION_SCHEMA');
              OPEN user_cursor  
              FETCH NEXT FROM user_cursor INTO @username  
                  WHILE @@FETCH_STATUS = 0  
                  BEGIN  
                      EXECUTE sp_migrate_user_to_contained
                      @username = @username,  
                      @rename = N'copy_login_name',  
                      @disablelogin = N'do_not_disable_login';  
                  FETCH NEXT FROM user_cursor INTO @username  
              END  
              CLOSE user_cursor ;  
              DEALLOCATE user_cursor ;
              END
          GO
    
          USE appservice_metering
          IF EXISTS(SELECT * FROM sys.databases WHERE Name=DB_NAME() AND containment = 1)
          BEGIN
          DECLARE @username sysname ;  
          DECLARE user_cursor CURSOR  
          FOR
              SELECT dp.name
              FROM sys.database_principals AS dp  
              JOIN sys.server_principals AS sp
                  ON dp.sid = sp.sid  
                  WHERE dp.authentication_type = 1 AND dp.name NOT IN ('dbo','sys','guest','INFORMATION_SCHEMA');
              OPEN user_cursor  
              FETCH NEXT FROM user_cursor INTO @username  
                  WHILE @@FETCH_STATUS = 0  
                  BEGIN  
                      EXECUTE sp_migrate_user_to_contained
                      @username = @username,  
                      @rename = N'copy_login_name',  
                      @disablelogin = N'do_not_disable_login';  
                  FETCH NEXT FROM user_cursor INTO @username  
              END  
              CLOSE user_cursor ;  
              DEALLOCATE user_cursor ;
              END
          GO
    
  • 在升級之後,租使用者應用程式無法將憑證系結至應用程式。

    此問題的原因是升級至 Windows Server 2022 之後前端缺少功能。 操作員必須遵循此程式來解決問題。

    1. 在 Azure Stack Hub 系統管理入口網站中,流覽至 網路安全組 並檢視 ControllersNSG 網路安全組。

    2. 根據預設,所有 App Service 基礎結構角色都會停用遠端桌面。 將 Inbound_Rdp_3389 規則動作修改為 [允許 存取]。

    3. 流覽至包含 App Service 資源提供者部署的資源群組,預設名稱為 AppService。<區域> 並連線到 CN0-VM

    4. 返回 CN0-VM 遠端桌面會話。

    5. 在系統管理員 PowerShell 工作階段中執行:

      重要

      在此腳本執行期間,前端擴展集中的每個實例都會暫停。 如果有訊息指出正在安裝此功能,則會重新啟動該實例。 使用腳本中的暫停來維護前端可用性。 操作員必須確保至少一個前端實例隨時「就緒」,以確保租使用者應用程式可以接收流量,而不會經歷停機。

      $c = Get-AppServiceConfig -Type Credential -CredentialName FrontEndCredential
      $spwd = ConvertTo-SecureString -String $c.Password -AsPlainText -Force
      $cred = New-Object System.Management.Automation.PsCredential ($c.UserName, $spwd)
      
      Get-AppServiceServer -ServerType LoadBalancer | ForEach-Object {
          $lb = $_
          $session = New-PSSession -ComputerName $lb.Name -Credential $cred
      
          Invoke-Command -Session $session {
            $f = Get-WindowsFeature -Name Web-CertProvider
            if (-not $f.Installed) {
                Write-Host Install feature on $env:COMPUTERNAME
                Install-WindowsFeature -Name Web-CertProvider
      
                Shutdown /t 5 /r /f 
            }
         }
      }
      
      Remove-PSSession -Session $session
      
      Read-Host -Prompt "If installing the feature, the machine will reboot. Wait until there's enough frontend availability, then press ENTER to continue"
      
    6. 在 Azure Stack 管理入口網站中,流覽回 ControllersNSG 網路安全組。

    7. 修改Inbound_Rdp_3389規則以拒絕存取。

已知問題 (安裝後)

  • 當 App Service 部署在現有的虛擬網路中,而且檔案伺服器只能在專用網上使用時,背景工作角色無法連線到文件伺服器,如 Azure Stack 部署檔中的 Azure App 服務 中所述。

    如果您選擇部署到現有的虛擬網路和內部IP位址以連線到檔案伺服器,您必須新增輸出安全性規則,以啟用背景工作子網與檔案伺服器之間的SMB流量。 移至管理入口網站中的 WorkersNsg,並新增具有下列屬性的輸出安全性規則:

    • 來源:任意
    • 來源連接埠範圍:*
    • 目的地:IP 位址
    • 目的地 IP 位址範圍:檔案伺服器的 IP 範圍
    • 目的地連接埠範圍:445
    • 通訊協定:TCP
    • 動作:Allow
    • 優先順序:700
    • 名稱:Outbound_Allow_SMB445
  • 若要移除背景工作角色與文件伺服器通訊時的延遲,我們也建議在背景工作 NSG 中新增下列規則,以便在使用 Active Directory 保護檔伺服器時允許連出 LDAP 和 Kerberos 流量至 Active Directory 控制器;例如,如果您已使用快速入門範本來部署HA檔伺服器和SQL Server。

    移至管理入口網站中的 WorkersNsg,並新增具有下列屬性的輸出安全性規則:

    • 來源:任意
    • 來源連接埠範圍:*
    • 目的地:IP 位址
    • 目的地IP位址範圍:AD伺服器的IP範圍,例如快速入門範本10.0.0.0.100、10.0.0.101
    • 目的地埠範圍:389,88
    • 通訊協定:任何
    • 動作:允許
    • 優先順序:710
    • 名稱:Outbound_Allow_LDAP_and_Kerberos_to_Domain_Controllers
  • 在升級之後,租使用者應用程式無法將憑證系結至應用程式。

    此問題的原因是升級至 Windows Server 2022 之後前端缺少功能。 操作員必須遵循此程式來解決此問題:

    1. 在 Azure Stack Hub 系統管理入口網站中,流覽至 網路安全組 並檢視 ControllersNSG 網路安全組。

    2. 根據預設,所有 App Service 基礎結構角色都會停用遠端桌面。 將 Inbound_Rdp_3389 規則動作修改為 [允許 存取]。

    3. 流覽至包含 App Service 資源提供者部署的資源群組,預設名稱為 AppService。<區域> 並連線到 CN0-VM

    4. 返回 CN0-VM 遠端桌面會話。

    5. 在系統管理員 PowerShell 工作階段中執行:

      重要

      在此腳本執行期間,前端擴展集中的每個實例都會暫停。 如果有訊息指出正在安裝此功能,則會重新啟動該實例。 使用腳本中的暫停來維護前端可用性。 操作員必須確保至少一個前端實例隨時「就緒」,以確保租使用者應用程式可以接收流量,而不會經歷停機。

      $c = Get-AppServiceConfig -Type Credential -CredentialName FrontEndCredential
      $spwd = ConvertTo-SecureString -String $c.Password -AsPlainText -Force
      $cred = New-Object System.Management.Automation.PsCredential ($c.UserName, $spwd)
      
      Get-AppServiceServer -ServerType LoadBalancer | ForEach-Object {
          $lb = $_
          $session = New-PSSession -ComputerName $lb.Name -Credential $cred
      
          Invoke-Command -Session $session {
            $f = Get-WindowsFeature -Name Web-CertProvider
            if (-not $f.Installed) {
                Write-Host Install feature on $env:COMPUTERNAME
                Install-WindowsFeature -Name Web-CertProvider
      
                Read-Host -Prompt "If installing the feature, the machine will reboot. Wait until there's enough frontend availability, then press ENTER to continue"
                Shutdown /t 5 /r /f 
            }
         }
      }
      
      Remove-PSSession -Session $session      
      
    6. 在 Azure Stack 管理入口網站中,流覽回 ControllersNSG 網路安全組。

    7. 修改Inbound_Rdp_3389規則以拒絕存取。

在 Azure Stack 上操作 Azure App 服務 雲端管理員的已知問題

  • 已中斷連線的環境中不支援自定義網域。

    App Service 會對公用 DNS 端點執行網域擁有權驗證。 因此,中斷連線的情況下不支援自定義網域。

  • 不支援 Web 和函式應用程式的 虛擬網絡 整合。

    將虛擬網路整合新增至 Web 和函式應用程式的功能會顯示在 Azure Stack Hub 入口網站中,如果租使用者嘗試設定,他們會收到內部伺服器錯誤。 Azure Stack Hub 上的 Azure App 服務 不支援此功能。

下一步