Azure Logic Apps でステートレス組み込みコネクタのステートフル モードを有効にする
適用対象: Azure Logic Apps (Standard)
Standard ロジック アプリ ワークフローで、次の組み込み型、サービス プロバイダーベースのコネクタは、既定ではステートレスです。
- Azure Service Bus
- SAP
- IBM MQ
これらのコネクタ操作をステートフル モードで実行するには、この機能を有効にする必要があります。 この攻略ガイドでは、これらのコネクタのステートフル モードを有効にする方法について説明します。
前提条件
Azure アカウントとサブスクリプション。 サブスクリプションをお持ちでない場合には、無料の Azure アカウントにサインアップしてください。
ステートフル モードが有効なコネクタ操作を使用するワークフローの作成を計画している Standard ロジック アプリ リソース。 このリソースがない場合は、ご自分の Standard ロジック アプリ リソースをすぐに作成してください。
Azure 仮想ネットワークと、自分のロジック アプリと統合するサブネット。 これらの項目がない場合は、次のドキュメントを参照してください。
Azure portal でステートフル モードを有効にする
Azure portal で、ステートフル モードをこれらのコネクタ操作で有効にしたい Standard ロジック アプリ リソースを開きます。
ロジック アプリの仮想ネットワーク統合を有効にして、ロジック アプリを前に作成したサブネットに追加します。
ロジック アプリのメニュー リソースの [設定] で、[ネットワーク] を選択します。
[送信トラフィック] セクションで、[VNET 統合]>[VNet の追加] を選択します。
[VNet 統合の追加] ペインが開いたら、Azure サブスクリプションと仮想ネットワークを選択します。
[サブネット] で [既存のものを選択] を選択します。 [サブネット] リストから、ロジック アプリを追加するサブネットを選択します。
終了したら、OK を選択します。
[ネットワーク] ページで、[VNet 統合] オプションは、例のように[オン] に設定されています。
アプリとの仮想ネットワーク統合の有効化に関する全般情報については、「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
パラメーター値
要素 | 値 | 説明 |
---|---|---|
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
}
リソース スケールイン イベント中のコンテキスト ロスを防ぐ
リソース スケールイン イベントが原因で、ステートフル モードが有効な組み込みコネクタでコンテキストのロスが生じる場合があります。 この潜在的ロスをこのようなイベントが起きる前に防ぐには、ロジック アプリ リソースで利用可能なインスタンスの数を修正します。 このようにすると、スケールイン イベントが生じてこの潜在的ロスの原因になることがなくなります。
ロジック アプリ リソースのメニューの [設定] で、[スケールアウト] を選択します。
[アプリのスケールアウト] で、[スケールアウト制限を適用する] を [はい] に設定すると、[スケールアウト制限の上限] が表示されます。
[スケールアウト] ページの [アプリのスケールアウト] で、[常時使用可能なインスタンス] の数を [スケールアウト制限の上限] と [最大バースト] と同じ数に設定すると、[プランのスケールアウト] の下で次の例のように表示されます。
操作が完了したら、[スケールアウト] ツールバーで、[保存] を選択します。
次のステップ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示