Azure Logic Apps のワークフローから Azure Blob Storage に接続する

適用対象: Azure Logic Apps (従量課金プラン + Standard)

この攻略ガイドでは、Azure Blob Storage コネクタを使用して Azure Logic Apps のワークフローから Azure Blob Storage アカウントとコンテナーにアクセスする方法について説明します。 このコネクタは、ワークフローが BLOB 操作に使用できるトリガーとアクションを提供します。 これにより、ストレージ コンテナーやその他のシステムでイベントによってトリガーされると実行する自動ワークフローを作成し、ストレージ コンテナー内のデータを操作するアクションを実行できます。 たとえば、Azure ストレージ アカウントに BLOB として保存されているファイルにアクセスして管理できます。

Azure Blob Storage には、Logic App (従量課金) および Logic App (Standard) のリソースの種類のワークフローから接続できます。 コネクタは、マルチテナントの Azure Logic Apps、シングルテナントの Azure Logic Apps、および統合サービス環境 (ISE) のロジック アプリのワークフローで使用できます。 ロジック アプリ (Standard) では、Azure BLOB "組み込み" コネクタ操作または Azure Blob Storage マネージド コネクタ操作のいずれかを使用できます。

コネクタに関するテクニカル リファレンス

Azure Blob Storage コネクタには、ロジック アプリの種類とホスト環境に基づいてさまざまなバージョンがあります。

ロジック アプリ 環境 コネクタのバージョン
従量課金プラン マルチテナント Azure Logic Apps マネージド コネクタ (Standard クラス)。 詳細については、次のドキュメントを確認してください。

- Azure Blob Storage マネージド コネクタ リファレンス
- Azure Logic Apps のマネージド コネクタ
従量課金プラン 統合サービス環境 (ISE) マネージド コネクタ (Standard クラス) と、Standard クラスとは異なるメッセージ制限がある ISE バージョン。 詳細については、次のドキュメントを確認してください。

- Azure Blob Storage マネージド コネクタ リファレンス
- ISE メッセージの制限
- Azure Logic Apps のマネージド コネクタ
Standard シングルテナント Azure Logic Apps と App Service Environment v3 (Windows プランのみ) マネージド コネクタ (Azure がホスト) と、サービス プロバイダー ベースの組み込みコネクタ。 組み込みバージョンには次のような違いがあります。

- 組み込みバージョンは Azure Storage アカウントに直接接続し、接続文字列のみを必要とします。

- 組み込みバージョンは、Azure 仮想ネットワークに直接アクセスできます。

詳細については、次のドキュメントを確認してください。

- Azure Blob Storage マネージド コネクタ リファレンス
- Azure BLOB 組み込みコネクタのリファレンス
- Azure Logic Apps の組み込みコネクタ

制限事項

  • 統合サービス環境 (ISE) で実行されているロジック アプリ ワークフローの場合、このコネクタの ISE のラベルが付いたバージョンでは、代わりに ISE メッセージ制限が使用されます。

  • Azure Blob Storage "マネージド" コネクタ アクションは、"50 MB 以下" のファイルの読み取りや書き込みを行うことができます。 Azure Blob Storage のアクションは、50 MB から 1024 MB までのファイルを処理するため、メッセージ チャンクをサポートしています。 BLOB コンテンツを取得するという名前の Blob Storage アクションは、チャンクを暗黙的に使用します。

  • Azure Blob Storage の "マネージド" と "組み込み" のトリガーはチャンクをサポートしていませんが、"組み込み" トリガーは 50 MB 以上のファイルを処理できます。 しかし、"マネージド" トリガーは、ファイル コンテンツを要求するときに、50 MB 以下のファイルのみを選択します。 50 MB より大きいファイルを取得するには、次のパターンに従います。

    1. [BLOB が追加または変更されたとき (プロパティのみ)]のように、ファイルのプロパティを返す BLOB トリガーを使用します。

    2. BLOB コンテンツの取得という Azure Blob Storage マネージド コネクタ アクションに従います。これは、暗黙的にチャンクを使用してファイル全体を読み取ります。

  • Azure Blob Storage トリガーの制限

    • マネージド コネクタ トリガーは、ポーリング仮想フォルダー内の 30,000 個の BLOB に制限されます。
    • み込みのコネクタ トリガーは、ポーリング コンテナー全体で 10,000 個の BLOB に制限されています。

    制限を超えると、新しい BLOB がワークフローをトリガーできない可能性があるため、トリガーはスキップされます。

