0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LogicApps(Vnet統合)とTableStorageの連携時のエラー対応

Last updated at Posted at 2024-11-12

初めに

お久しぶりです。ぼちぼちブログ投稿を再開していきたいと思います。今回は、LogicApps(Standard)からコネクタを使用してTableStorageへアクセスができないトラブルにハマっていました。私の知見不足が原因で、その点についてSRへ確認しましたのでその情報をここで共有できればと思います。

今回の構成は?

以下、プライベート通信を想定した構成となっています。

■ LogicAppsの構成

  • Standard構成
  • Vnet統合
  • 割当てロール(ストレージアカウント共同作成者、ストレージテーブルデータ共同作成者)

■ StorageAccountの構成

  • ファイアーウォールは有効
  • プライベートエンドポイントを作成
  • 「信頼されたサービスの一覧」からの通信を許可

どんなエラーが発生したか

状況:ロジック アプリ (Standard)でAzureTableStorageのコネクタの使用時に、テーブルの選択でエラーが表示される。同じ手順で、ロジックアプリ(従量課金)使用時にはエラーは発生しない。
使用したコネクタ:Azure Table Storage(エンティティの取得 (V2))
エラー内容:以下

Error executing the API - https://management.azure.com/subscriptions/(サブスクリプションID)/resourceGroups/(リソースグループ名)/providers/Microsoft.Web/sites/(LogicApps名)/hostruntime/runtime/webhooks/workflow/api/management/dynamicInvoke 詳細な診断情報: x-ms-client-request-id は 'XXXXXX'です。

解消方法

組み込み (built-in) コネクタの [Azure Table Storage] コネクタを使用することで回避可能。
設定方法については以下参考にしてください
MS公式ブログ | built-in (組み込み) タイプのコネクタを利用する

参考資料では「アプリ内」と記載されていますが私の環境では「In-app」と記載されていました。
image.png

なぜエラーが発生したのか

コネクタには主に「built-inタイプのコネクタ」と「Azureコネクタ」の2種類があります。プライベートネットワークでの通信を使用してリソースへアクセスする際は、コネクタの選択に注意する必要があります。各コネクタの特徴を以下にまとめておきます。

  • built-inタイプのコネクタ:今回の前提のように、Vnet統合を使用して実行する場合はプライベートネットワーク経由でTableStorage等のリソースにアクセスをする場合に使用。種類がAzureコネクタと比較して少ないので注意
  • Azureコネクタ:パブリック経由での通信を行うLogicAppsの構成をとる場合はを使用可能。種類が豊富

それぞれのコネクタの実行環境の違いが、根本の要因です。
以下各コネクタを使用した通信時のイメージ図になります。
image.png

  • (青線)built-inコネクタはAzureLogicAppsホストランタイムと同じ環境で実行されます。そのため、プライベートネットワーク経由での通信が可能です。
  • (緑線)Azureコネクタは共有環境で実行されます。そのため、マネージドコネクタの送信IPアドレスを介してパブリックネットワーク経由で通信が必要です。

なぜ従量課金プランでは通信できたのか

従量課金プランのLogicAppsからパブリックネットワーク経由でアクセスしていたTableStorageへの通信は、StorageAccountの以下ネットワーク設定によってスルーされており通信ができていました。

「信頼されたサービスの一覧」からの通信を許可

従量課金プランでは「Microsoft.Logic」というリソースタイプで通信をします。このリソースタイプは「信頼されたサービスの一覧」に含まれます。一方でStandardプランの場合は、「Microsoft.Web」というリソースタイプで通信をしますが、こちらは「信頼されたサービスの一覧」には含まれておらず、StorageAccountのファイアーウォールで拒否された形となっておりました。

まとめ

Vnet統合を使用しているLogicAppsについては、基本的にbuilt-Inコネクタを使用しましょうという学びとなりました。また、Standard構成は基盤としてWebappsが動いているということが今回のリソースタイプの一件で良く伝わったかと思います。

参考文献

MSLearn | Azure Logic Apps (Standard) での組み込み操作と Azure コネクタの違い

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?