次の方法で共有


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

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

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

マルチテナント従量課金ロジック アプリまたはシングルテナント Standard ロジック アプリのワークフローから Azure Blob Storage に接続できます。 従量課金ワークフローではマネージド コネクタ バージョンのみが提供されますが、標準ワークフローでは、組み込みのコネクタとマネージド コネクタの両方のバージョンが提供されます。

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

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

ロジック アプリ 環境 コネクタのバージョン
従量課金 マルチテナント Azure Logic Apps マネージド コネクタ。コネクタ ギャラリーの [共有] に表示されます。 詳細については、次のドキュメントを確認してください:

- Azure Blob Storage マネージド コネクタ リファレンス
- Azure Logic Apps のマネージド コネクタ
標準 シングルテナント Azure Logic Apps と App Service Environment v3 (Windows プランのみ) マネージド コネクタ (Azure ホステッド)。これは、コネクタ ギャラリーの [共有] の下に表示され、組み込みコネクタ ( サービス プロバイダー ベース) で、コネクタ ギャラリーの [組み込み] の下に表示されます。 組み込みバージョンには次のような違いがあります。

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

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

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

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

制限事項

  • Azure Blob Storage "マネージド" コネクタ アクションは、"50 MB 以下" のファイルの読み取りや書き込みを行うことができます。 50 MB を超えるが最大 1,024 MB のファイルを処理するために、Azure Blob Storage アクションでは メッセージ チャンクがサポートされます。 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 がワークフローをトリガーできない可能性があるため、トリガーはスキップされます。

前提条件

BLOB トリガーを追加する

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

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


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

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

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

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

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

  2. リソース サイドバー メニューの [開発ツール] で、デザイナーを選択して空のワークフローを開きます。

  3. ワークフローにトリガーを追加する一般的な手順に従って、シナリオに合わせて Azure Blob Storage マネージド トリガーを追加します

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

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

    プロパティ 必須 説明
    接続名 はい 接続の名前。
    認証の種類 はい ストレージ アカウントの認証の種類。 詳細については、認証を サポートするトリガーとアクションの認証の種類を確認してください。

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

    プロパティ 必須 説明
    Azure Storage アカウント名または BLOB エンドポイント はい、ただし、アクセス キー認証の場合のみ < ストレージアカウント名> BLOB コンテナーが存在する Azure Storage アカウントの名前。

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

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

    従量課金ワークフロー、Azure Blob Storage トリガー、および接続情報の例を示すスクリーンショット。

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

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

    Azure Blob Storage トリガーを使用した従量課金ワークフローのスクリーンショットと、トリガー情報の例を示します。

  6. トリガーに他のパラメーターが存在する場合は、[ 詳細パラメーター ] ボックスの一覧を開き、目的のパラメーターを選択します。

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

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

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

BLOB アクションを追加する

従量課金ワークフローでは、Azure Blob Storage マネージド コネクタのみを使用できます。 Standard ワークフローでは、Azure Blob Storage マネージド コネクタと組み込みコネクタの両方を使用できます。 各バージョンでは、従量課金ワークフローと標準ワークフローのどちらを使用しているかに基づいて、複数の異なる名前のアクションが提供されます。 たとえば、マネージド コネクタバージョンと組み込みコネクタ バージョンの両方に、ファイルメタデータを取得してファイルコンテンツを取得するための独自のアクションがあります。

  • 管理されたコネクタのアクションは、消費型または標準型ワークフローで使用できます。

  • 組み込みのコネクタ アクションは、Standard ワークフローでのみ使用できます。

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

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

  2. リソース サイドバー メニューの [開発ツール] で、デザイナーを選択してワークフローを開きます。

    これらの手順では、ワークフローに既にトリガーがあることを前提としています。

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

  3. ワークフローにアクションを追加する一般的な手順に従って、シナリオの Azure Blob Storage マネージド アクションを追加します

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

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

    プロパティ 必須 説明
    接続名 はい 接続の名前
    認証の種類 はい ストレージ アカウントの認証の種類。 詳細については、認証を サポートするトリガーとアクションの認証の種類を確認してください。

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

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

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

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

    従量課金ワークフロー、Azure BLOB アクション、および接続情報の例を示すスクリーンショット。

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

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

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

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

    Blobアクションをルートフォルダーに設定した消費ワークフローを示すスクリーンショット。

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

    サブフォルダーの BLOB アクションの構成を含む従量課金ワークフローを示すスクリーンショット。

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

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

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

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

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

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

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

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

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

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

  3. リソース サイドバー メニューの [ セキュリティとネットワーク] で、[ ネットワーク] を選択します。

    1. [ パブリック ネットワーク アクセス] で、 選択した仮想ネットワークと IP アドレスから [有効] を選択します。

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

      Azure portal の BLOB ストレージ アカウント ネットワーク ページのスクリーンショット。IP アドレスと範囲を許可リストに追加するためのファイアウォール設定が示されています。

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

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

  • ロジック アプリとストレージ アカウントが 同じ リージョンに存在する場合:

    プライベート エンドポイントを作成すると、自分のストレージ アカウントを Azure 仮想ネットワークに配置した後、その仮想ネットワークを信頼された仮想ネットワークの一覧に追加することができます。 信頼された仮想ネットワークを介してストレージ アカウントへのアクセスをロジック アプリに許可するには、仮想ネットワーク内のリソースに接続できる Standard ロジック アプリを作成する必要があります。

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

    ストレージ アカウントにアクセス用のプライベート エンドポイントを作成します。

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

  • ロジック アプリとストレージ アカウントが 同じ リージョンに存在する場合:

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

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

    ストレージ アカウントにアクセス用のプライベート エンドポイントを作成します。

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

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

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

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

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

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

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

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

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

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

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

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

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

    1. [ パブリック ネットワーク アクセス] で、 選択した仮想ネットワークと IP アドレスから [有効] を選択します。

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

    3. [例外][Allow Azure services on the trusted services list to access this storage account]\(信頼されたサービスの一覧の Azure サービスにこのストレージアカウントへのアクセスを許可する\) を選択します。

      Azure portal と Blob Storage アカウントのネットワーク ウィンドウと許可設定を示すスクリーンショット。

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

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

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

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

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

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

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

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

    [ID] 設定ウィンドウと [Azure ロールの割り当てアクセス許可] ボタンが表示された Azure portal とロジック アプリのリソース メニューを示すスクリーンショット。

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

    選択したサブスクリプションと、新しいロールの割り当てを追加するためのボタンが表示された [ロジック アプリ ロールの割り当て] ウィンドウを示すスクリーンショット。

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

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

    スコープ、サブスクリプション、リソース、ロールの設定を示すロールの割り当て構成ウィンドウのスクリーンショット。

  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 が正常に追加されます。