前提条件

  • Azure アカウントとサブスクリプション。 Azure サブスクリプションがない場合は、無料の Azure アカウントにサインアップしてください。

  • Azure ストレージ アカウントと BLOB コンテナー

  • Azure Storage アカウントにアクセスするロジック アプリ ワークフロー。 Azure BLOB トリガーでワークフローを開始するには、空のワークフローが必要です。 Azure BLOB アクションを使用するには、任意のトリガーでワークフローを開始します。

BLOB トリガーを追加する

従量課金ロジック アプリ ワークフローでは、Azure Blob Storage マネージド コネクタのみを使用できます。 ただし、Standard ロジック アプリ ワークフローでは、Azure Blob Storage マネージド コネクタと Azure BLOB 組み込みコネクタを使用できます。 どちらのコネクタ バージョンも BLOB トリガーを 1 つのみ提供しますが、従量課金と Standard のどちらのワークフローを使用しているかによって、トリガー名が次のように異なります。

ロジック アプリ コネクタのバージョン トリガー名 説明
従量課金 マネージド コネクタのみ BLOB が追加または変更されたとき (プロパティのみ) このトリガーは、ストレージ コンテナーのルート フォルダーで BLOB のプロパティが追加または更新されたときに起動します。 マネージド トリガーを設定すると、マネージド バージョンではストレージ コンテナー内の既存の BLOB が無視されます。
Standard - 組み込みコネクタ

- マネージド コネクタ
- 組み込み: BLOB が追加または更新されたとき

- マネージド: BLOB が追加または変更されたとき (プロパティのみ)
- 組み込み: トリガーは、ストレージ コンテナーで BLOB が追加または更新されると起動し、ルート フォルダーだけでなく、ストレージ コンテナー内の入れ子になったあらゆるフォルダーに対して起動されます。 組み込みトリガーを設定すると、組み込みバージョンではコンテナー内のすべての既存の BLOB が処理されます。

- マネージド: このトリガーは、ストレージ コンテナーのルート フォルダーで BLOB のプロパティが追加または更新されたときに起動します。 マネージド トリガーを設定すると、マネージド バージョンではストレージ コンテナー内の既存の BLOB が無視されます。

次に示す手順では Azure portal を使用しますが、適切な Azure Logic Apps 拡張機能を使用すれば、次のツールでロジック アプリ ワークフローを作成することもできます。

  1. Azure portal で、従量課金ロジック アプリと空のワークフローをデザイナーで開きます。

  2. デザイナーの検索ボックスの下で [Standard] を選択し、この汎用的な手順に従って、必要な Azure Blob Storage マネージド トリガーを追加します

    この使用例は、BLOB が追加または変更されたとき (プロパティのみ) という名前のトリガーで続行されます。

  3. ダイアログが表示されたら、ストレージ アカウントへの接続に関する次の情報を指定します。 完了したら [作成] を選択します。

    プロパティ Required 説明
    接続名 はい 接続の名前
    認証の種類 はい ストレージ アカウントの認証の種類。 詳細については、認証がサポートされているトリガーおよびアクションの認証の種類の、データへのアクセスをセキュリティで保護することに関するページを参照してください。

    たとえば、この接続ではアクセス キー認証が使用され、ストレージ アカウントのアクセス キー値と次のプロパティ値が提供されます。

    プロパティ 必要 説明
    Azure Storage アカウント名 はい、ただし、アクセス キー認証の場合のみ <storage-account-name> 目的の BLOB コンテナーが存在する Azure ストレージ アカウントの名前。

    : ストレージ アカウント名を見つけるには、Azure portal で、お使いのストレージ アカウント リソースを開きます。 リソース メニューの [セキュリティとネットワーク][アクセス キー] を選択します。 [ストレージ アカウント名] で、名前をコピーして保存します。
    Azure ストレージ アカウントのアクセス キー はい、
    ただし、アクセス キー認証の場合のみ
    <ストレージ アカウント アクセス キー> Azure ストレージ アカウントのアクセス キー。

    : アクセス キーを見つけるには、Azure portal で、お使いのストレージ アカウント リソースを開きます。 リソース メニューの [セキュリティとネットワーク][アクセス キー]>[key1]>[表示] を選択します。 主キーの値をコピーして保存します。

    Screenshot showing Consumption workflow, Azure Blob Storage trigger, and example connection information.

  4. トリガー情報ボックスが表示されたら、必要な情報を入力します。

    [コンテナー] のプロパティ値については、フォルダー アイコンを選択して BLOB コンテナーを参照します。 または、構文 /<コンテナー名> を使用して手動でパスを入力します。次に例を示します。

    Screenshot showing Consumption workflow with Azure Blob Storage trigger, and example trigger information.

  5. このトリガーで使用できる他のプロパティを追加するには、[新しいパラメーターの追加] の一覧を開き、必要なプロパティを選択します。

    詳細については、Azure Blob Storage マネージド コネクタ トリガーのプロパティを確認してください。

  6. ワークフローに必要な他のアクションを追加します。

  7. 完了したら、ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。

