Azure Stack Hub 2302 のApp Serviceリリース ノート

これらのリリース ノートでは、Azure Stack Hub 2302 のAzure App Serviceの機能強化と修正、および既知の問題について説明します。 既知の問題は、デプロイおよび更新プロセスに直接関係する問題と、ビルド (インストール後) に関する問題に分けられています。

重要

App Service リソースプロバイダー (RP) をデプロイまたは更新する前に、必要に応じて Azure Stack Hub をサポートされているバージョンに更新します (または最新の Azure Stack Development Kit をデプロイします)。 RP のリリース ノートを参照し、新しい機能、修正、およびデプロイに影響を与える可能性のある既知の問題について確認してください。

サポートされている Azure Stack Hub の最小バージョン App Service RP バージョン
2301 以降 2302 インストーラー (リリース ノート)

ビルドのリファレンス

Azure Stack Hub 2302 ビルド番号のApp Serviceは 98.0.1.703 です

新機能

Azure Stack Hub 2302 リリースのAzure App Serviceは、2022 H1 リリースに代わるものであり、次の問題の修正プログラムが含まれています。

前提条件

デプロイを開始する前に、前提条件に関するドキュメントをご覧ください。

Azure Stack Hub 上のAzure App Serviceの 2302 へのアップグレードを開始する前に、次の手順を実行します。

  • Azure Stack Hub1.2108.2.127 または 1.2206.2.52 に更新されていることを確認します。

  • Azure Stack Hub 管理ポータルのAzure App Service管理ですべてのロールの準備ができていることを確認します。

  • Azure Stack Hub 管理ポータルApp Service App Service管理を使用してシークレットをバックアップします。

  • App Serviceとマスター データベースSQL Serverバックアップします。

    • AppService_Hosting
    • AppService_Metering
    • Master
  • テナント アプリのコンテンツ ファイル共有をバックアップします。

    重要

    クラウドオペレーターは、ファイル サーバーとSQL Serverのメンテナンスと操作を担当します。 リソース プロバイダーは、これらのリソースの管理は行いません。 クラウドオ ペレーターが、App Service データベースとテナント コンテンツ ファイル共有のバックアップを行います。

  • Marketplace から カスタム スクリプト拡張機能 バージョン 1.9.3 をシンジケートします。

更新前の手順

注意

Azure Stack Hub 2022 H1 に以前にAzure App Serviceを Azure Stack Hub スタンプにデプロイしたことがある場合、このリリースは 2 つの問題に対処する 2022 H1 へのマイナー アップグレードです。

Azure Stack Hub 2302 のAzure App Serviceは、完了までに数時間かかる重要な更新プログラムです。 展開全体が更新され、すべてのロールが Windows Server 2022 Datacenter OS で再作成されます。 そのため、更新プログラムを適用する前に、予定されている更新プログラムをエンド ユーザーに通知することをお勧めします。

  • Azure Stack Hub 2022 H1 更新プログラムのAzure App Serviceの時点で、文字 K は予約済みの SKU 文字になりました。 文字 K を使用するカスタム SKU が定義されている場合は、アップグレード前にこの状況の解決を支援するためにサポートにお問い合わせください。

更新に 関する既知の問題を 確認し、所定のアクションを実行します。

デプロイ後の手順

重要

APP SERVICE リソース プロバイダーに SQL Always On インスタンスを指定した場合は、データベースのフェールオーバー時にサービスが失われないように、appservice_hostingデータベースとappservice_metering データベースを可用性グループに追加し、データベースを同期する必要があります。

既知の問題 (更新プログラム)

  • appservice_hostingとappservice_meteringデータベースを包含データベースに変換した場合、ログインが包含ユーザーに正常に移行されていない場合、アップグレードが失敗する可能性があります。

    デプロイ後にappservice_hostingとappservice_meteringデータベースを包含データベースに変換し、包含ユーザーにデータベース ログインを正常に移行しなかった場合、アップグレード エラーが発生する可能性があります。

    Azure Stack Hub インストールのAzure App Serviceを 2020 Q3 にアップグレードする前に、SQL Server ホスティング appservice_hostingとappservice_meteringに対して次のスクリプトを実行する必要があります。 このスクリプトは非破壊的であり、ダウンタイムが発生することはありません。

    このスクリプトは、次の条件で実行する必要があります。

    • システム管理者特権を持つユーザー (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_<インスタンス IP アドレス> の形式のすべての WebWorker ログイン
          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 セッションで、次を実行します。

      重要

      このスクリプトの実行中は、フロントエンド スケールセット内の各インスタンスに対して一時停止が行われます。 機能がインストールされていることを示すメッセージがある場合は、そのインスタンスが再起動されます。 フロントエンドの可用性を維持するには、スクリプトの一時停止を使用します。 オペレーターは、テナント アプリケーションがトラフィックを受信でき、ダウンタイムが発生しないように、少なくとも 1 つのフロントエンド インスタンスが常に "準備完了" であることを確認する必要があります。

      $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 Serviceのドキュメントで説明されています。

    ファイル サーバーに接続するために既存の仮想ネットワークと内部 IP アドレスへデプロイする場合は、送信セキュリティ規則を追加して、worker サブネットとファイル サーバー間の SMB トラフィックを有効にする必要があります。 管理者ポータルで WorkersNsg に移動し、次のプロパティを持つ送信セキュリティ規則を追加します。

    • ソース:Any
    • 送信元ポート範囲: *
    • 変換先:IP アドレス
    • 宛先 IP アドレス範囲:ファイル サーバーの IP の範囲
    • 送信先ポート範囲:445
    • プロトコル:TCP
    • アクション:Allow
    • 優先順位:700
    • 名前:Outbound_Allow_SMB445
  • ワーカーがファイル サーバーと通信しているときの待機時間を削除するために、Active Directory を使用してファイル サーバーをセキュリティで保護する場合は、Active Directory コントローラーへの送信 LDAP および Kerberos トラフィックを許可するように、次の規則を Worker NSG に追加することもお勧めします。たとえば、クイックスタート テンプレートを使用して HA ファイル サーバーをデプロイし、SQL Serverした場合などです。

    管理者ポータルで WorkersNsg に移動し、次のプロパティを持つ送信セキュリティ規則を追加します。

    • ソース:Any
    • 送信元ポート範囲: *
    • 変換先:IP アドレス
    • 宛先 IP アドレス範囲: AD サーバーの IP の範囲 (クイックスタート テンプレートでの例: 10.0.0.100、10.0.0.101)
    • 宛先ポート範囲: 389、88
    • プロトコル: Any
    • アクション: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 セッションで、次を実行します。

      重要

      このスクリプトの実行中は、フロントエンド スケールセット内の各インスタンスに対して一時停止が行われます。 機能がインストールされていることを示すメッセージがある場合は、そのインスタンスが再起動されます。 フロントエンドの可用性を維持するには、スクリプトの一時停止を使用します。 オペレーターは、テナント アプリケーションがトラフィックを受信でき、ダウンタイムが発生しないように、少なくとも 1 つのフロントエンド インスタンスが常に "準備完了" であることを確認する必要があります。

      $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 アプリと関数アプリのVirtual Network統合はサポートされていません。

    Web アプリと関数アプリに仮想ネットワーク統合を追加する機能は、Azure Stack Hub ポータルに表示され、テナントが構成を試みると、内部サーバー エラーが発生します。 この機能は、Azure Stack Hub 上のAzure App Serviceではサポートされていません。

次のステップ