App Service on Azure Stack Hub update 8 のリリース ノート
これらのリリース ノートでは、Azure App Service on Azure Stack Hub Update 8 の新機能、修正点、および既知の問題について説明します。 既知の問題は 2 つのセクションに分かれています。アップグレード プロセスに関連する問題とビルド (インストール後) に関する問題です。
重要
Azure App Service 1.8 をデプロイする前に、Azure Stack 統合システムに 1910 更新プログラムを適用するか、最新の Azure Stack Development Kit (ASDK) をデプロイします。
ビルドのリファレンス
Azure App Service on Azure Stack Hub Update 8 のビルド番号は 86.0.2.13 です。
前提条件
デプロイを開始する前に、App Service on Azure Stack Hub の前提条件に関するページを参照してください。
Azure App Service on Azure Stack Hub の 1.8 へのアップグレードを開始する前に:
Azure Stack Hub 管理者ポータルの Azure App Service の管理で確実にすべてのロールの準備ができているようにします。
Azure Stack Hub 管理ポータルの Azure App Service 管理を使用して、App Service のシークレットをバックアップします
App Service とマスター データベースをバックアップします。
- AppService_Hosting
- AppService_Metering
- master
テナント アプリのコンテンツ ファイル共有をバックアップします。
重要
ファイル サーバーと SQL Server の保守と操作を担当するのは、クラウド オペレーターです。 リソース プロバイダーは、これらのリソースの管理は行いません。 クラウドオ ペレーターが、App Service データベースとテナント コンテンツ ファイル共有のバックアップを行います。
Azure Stack Hub Marketplace からカスタム スクリプト拡張機能バージョン 1.9.3 を配信します
新機能と修正
Azure App Service on Azure Stack Hub Update 8 には、次の機能強化と修正が含まれています。
App Service のテナント ポータル、管理ポータル、関数ポータル、Kudu ツールの更新。 Azure Stack Portal SDK バージョンと一貫性があります。
Azure 関数ランタイムが v1.0.12615 に更新されました。
信頼性を高めるためのコア サービスと、一般的な問題を簡単に診断できるようにするエラー メッセージの更新。
次のアプリ フレームワークとツールの更新:
- ASP.NET Core 3.1.0
- ASP.NET Core 3.0.1
- ASP.NET Core 2.2.8
- ASP.NET Core Module v2 13.1.19331.0
- Azul OpenJDK 8.38.0.13
- Tomcat 7.0.94
- Tomcat 8.5.42
- Tomcat 9.0.21
- PHP 7.1.32
- PHP 7.2.22
- PHP 7.3.9
- Kudu を 85.11024.4154 に更新
- MSDeploy 3.5.80916.15
- NodeJS 10.16.3
- NPM 6.9.0
- Git for Windows 2.19.1.0
すべてのロールの基になっているオペレーティング システムの更新プログラム:
新しいデプロイのマネージド ディスクのサポート
Azure App Service on Azure Stack Hub のすべての新しいデプロイでは、仮想マシンと仮想マシン スケール セットにマネージド ディスクが使用されます。 既存のすべてのデプロイでは、アンマネージド ディスクが引き続き使用されます。
- フロントエンド ロード バランサーによって適用される TLS 1.2
TLS 1.2 はすべてのアプリに適用されるようになりました。
既知の問題 (アップグレード)
- SQL Server Always On クラスターがセカンダリ ノードにフェール オーバーされた場合、アップグレードが失敗します。
アップグレード中に、マスター接続文字列を使用してデータベースの存在を確認する呼び出しが行われます。これは、前のコントロール プレーン ノードでのログインであったために失敗します。
次のいずれかの操作を実行し、インストーラー内で [再試行] を選択します。
現在のセカンダリ SQL ノードから
appservice_hostingAdmin
ログインをコピーします。OR
SQL クラスターを前のアクティブ ノードにフェールオーバーします。
デプロイ後の手順
重要
SQL Always On インスタンスを使用して App Service リソース プロバイダーを提供している場合は、データベースのフェールオーバーが発生したときにサービスが失われないように、appservice_hosting と appservice_metering データベースを可用性グループに追加し、それらのデータベースを同期する "必要があります"。
既知の問題 (インストール後)
App Service が既存の仮想ネットワークにデプロイされ、ファイル サーバーがプライベート ネットワークでしか使用できない場合、worker はファイル サーバーに到達することができません。Azure App Service on Azure Stack Hub のデプロイ ドキュメントで説明されているとおりです。
ファイル サーバーに接続するために既存の仮想ネットワークと内部 IP アドレスへデプロイする場合は、送信セキュリティ規則を追加して、worker サブネットとファイル サーバー間の SMB トラフィックを有効にする必要があります。 管理者ポータルで WorkersNsg に移動し、次のプロパティを持つ送信セキュリティ規則を追加します。
- ソース:Any
- 送信元ポート範囲: *
- 変換先:IP アドレス
- 宛先 IP アドレス範囲:ファイル サーバーの IP の範囲
- 送信先ポート範囲:445
- プロトコル:TCP
- アクション:Allow
- 優先順位:700
- 名前:Outbound_Allow_SMB445
Azure App Service on Azure Stack Hub 1.8 の新しいデプロイでは、データベースを包含データベースに変換する必要がある
このリリースでの回帰が原因で、新しくデプロイしたときは、両方の App Service データベース (appservice_hosting と appservice_metering) を包含データベースに変換する必要があります。 これは、アップグレードしたデプロイには影響しません。
重要
この手順の所要時間は 5 分から 10 分程度です。 この手順には、既存のデータベース ログイン セッションを中止する作業が伴います。 Azure App Service on Azure Stack Hub の移行とその後の検証に伴うダウンタイムを考慮してください。
AppService データベース (appservice_hosting and appservice_metering) を可用性グループに追加します。
包含データベースを有効にします。
sp_configure 'contained database authentication', 1; GO RECONFIGURE; GO
データベースを部分的包含に変換します。 すべてのアクティブなセッションを強制終了する必要があるため、この手順ではダウンタイムが発生します。
/******** [appservice_metering] Migration Start********/ USE [master]; -- kill all active sessions DECLARE @kill varchar(8000) = ''; SELECT @kill = @kill + 'kill ' + CONVERT(varchar(5), session_id) + ';' FROM sys.dm_exec_sessions WHERE database_id = db_id('appservice_metering') EXEC(@kill); USE [master] GO ALTER DATABASE [appservice_metering] SET CONTAINMENT = PARTIAL GO /********[appservice_metering] Migration End********/ /********[appservice_hosting] Migration Start********/ -- kill all active sessions USE [master]; DECLARE @kill varchar(8000) = ''; SELECT @kill = @kill + 'kill ' + CONVERT(varchar(5), session_id) + ';' FROM sys.dm_exec_sessions WHERE database_id = db_id('appservice_hosting') EXEC(@kill); -- Convert database to contained USE [master] GO ALTER DATABASE [appservice_hosting] SET CONTAINMENT = PARTIAL GO /********[appservice_hosting] Migration End********/
包含データベース ユーザーにログインを移行します。
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
検証
SQL Server で包含が有効になっているかどうかを確認します。
sp_configure @configname='contained database authentication'
既存の包含の動作を確認します。
SELECT containment FROM sys.databases WHERE NAME LIKE (SELECT DB_NAME())
worker をスケールアウトできない
新しい worker が、必要なデータベース接続文字列を取得できません。 この状況を解決するには、コントローラー インスタンスのいずれか (たとえば CN0-VM) に接続し、次の PowerShell スクリプトを実行します。
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Hosting") $siteManager = New-Object Microsoft.Web.Hosting.SiteManager $builder = New-Object System.Data.SqlClient.SqlConnectionStringBuilder -ArgumentList (Get-AppServiceConnectionString -Type Hosting) $conn = New-Object System.Data.SqlClient.SqlConnection -ArgumentList $builder.ToString() $siteManager.RoleServers | Where-Object {$_.IsWorker} | ForEach-Object { $worker = $_ $dbUserName = "WebWorker_" + $worker.Name if (!$siteManager.ConnectionContexts[$dbUserName]) { $dbUserPassword = [Microsoft.Web.Hosting.Common.Security.PasswordHelper]::GenerateDatabasePassword() $conn.Open() $command = $conn.CreateCommand() $command.CommandText = "CREATE USER [$dbUserName] WITH PASSWORD = '$dbUserPassword'" $command.ExecuteNonQuery() $conn.Close() $conn.Open() $command = $conn.CreateCommand() $command.CommandText = "ALTER ROLE [WebWorkerRole] ADD MEMBER [$dbUserName]" $command.ExecuteNonQuery() $conn.Close() $builder.Password = $dbUserPassword $builder["User ID"] = $dbUserName $siteManager.ConnectionContexts.Add($dbUserName, $builder.ToString()) } } $siteManager.CommitChanges()
Azure App Service on Azure Stack Hub を運用するクラウド管理者に対する既知の問題
Azure Stack Hub 1907 リリース ノート内のドキュメントを参照してください。
- テナントは、テナント ポータルの App Service プラン ビューで新規を使用して App Service プランを作成できない
新しいアプリケーションを作成する場合、テナントはアプリの作成ワークフローで App Service プランを作成できます。また、App Service プランは、現在のアプリの App Service プランを変更する際や、App Service プランの Marketplace 項目を使用して作成することもできます
- カスタム ドメインは、切断された環境ではサポートされない
App Service は、パブリック DNS エンドポイントに対してドメインの所有権の検証を実行します。このため、カスタム ドメインは、切断されたシナリオではサポートされません。
- 場合によっては、ワーカーが正常性チェックに合格しないことがあります (ディスク領域不足)
多くのサイトがワーカーに割り当てられている場合や、サイトで大量の要求が処理されている場合、ワーカーによって C:\DWAS\LogFiles に多数のランタイム ログ ファイルが生成されます。 これは、これらのログ ファイルのクリーンアップ ロジックのバグが原因です。
この問題を軽減するには、個々のワーカーを削除し、フォルダーの内容を消去します。
この問題は、App Service on Azure Stack Hub 2020 Q3 で修正されました。できるだけ早く 2020 Q3 リリースにアップグレードすることをお勧めします。
重要
Azure App Service on Azure Stack Hub 2020 Q3 に更新するには、Azure Stack Hub 2008 へアップグレードする必要があります
次のステップ
- Azure App Service の概要については、「App Service on Azure Stack Hub と Azure Functions の概要」を参照してください。
- App Service on Azure Stack Hub のデプロイを準備する方法の詳細については、「App Service on Azure Stack Hub のデプロイの前提条件」をご覧ください。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示