BLOB アクションを追加する

従量課金ロジック アプリ ワークフローでは、Azure Blob Storage マネージド コネクタのみを使用できます。 ただし、Standard ロジック アプリ ワークフローでは、Azure Blob Storage マネージド コネクタと Azure BLOB 組み込みコネクタを使用できます。 各バージョンには名前が異なる複数のアクションがあります。 たとえば、マネージド コネクタ バージョンと組み込みコネクタ バージョンの両方に、ファイルのメタデータを取得するため、およびファイルの内容を取得するための独自のアクションがあります。

  • マネージド コネクタ アクション: これらのアクションは、従量課金または Standard ワークフローで実行されます。

  • 組み込みコネクタ アクション: これらのアクションは、Standard ワークフローでのみ実行されます。

次の手順では Azure portal を使用しますが、適切な Azure Logic Apps 拡張機能があれば、次のツールを使用してロジック アプリ ワークフローを作成および編集することもできます。

  1. Azure portal で、従量課金ロジック アプリとワークフローをデザイナーで開きます。

  2. ワークフローが空白の場合は、シナリオに必要なトリガーを追加します。

    この例では、Recurrence トリガーを使用します。

  3. デザイナーで、この汎用的な手順に従って、必要な Azure Blob Storage マネージド アクションを見つけて追加します

    この例では、[BLOB コンテンツの取得] というアクションを使用して、進めていきます。

  4. ダイアログが表示されたら、接続に関する次の情報を指定します。 完了したら [作成] を選択します。

    プロパティ Required 説明
    接続名 はい 接続の名前
    認証の種類 はい ストレージ アカウントの認証の種類。 詳細については、認証がサポートされているトリガーおよびアクションの認証の種類の、データへのアクセスをセキュリティで保護することに関するページを参照してください。

    たとえば、この接続ではアクセス キー認証が使用され、ストレージ アカウントのアクセス キー値と次のプロパティ値が提供されます。

    プロパティ 必要 説明
    Azure Storage アカウント名 はい、
    ただし、アクセス キー認証の場合のみ
    <storage-account-name> 目的の BLOB コンテナーが存在する Azure ストレージ アカウントの名前。

    : ストレージ アカウント名を見つけるには、Azure portal で、お使いのストレージ アカウント リソースを開きます。 リソース メニューの [セキュリティとネットワーク][アクセス キー] を選択します。 [ストレージ アカウント名] で、名前をコピーして保存します。
    Azure ストレージ アカウントのアクセス キー はい、
    ただし、アクセス キー認証の場合のみ
    <ストレージ アカウント アクセス キー> Azure ストレージ アカウントのアクセス キー。

    : アクセス キーを見つけるには、Azure portal で、お使いのストレージ アカウント リソースを開きます。 リソース メニューの [セキュリティとネットワーク][アクセス キー]>[key1]>[表示] を選択します。 主キーの値をコピーして保存します。

    Screenshot showing Consumption workflow, Azure Blob action, and example connection information.

  5. アクション情報ボックスに、必要な情報を指定します。

    たとえば、[BLOB コンテンツの取得] アクションで、ストレージ アカウント名を指定します。 [BLOB] のプロパティの値については、フォルダー アイコンを選択してストレージ コンテナーまたはフォルダーを参照します。 または、パスを手動で入力します。

    タスク BLOB パスの構文
    ルート フォルダー内の特定の BLOB からコンテンツを取得します。 /<コンテナー名>/<BLOB 名>
    サブフォルダー内の特定の BLOB からコンテンツを取得します。 /<コンテナー名>/<サブフォルダー>/<BLOB 名>

    次の例は、ルート フォルダー内の BLOB からコンテンツを取得するアクションの設定を示しています。

    Screenshot showing Consumption workflow with Blob action setup for root folder.

    次の例は、サブフォルダー内の BLOB からコンテンツを取得するアクションの設定を示しています。

    Screenshot showing Consumption workflow with Blob action setup for subfolder.

  6. ワークフローに必要な他のアクションを追加します。

  7. 完了したら、ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。

