Azure Logic Apps でステートレス組み込みコネクタのステートフル モードを有効にする
適用対象: Azure Logic Apps (Standard)
Standard ロジック アプリ ワークフローで、次の組み込み型、サービス プロバイダーベースのコネクタは、既定ではステートレスです。
- Azure Service Bus
- SAP
- IBM MQ
これらのコネクタ操作をステートフル モードで実行するには、この機能を有効にする必要があります。 この攻略ガイドでは、これらのコネクタのステートフル モードを有効にする方法について説明します。
前提条件
Azure アカウントとサブスクリプション。 サブスクリプションをお持ちでない場合には、無料の Azure アカウントにサインアップしてください。
ステートフル モードが有効なコネクタ操作を使用するワークフローの作成を計画している Standard ロジック アプリ リソース。 このリソースがない場合は、ご自分の Standard ロジック アプリ リソースをすぐに作成してください。
Azure 仮想ネットワークと、自分のロジック アプリと統合するサブネット。 これらの項目がない場合は、次のドキュメントを参照してください。
Azure portal でステートフル モードを有効にする
Azure portal で、ステートフル モードをこれらのコネクタ操作で有効にしたい Standard ロジック アプリ リソースを開きます。
ロジック アプリに対して仮想ネットワーク統合を有効にし、ロジック アプリを前に作成したサブネットに追加するには、次の手順に従います。
ロジック アプリのメニュー リソースの [設定] で、[ネットワーク] を選択します。
[送信トラフィックの構成] セクションの [仮想ネットワーク統合] の横で、[未構成]>[仮想ネットワーク統合の追加] の順に選択します。
[仮想ネットワーク統合の追加] ペインが開いたら、使用する Azure サブスクリプションと仮想ネットワークを選択します。
[サブネット] リストから、ロジック アプリを追加するサブネットを選択します。
完了したら、[接続] を選択し、[ネットワーク] ページに戻ります。
これで、[仮想ネットワーク統合] プロパティが、選択した仮想ネットワークおよびサブネットに設定されます。次に例を示します。
アプリとの仮想ネットワーク統合の有効化に関する全般情報については、「Azure App Service で仮想ネットワーク統合を有効にする」を参照してください。
次に、ロジック アプリの基盤となる Web サイト構成 (<logic-app-name>.azurewebsites.net) を、以下のいずれかのツールを使用して更新します。
ロジック アプリの Web サイトの構成の更新
ロジック アプリでの仮想ネットワーク統合を有効にした後で、ロジック アプリの基盤となる Web サイト構成 (<logic-app-name>.azurewebsites.net) を、以下のいずれかの方法を使用して更新する必要があります。
- Azure portal (ベアラー トークンは必要ありません)
- Azure Resource Management API (ベアラー トークンが必要です)
- Azure PowerShell (ベアラー トークンは必要"ありません")
Azure portal
Azure portal を使用して仮想ネットワーク プライベート ポートを構成するには、次の手順に従います。
- Azure portal で、ご利用の Standard ロジック アプリ リソースを検索して開きます。
- ロジック アプリ メニューの [設定] で、 [構成] を選択します。
- [構成] ページで、[全般設定] を選択します。
- [プラットフォーム設定] の [VNet プライベート ポート] ボックスに、自分が使用するポートを入力します。
Azure リソース管理 API
Azure リソース管理 API - ID による更新でこのタスクを完了するには、次の要件、構文、パラメーター値を確認してください。
必要条件
OAuth 承認およびベアラー トークンは必須です。 ベアラー トークンを取得するには、次の手順に従います
Azure portal にサインインしている間に、Web ブラウザーの開発者ツールを開きます (F12)。
トークンを取得するために、たとえば、Standard ロジック アプリにワークフローを保存するなどして、任意の管理要求を送信します。
構文
指定されたリソース ID を使用してリソースを更新します。
PATCH https://management.azure.com/{resourceId}?api-version=2021-04-01
パラメーター値
要素 | Value |
---|---|
HTTP 要求メソッド | PATCH |
<resourceId> | subscriptions/{yourSubscriptionID}/resourcegroups/{yourResourceGroup}/providers/Microsoft.Web/sites/{websiteName}/config/web |
<yourSubscriptionId> | Azure サブスクリプションの ID |
<yourResourceGroup> | ロジック アプリ リソースを含むリソース グループ |
<websiteName> | ロジック アプリ リソースの名前 (この例では mystandardlogicapp) |
HTTP 要求本文 | {"properties": {"vnetPrivatePortsCount": "2"}} |
例
https://management.azure.com/subscriptions/XXxXxxXX-xXXx-XxxX-xXXX-XXXXxXxXxxXX/resourcegroups/My-Standard-RG/providers/Microsoft.Web/sites/mystandardlogicapp/config/web?api-version=2021-02-01
Azure PowerShell
このタスクを Azure PowerShell で完了するには、次の要件、構文、値を確認します。 この方法では、ベアラー トークンを手動で取得する必要はありません。
構文
Set-AzContext -Subscription {yourSubscriptionID}
$webConfig = Get-AzResource -ResourceId {resourceId}
$webConfig.Properties.vnetPrivatePortsCount = 2
$webConfig | Set-AzResource -ResourceId {resourceId}
詳しくは、次のドキュメントをご覧ください。
パラメーター値
要素 | 値 |
---|---|
<yourSubscriptionID> | Azure サブスクリプションの ID |
<resourceId> | subscriptions/{yourSubscriptionID}/resourcegroups/{yourResourceGroup}/providers/Microsoft.Web/sites/{websiteName}/config/web |
<yourResourceGroup> | ロジック アプリ リソースを含むリソース グループ |
<websiteName> | ロジック アプリ リソースの名前 (この例では mystandardlogicapp) |
例
https://management.azure.com/subscriptions/XXxXxxXX-xXXx-XxxX-xXXX-XXXXxXxXxxXX/resourcegroups/My-Standard-RG/providers/Microsoft.Web/sites/mystandardlogicapp/config/web?api-version=2021-02-01
エラーをトラブルシューティングする
エラー: 予約済みインスタンス数が無効です
「予約済みインスタンス数が無効です」というエラーが表示されたら、次の対応策をとってください。
$webConfig.Properties.preWarmedInstanceCount = $webConfig.Properties.reservedInstanceCount
$webConfig.Properties.reservedInstanceCount = $null
$webConfig | Set-AzResource -ResourceId {resourceId}
エラーの例:
Set-AzResource :
{
"Code":"BadRequest",
"Message":"siteConfig.ReservedInstanceCount is invalid. Please use the new property siteConfig.PreWarmedInstanceCount.",
"Target": null,
"Details":
[
{
"Message":"siteConfig.ReservedInstanceCount is invalid. Please use the new property siteConfig.PreWarmedInstanceCount."
},
{
"Code":"BadRequest"
},
{
"ErrorEntity":
{
"ExtendedCode":"51021",
"MessageTemplate":"{0} is invalid. {1}",
"Parameters":
[
"siteConfig.ReservedInstanceCount", "Please use the new property siteConfig.PreWarmedInstanceCount."
],
"Code":"BadRequest",
"Message":"siteConfig.ReservedInstanceCount is invalid. Please use the new property siteConfig.PreWarmedInstanceCount."
}
}
],
"Innererror": null
}
リソース スケールイン イベント中のコンテキスト ロスを防ぐ
リソース スケールイン イベントが原因で、ステートフル モードが有効な組み込みコネクタでコンテキストのロスが生じる場合があります。 この潜在的ロスをこのようなイベントが起きる前に防ぐには、ロジック アプリ リソースで利用可能なインスタンスの数を修正します。 このようにすると、スケールイン イベントが生じてこの潜在的ロスの原因になることがなくなります。
ロジック アプリ リソースのメニューの [設定] で、[スケールアウト] を選択します。
[スケール アウト] ページの [アプリのスケール アウト] セクションで、次の手順に従います。
[スケールアウト制限を適用する] を [はい] に設定すると、[スケールアウト制限の上限] が表示されます。
[常時使用可能なインスタンス] の数を [スケールアウト制限の上限] および [最大バースト] と同じ数に設定すると、[プランのスケールアウト] セクションに次の例のように表示されます。
操作が完了したら、[スケールアウト] ツールバーで、[保存] を選択します。