Azure Stack Hub 2302 版本資訊上的 App Service

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

重要

如有必要,請在部署或更新 App Service 資源提供者 (RP) 之前,將 Azure Stack Hub 更新為支援的版本 (或部署最新的 Azure Stack 開發套件)。 也請務必閱讀 RP 版本資訊,以了解有哪些新功能、修正,以及任何可能對部署造成影響的已知問題。

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

建置參考

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

新功能

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

Prerequisites

開始部署之前,請參閱「在您開始之前」文件

開始將 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;
    • Master
  • 備份租用戶應用程式內容檔案共用。

    重要

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

  • 從 Marketplace Syndicate 自定義腳本延伸模組1.9.3 版。

更新前步驟

注意

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

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

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

檢閱 更新的已知問題 ,並採取任何指定的動作。

部署後步驟

重要

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

已知問題 (更新)

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

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

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

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

    • 由具有系統管理員許可權的使用者,例如 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_<執行個體 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 保護檔伺服器時允許對 Active Directory 控制器的輸出 LDAP 和 Kerberos 流量;例如,如果您使用快速入門範本來部署HA檔伺服器和 SQL Server。

    移至管理入口網站中的 WorkersNsg,然後使用下列屬性新增輸出安全性規則:

    • 來源:任何
    • 來源連接埠範圍:*
    • 目的地:IP 位址
    • 目的地 IP 位址範圍:AD 伺服器的 IP 範圍,例如使用快速入門範本時為 10.0.0.100, 10.0.0.101
    • 目的地連接埠範圍:389,88
    • 通訊協定: 任何
    • 動作:Allow
    • 優先順序: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 App Service on Azure Stack 時的已知問題

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

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

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

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

後續步驟