ファイアウォールの背後にあるストレージ アカウントにアクセスする

ファイアウォールとファイアウォール規則を使用してアクセスを制限することで、Azure ストレージ アカウントにネットワーク セキュリティを追加できます。 ただし、この設定では、ストレージ アカウントへのアクセスを必要とする Azure およびその他の Microsoft サービスにおいて問題が生じます。 データ センター内のローカル通信では内部 IP アドレスが抽象化されるため、IP アドレスを使用してトラフィックを許可するだけでは、ファイアウォール経由の通信を正常に許可できない可能性があります。 使用する Azure Blob Storage コネクタに基づいて、次のオプションを使用できます。

他のリージョンにあるストレージ アカウントにアクセスする

マネージド ID 認証を使用しない場合、ロジック アプリのリソースとストレージ アカウントの両方が同じリージョンに存在していると、ロジック アプリ ワークフローはファイアウォールの内側にあるストレージ アカウントに直接アクセスできません。 回避策として、ストレージ アカウントとは別のリージョンにロジック アプリ リソースを配置してください。 そのうえで、リージョン内のマネージド コネクタのアウトバウンド IP アドレスにアクセスを許可します。

Note

このソリューションは、Azure Table Storage コネクタと Azure Queue Storage コネクタには該当しません。 代わりに、組み込み HTTP トリガーとアクションを使用して、Table Storage または Queue Storage にアクセスします。

ストレージ アカウントのファイアウォールにアウトバウンド IP アドレスを追加するには、以下の手順を実行してください。

  1. ロジック アプリ リソースのリージョンのマネージド コネクタ送信 IP アドレスを確認します。

  2. Azure portal で、ストレージ アカウント リソースを検索して開きます。

  3. ストレージ アカウントのナビゲーション メニューの [セキュリティとネットワーク] で、[ネットワーク] を選択します。

    1. [許可するアクセス元][選択されたネットワーク] を選択すると、関連する設定が表示されます。

    2. [ファイアウォール] に、アクセスする必要のある IP アドレスまたは範囲を追加します。 自分のコンピューターからストレージ アカウントにアクセスする必要がある場合は、[クライアント IP アドレスを追加する] を選択します。

      Screenshot of blob storage account networking page in Azure portal, showing firewall settings to add IP addresses and ranges to the allowlist.

    3. 終了したら、 [保存] を選択します。

信頼された仮想ネットワーク経由でストレージ アカウントにアクセスする

  • ロジック アプリとストレージ アカウントが同じリージョンに存在します。

    プライベート エンドポイントを作成することで、自分のストレージ アカウントを Azure 仮想ネットワークに配置した後、その仮想ネットワークを信頼された仮想ネットワークの一覧に追加することができます。 信頼された仮想ネットワークを介して対象のロジック アプリがストレージ アカウントにアクセスできるようにするには、仮想ネットワーク内のリソースに接続できる統合サービス環境 (ISE) にそのロジック アプリをデプロイする必要があります。 その後、その ISE 内のサブネットを、信頼された項目の一覧に追加できます。 ISE ベースのストレージ コネクタ (ISE でバージョン管理された Azure Blob Storage コネクタなど) は、ストレージ コンテナーに直接アクセスできます。 この設定は、ISE からサービス エンドポイントを使用するのと同じエクスペリエンスです。

  • ロジック アプリとストレージ アカウントが異なるリージョンに存在します。

    プライベート エンドポイントを作成する必要はありません。 ストレージ アカウント上で ISE 送信 IP 経由のトラフィックのみを許可できます。

仮想ネットワーク統合を経由してストレージ アカウントにアクセスする

  • ロジック アプリとストレージ アカウントが同じリージョンに存在します。

    プライベート エンドポイントを作成することで、ストレージ アカウントを Azure 仮想ネットワークに配置した後、その仮想ネットワークを信頼された仮想ネットワークの一覧に追加することができます。 ロジック アプリにストレージ アカウントへのアクセス権を付与するには、仮想ネットワーク統合を使用して送信トラフィックを設定し、仮想ネットワーク内のリソースへの接続を有効にする必要があります。 その後、ストレージ アカウントの信頼された仮想ネットワークの一覧に仮想ネットワークを追加できます。

  • ロジック アプリとストレージ アカウントが異なるリージョンに存在します。

    プライベート エンドポイントを作成する必要はありません。 ストレージ アカウント上で ISE 送信 IP 経由のトラフィックのみを許可できます。

システムマネージド ID を使用して同じリージョン内の Blob Storage にアクセスする

任意のリージョンの Azure Blob Storage に接続するには、認証のためにマネージド ID を使用できます。 ファイアウォールを介してストレージ アカウントにアクセスすることを Microsoft の信頼済みサービス (マネージド ID など) に許可する例外を作成できます。

Note

このソリューションは、Standard ロジック アプリには適用されません。 Standard ロジック アプリでシステム割り当てマネージド ID を使用する場合でも、Azure Blob Storage マネージド コネクタは同じリージョン内のストレージ アカウントに接続できません。

ロジック アプリでマネージド ID を使用して Blob Storage にアクセスするには、以下の手順を実行します。

  1. ストレージ アカウントへのアクセスを構成します

  2. ロジック アプリのロールの割り当てを作成します

  3. ロジック アプリにおけるマネージド ID のサポートを有効にします

Note

このソリューションには次の制限事項があります。

ストレージ アカウント接続を認証するには、システム割り当てマネージド ID を設定する必要があります。 ユーザー割り当てマネージド ID は機能しません。

ストレージ アカウントへのアクセスを構成する

例外とマネージド ID のサポートを設定するには、まずストレージ アカウントへの適切なアクセスを構成します。

  1. Azure portal で、ストレージ アカウント リソースを検索して開きます。

  2. ストレージ アカウントのナビゲーション メニューの [セキュリティとネットワーク] で、[ネットワーク] を選択します。

    1. [許可するアクセス元][選択されたネットワーク] を選択すると、関連する設定が表示されます。

    2. 自分のコンピューターからストレージ アカウントにアクセスする必要がある場合、[ファイアウォール][クライアント IP アドレスを追加する] を選択します。

    3. [例外][信頼された Microsoft サービスによるこのストレージ アカウントに対するアクセスを許可します] を選択します。

      Screenshot showing Azure portal and Blob Storage account networking pane with allow settings.

    4. 完了後、保存 を選択します。

Note

ワークフローからストレージ アカウントへの接続を試みたときに "403 Forbidden (許可されていません)" というエラーが表示された場合、複数の原因が考えられます。 その先の手順に進む前に次の解決策を試してみてください。 まず、[信頼された Microsoft サービスによるこのストレージ アカウントに対するアクセスを許可します] 設定を無効にして変更内容を保存します。 次に、設定を再度有効にして、変更を保存し直してください。

ロジック アプリのロールの割り当てを作成する

次に、ロジック アプリ リソースのマネージド ID のサポートを有効にします。

以下の手順は、マルチテナント環境の従量課金プランのロジック アプリと、シングルテナント環境の Standard ロジック アプリのどちらでも同じです。

  1. Azure portal で、ロジック アプリ リソースを開きます。

  2. ロジック アプリ リソースのナビゲーション メニューで、[設定] の配下にある [ID] を選択します。

  3. [システム割り当て] ペインで、[状態][オン] に設定します (まだ有効になっていない場合)。[保存] を選択し、変更を確定します。 [アクセス許可] で、 [Azure でのロールの割り当て] を選択します。

    Screenshot showing the Azure portal and logic app resource menu with the 'Identity' settings pane and 'Azure role assignment permissions' button.

  4. [Azure のロールの割り当て] ペインで、[ロールの割り当ての追加] を選択します。

    Screenshot showing the logic app role assignments pane with the selected subscription and button to add a new role assignment.

  5. [ロールの割り当ての追加] ペインで、新しいロールの割り当てを次の値で設定します。

    プロパティ 説明
    スコープ <resource-scope> ロールの割り当てを適用するリソースセット。 この例では、[ストレージ] を選択します。
    サブスクリプション <Azure-subscription> お使いのストレージ アカウントの Azure サブスクリプション。
    リソース <storage-account-name> ロジック アプリ ワークフローからアクセスするストレージ アカウントの名前。
    Role <role-to-assign> シナリオのワークフローでリソースを操作するために必要なロール。 この例では、BLOB コンテナーと日付に対する読み取り、書き込み、削除アクセスが許可される [ストレージ BLOB データ共同作成者] が必要です。 ドロップダウン メニューのロールの横にある情報アイコンにマウス ポインターを合わせると、アクセス許可の詳細が表示されます。

    Screenshot of role assignment configuration pane, showing settings for scope, subscription, resource, and role.

  6. 操作を完了したら、[保存] を選択して、ロールの割り当ての作成を終了します。

ロジック アプリのマネージド ID のサポートを有効にする

次に、以下の手順を完了します。

  1. 空のワークフローがある場合は、Azure Blob Storage コネクタ トリガーを追加します。 それ以外の場合は、Azure Blob Storage コネクタ アクションを追加します。 既存の接続を使用するのではなく、トリガーまたはアクションのために新しい接続を作成してください。

  2. 必ず、マネージド ID を使用する認証の種類を設定してください。

  3. トリガーまたはアクションを構成したら、ワークフローを保存して、トリガーまたはアクションをテストできます。

ストレージ アカウントへのアクセスに関する問題のトラブルシューティング

  • "この要求では、この操作の実行は許可されません。"

    次のエラーはよく報告される問題です。ロジック アプリとストレージ アカウントが同じリージョンに存在する場合に発生します。 ただし、この制限を解決するためのオプションがあります。「ファイアウォールの背後にあるストレージ アカウントにアクセスする」セクションを参照してください。

    {
       "status": 403,
       "message": "This request is not authorized to perform this operation.\\r\\nclientRequestId: a3da2269-7120-44b4-9fe5-ede7a9b0fbb8",
       "error": {
          "message": "This request is not authorized to perform this operation."
       },
       "source": "azureblob-ase.azconn-ase.p.azurewebsites.net"
    }
    

Application Insights エラー

  • 404 および 409 エラー

    Standard ワークフローで、ストレージ コンテナーに BLOB を追加する Azure BLOB 組み込みアクションを使用している場合、失敗した要求に対して Application Insights で 404 および 409 エラーが発生する可能性があります。 コネクタは BLOB を追加する前に BLOB ファイルが存在するかどうかを確認するため、これらのエラーは予期されたものです。 エラーは、ファイルが存在しない場合に発生します。 これらのエラーにもかかわらず、組み込みアクションによって BLOB が正常に追加されます。

次のステップ