Azure Logic Apps のワークフローから FTP サーバーに接続する

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

この記事では、ファイル転送プロトコル (FTP) コネクタを使って Azure Logic Apps のワークフローから FTP サーバーにアクセスする方法について説明します。 これにより、FTP サーバーやその他システムでイベントによってトリガーされると実行される自動ワークフローを作成でき、そのワークフローにより FTP サーバーでファイルを管理するアクションを実行できます。

たとえば、FTP サーバーでイベントを監視して応答する FTP トリガーによってワークフローを開始できます。 トリガーにより、ワークフロー内の後続のアクションで出力を使用できるようになります。 ワークフローで、次の特定のタスクを使用して、FTP サーバー アカウントを介してファイルを作成、送信、受信、管理する FTP アクションを実行できます。

  • ファイルの追加または変更を監視します。
  • ファイルを作成、コピー、削除、一覧表示、更新する。
  • ファイルのメタデータと内容を取得する。
  • フォルダーを管理する。

Azure Logic Apps を初めて使う場合は、次の作業開始ドキュメントをご覧ください。

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

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

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

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

- FTP マネージド コネクタのリファレンス
- ISE メッセージの制限
- Azure Logic Apps のマネージド コネクタ
Standard シングルテナント Azure Logic Apps と App Service Environment v3 (Windows プランのみ) マネージド コネクタ (Azure がホスト) と、サービス プロバイダー ベースの組み込みコネクタ。 組み込みコネクタは、接続文字列を使用して Azure 仮想ネットワークに直接アクセスできます。 詳細については、次のドキュメントを確認してください。

- FTP マネージド コネクタのリファレンス
この記事で後述される - FTP 組み込みコネクタによる操作に関するセクション
- Azure Logic Apps のマネージド コネクタ
- Azure Logic Apps の組み込みコネクタ

制限事項

  • 容量とスループット

    • Standard ワークフローの組み込みコネクタ:

      既定では、FTP アクションは 200 MB 以下のファイルの読み取りまたは書き込みが可能です。 現時点では、FTP 組み込みコネクタはチャンクをサポートしていません。

    • 従量課金プラン ワークフローと Standard ワークフローのマネージド コネクタまたは Azure ホステッド コネクタ

      既定では、FTP アクションは 50 MB 以下のファイルの読み取りまたは書き込みが可能です。 50 MB を超えるファイルを処理するために、FTP アクションでは、メッセージのチャンクがサポートされています。 ファイルのコンテンツの取得アクションでは、暗黙的にチャンクが使用されます。

  • FTP のマネージド コネクタまたは Azure ホステッド コネクタのトリガーでは、"最終更新日時" タイムスタンプが保持されると、結果が欠落したり、不完全になったり、遅延したりする可能性があります。 一方、FTP 組み込み 標準ロジック アプリ ワークフローのコネクタ トリガーには、この制限はありません。 詳しくは、FTP コネクタの「制限事項」セクションを参照してください。

  • FTP のマネージド コネクタまたは Azure ホステッド コネクタは、ロジック アプリ リソースが存在する Azure リージョンの接続容量に基づいて、FTP サーバーへの限られた数の接続を作成できます。 この制限が従量課金プランのロジック アプリ ワークフローで問題になる場合は、Standard ロジック アプリ ワークフローを作成し、代わりに FTP 組み込みコネクタを使うことを検討してください。

前提条件

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

  • FTP アカウントにアクセスするロジック アプリ ワークフロー。 FTP トリガーでワークフローを開始するには、空のワークフローから開始する必要があります。 FTP アクションを使用するには、別のトリガー ([繰り返し] トリガーなど) でワークフローを開始します。

  • FTP マネージド コネクタと組み込みコネクタの両方に適用されるその他の要件については、FTP マネージド コネクタのリファレンス - 要件に関するページを参照してください。

既知の問題

既定では、配列を返すトリガーには [Split On] (分割) 設定があり、既に有効になっています。 この設定が有効になっている場合、トリガーは、各配列項目を処理する個別のワークフロー インスタンスを内部で作成することで、配列を自動的に "分割" します。 配列項目が同時に処理されるように、すべてのワークフロー インスタンスが並列して実行されます。

ただし、[Split On] (分割) 設定が有効になっている場合、"マネージド" コネクタ トリガーは、すべての配列項目の出力をリストとして返します。 これらの出力を参照する後続のアクションは、最初にこれらの出力をリストとして処理する必要があります。 各配列項目を個別に処理するために、アクションを追加できます。 たとえば、これらの配列項目を反復処理するために、For each ループを使用できます。 メタデータまたはプロパティのみを返すトリガーの場合、最初に配列項目のメタデータを取得するアクションを使用し、次に、項目の内容を取得するアクションを使用します。

この方法は、"マネージド" コネクタ トリガーにのみ適用する必要があります。[Split On] (分割) 設定が有効になっているときに、一度に 1 つの配列項目の出力を返す組み込みコネクタ トリガーには適用しないでください。

たとえば、[ファイルが追加または変更されたとき (プロパティのみ)] という名前のマネージド コネクタ トリガーがあるとします。このトリガーは、新しいファイルまたは更新されたファイルのメタデータまたはプロパティを配列として返します。 各ファイルのメタデータを個別に取得するために、配列を反復処理する For each ループを使用できます。 このループでは、次のマネージド コネクタ アクションを指定されている順序で使用します。

  1. 各ファイルのメタデータを取得するための [ファイルのメタデータの取得]

  2. 各ファイルの内容を取得するための [ファイルの内容の取得] アクション。

FTP トリガーを追加する

従量課金プラン ロジック アプリ ワークフローでは、FTP マネージド コネクタのみ使用できます。 一方、Standard ロジック アプリ ワークフローでは、FTP マネージド コネクタ "および" FTP 組み込みコネクタを使用できます。 Standard ロジック アプリ ワークフローでは、マネージド コネクタも Azure コネクタとしてラベルが付けられます。

FTP マネージド コネクタと組み込みコネクタでは、それぞれ 1 つのトリガーのみ使用できます。

  • マネージド コネクタ トリガー: [ファイルが追加または変更されたとき (プロパティのみ)] という名前の FTP トリガーは、FTP サーバーで 1 つ以上のファイルがフォルダーに追加されたとき、または変更されたときに、従量課金プランまたは Standard ロジック アプリ ワークフローを実行します。 このトリガーでは、ファイルの内容ではなく、ファイルのプロパティまたはメタデータのみが取得されます。 ただし、ファイルの内容を取得するために、ワークフローで、このトリガーの後に他の FTP アクションを実行できます。

    このトリガーについて詳しくは、「ファイルが追加または変更されたとき (プロパティのみ)」を参照してください。

  • 組み込みコネクタ トリガー: [ファイルが追加または更新されたとき]という名前の FTP トリガーは、FTP サーバーで 1 つ以上のファイルがフォルダーに追加されたとき、または変更されたときに、Standard ロジック アプリ ワークフローを実行します。 このトリガーでは、ファイルの内容ではなく、ファイルのプロパティまたはメタデータのみが取得されます。 ただし、内容を取得するために、ワークフローで、このトリガーの後に他の FTP アクションを実行できます。 このトリガーについて詳しくは、「ファイルが追加または更新されたとき」を参照してください。

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

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

  2. デザイナーで、検索ボックスの下の [Standard] を選択します。 検索ボックスに「ftp」と入力します。

  3. トリガーの一覧から、[ファイルが追加または変更されたとき (プロパティのみ)] という名前のトリガーを選択します。

    Screenshot shows Azure portal, Consumption workflow designer, and FTP trigger selected.

  4. 接続に関する情報を指定します。 完了したら [作成] を選択します。

    Note

    既定では、このコネクタからファイルがテキスト形式で転送されます。 たとえば、エンコードが使用される状況で、バイナリ形式でファイルを転送するには、[バイナリ転送] オプションを選択します。

    Screenshot shows Consumption workflow designer and FTP connection profile.

  5. トリガー情報ボックスが表示されたら、新しいファイルまたは編集されたファイルを監視する対象のフォルダーを見つけます。

    1. [フォルダー] ボックスで、フォルダー アイコンを選択してフォルダー ディレクトリを表示します。

    2. 右矢印 (>) を選択します。 目的のフォルダーを参照し、そのフォルダーを選択します。

    Screenshot shows Consumption workflow designer, FTP trigger, and

    選択されたフォルダーが [フォルダー] ボックスに表示されます。

    Screenshot shows Consumption workflow designer, FTP trigger, and

  6. 完了したら、ワークフローを保存します。

ワークフローを保存すると、この手順により、デプロイされたロジック アプリ (Azure に公開されている) に更新プログラムが自動的に発行されます。 トリガーのみの場合、ワークフローでは、指定したスケジュールに基づいて FTP サーバーのチェックのみ行われます。 トリガーに応答し、トリガーの出力を使用して何か実行するアクションを追加する必要があります。

FTP アクションを追加する

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

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

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

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

FTP アクションを使用する前に、ワークフローがトリガーによって既に開始されている必要があります。トリガーは、任意の種類のものを選択できます。 たとえば、汎用の [繰り返し] 組み込みトリガーを使用して、特定のスケジュールに基づきワークフローを開始できます。

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

  2. 使用する FTP アクションを見つけて選択します。

    この例では、1 つの配列項目のメタデータを取得できるようにするために、[ファイルのメタデータの取得] という名前のアクションを引き続き使用します。

    1. デザイナーで、トリガーまたはその他のアクションの下にある [新しいステップ] を選択します。

    2. [操作を選択してください] の検索ボックスで、[Standard] を選択します。

    3. 検索ボックスに「ftp get file metadata (ftp、ファイルのメタデータの取得)」と入力します。

    4. アクションの一覧で、[ファイルのメタデータの取得] という名前のアクションを選択します。

    Screenshot shows the Azure portal, Consumption workflow designer, search box with

  3. 必要に応じて、接続に関する情報を指定します。 完了したら [作成] を選択します。

    Note

    既定では、このコネクタからファイルがテキスト形式で転送されます。 たとえば、エンコードが使用される状況で、バイナリ形式でファイルを転送するには、[バイナリ転送] オプションを選択します。

    Screenshot shows Consumption workflow designer and FTP connection profile for an action.

  4. [ファイルのメタデータの取得] アクション情報ボックスが表示されたら、[ファイル] ボックスの内部をクリックして動的なコンテンツの一覧を開きます。

    これで、前のトリガーからの出力を選択できます。

  5. 動的なコンテンツの一覧で、[ファイルが追加または変更されたとき] の下にある [List of Files Id] (ファイル ID の一覧) を選択します。

    Screenshot shows Consumption workflow designer,

    これで、[ファイル] プロパティでは、[List of Files Id] (ファイル ID の一覧) トリガーの出力が参照されます。

  6. デザイナーで、[ファイルのメタデータの取得] アクションの下にある [新しいステップ] を選択します。

  7. [操作を選択してください] の検索ボックスで、[Standard] を選択します。

  8. 検索ボックスに「ftp get file content (ftp、ファイルの内容の取得)」と入力します。

  9. アクションの一覧で、[ファイルの内容の取得] という名前のアクションを選択します。

    Screenshot shows the Azure portal, Consumption workflow designer, search box with

  10. [ファイルの内容の取得] アクション情報ボックスが表示されたら、[ファイル] ボックスの内部をクリックして動的なコンテンツの一覧を開きます。

    これで、前のトリガーからの出力と他のアクションを選択できます。

  11. 動的なコンテンツの一覧で、[ファイルのメタデータの取得] の下にある [ID] を選択します。これは、追加または更新されたファイルを参照します。

    Screenshot shows Consumption workflow designer,

    これで、[ファイル] プロパティで [ID] アクションの出力が参照されます。

    Screenshot shows Consumption workflow designer,

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

ワークフローのテスト

ワークフローによって目的の内容が返されるか確認するために、追加または更新されたファイルの内容を自分に送信する別のアクションを追加します。 この例では、[メールの送信] という名前の Office 365 Outlook アクションを使用します。

  1. [ファイルの内容の取得] アクションの下に、[メールの送信] という名前の Office 365 Outlook アクションを追加します。 Outlook.com アカウントがある場合、代わりに Outlook.com の [メールの送信] アクションを追加し、それに応じて次の手順を調整してください。

    1. デザイナーで、[ファイルの内容の取得] アクションの下にある [新しいステップ] を選択します。

    2. [操作を選択してください] の検索ボックスで、[Standard] を選択します。

    3. 検索ボックスに「office 365 outlook send an email (office 365 outlook、メールの送信)」と入力します。 アクションの一覧で、[メールの送信] という名前の Office 365 Outlook アクションを選択します。

    Screenshot shows Consumption workflow designer and

  2. 必要に応じて、メール アカウントにサインインします。

  3. アクション情報ボックスで、必要な値を指定し、テストするその他のパラメーターまたはプロパティを追加します。

    たとえば、[ファイルの内容の取得] アクションから [ファイルのコンテンツ] の出力を追加できます。 この出力を見つけるには、次の手順に従います。

    1. [ファイルの内容の取得] アクションで、[本体] ボックスの内部をクリックして動的なコンテンツの一覧を開きます。

    2. 動的なコンテンツの一覧で、[ファイルの内容の取得] の横にある [詳細を表示] を選択します。

      Screenshot shows Consumption workflow designer,

    3. 動的なコンテンツの一覧で、[ファイルの内容の取得] の下にある [ファイルのコンテンツ] を選択します。

      これで、[本体] プロパティで [ファイルのコンテンツ] アクションの出力を参照できます。

      Screenshot shows Consumption workflow designer,

  4. ロジック アプリ ワークフローを保存します。

  5. ワークフローを実行してトリガーするために、[トリガーの実行]>[実行] を選択します。 ワークフローによって監視される FTP フォルダーにファイルを追加します。

FTP 組み込みコネクタによる操作

FTP 組み込みコネクタは、Standard ロジック アプリ ワークフローでのみ使用でき、次の操作を行います。

トリガー 説明
ファイルが追加または更新されたとき ファイルが FTP サーバー上の指定したフォルダーに追加されたとき、または更新されたときに、ロジック アプリ ワークフローを開始します。

: このトリガーでは、ファイルの内容ではなく、ファイルのメタデータまたはプロパティのみが取得されます。 ただし、内容を取得するために、ワークフローで、このトリガーの後に [ファイルの内容の取得] アクションを実行できます。

アクション 説明
ファイルを作成する 指定したファイル パスとファイルの内容を使用してファイルを作成します。
ファイルを削除する 指定したファイル パスを使用してファイルを削除します。
ファイル コンテンツの取得 指定したファイル パスを使用して、ファイルの内容を取得します。
ファイルのメタデータを取得する 指定したファイル パスを使用して、ファイルのメタデータまたはプロパティを取得します。
[List files and subfolders in a folder] (フォルダー内のファイルとサブフォルダーを一覧表示する) 指定したフォルダー内のファイルとサブフォルダーの一覧を取得します。
ファイルを更新する 指定したファイル パスとファイルの内容を使用してファイルを更新します。

ファイルが追加または更新されたとき

操作 ID: whenFtpFilesAreAddedOrModified

このトリガーは、ファイルが FTP サーバー上の指定したフォルダーに追加されたとき、または更新されたときに、ロジック アプリ ワークフローの実行を開始します。 このトリガーでは、ファイルの内容ではなく、ファイルのメタデータまたはプロパティのみが取得されます。 ただし、内容を取得するために、ワークフローで、このトリガーの後に [ファイルの内容の取得] アクションを実行できます。

パラメーター

名前 Key Required タイプ 説明
フォルダー パス folderPath 正しい string ルート ディレクトリーからのフォルダーの相対パス。
[Number of files to return] (返すファイルの数) maxFileCount いいえ integer 1 回のトリガー実行で返すファイルの最大数。 有効な値の範囲は 1 から 100 です。

: 既定では、[Split On] (分割) 設定が有効になっており、このトリガーによって、個々のファイルが並列に処理されます。
[Cutoff timestamp to ignore older files] (古いファイルを無視するためのカットオフ タイムスタンプ) oldFileCutOffTimestamp いいえ dateTime 古いファイルを無視するために使用するカットオフ時間。 YYYY-MM-DDTHH:MM:SS という形式のタイムスタンプを使用します。 この機能を無効にするには、このプロパティを空のままにします。

返品

トリガーの [Split On] (分割) 設定が有効になっている場合、トリガーによって、一度に 1 つのファイルのメタデータまたはプロパティが返されます。 それ以外の場合、トリガーによって、各ファイルのメタデータを含む配列が返されます。

名前 Type
ファイルの一覧 BlobMetadata

ファイルを作成する

操作 ID: createFile

このアクションにより、指定したファイル パスとファイルの内容を使用してファイルが作成されます。 ファイルが既に存在する場合、このアクションによってそのファイルが上書きされます。

重要

同じワークフロー内でファイルを作成した直後に、FTP サーバーでそのファイルを削除または名前変更すると、HTTP 404 エラーが返されます。これは仕様です。 この問題を回避するには、新しく作成されたファイルを削除または名前変更する前に 1 分間の遅延時間を含めます。 [遅延] アクションを使用することで、ワークフローにこの遅延時間を追加できます。

パラメーター

名前 Key Required タイプ 説明
ファイル パス filePath 正しい string ルート ディレクトリからのファイルの相対パス (ファイル名拡張子がある場合は含める)。
ファイル コンテンツ fileContent 正しい string ファイルの内容。

返品

このアクションでは、Body という名前の BlobMetadata オブジェクトが返されます。

名前 Type
[File metadata File name] (ファイル メタデータのファイル名) string
[File metadata File path] (ファイル メタデータのファイル パス) string
[File metadata File size] (ファイル メタデータのファイル サイズ) string
ファイル メタデータ BlobMetadata

ファイルを削除する

操作 ID: deleteFtpFile

このアクションにより、指定したファイル パスを使用してファイルが削除されます。

パラメーター

名前 Key Required タイプ 説明
ファイル パス filePath 正しい string ルート ディレクトリからのファイルの相対パス (ファイル名拡張子がある場合は含める)。

戻り値

なし

ファイル コンテンツの取得

操作 ID: getFtpFileContent

このアクションにより、指定したファイル パスを使用してファイルの内容が取得されます。

パラメーター

名前 Key Required タイプ 説明
ファイル パス path 正しい string ルート ディレクトリからのファイルの相対パス (ファイル名拡張子がある場合は含める)。

返品

このアクションにより、File content という名前のバイナリ値としてファイルの内容が返されます。

名前 Type
ファイル コンテンツ バイナリ

ファイルのメタデータを取得する

操作 ID: getFileMetadata

このアクションにより、指定したファイル パスを使用して、ファイルのメタデータまたはプロパティが取得されます。

パラメーター

名前 Key Required タイプ 説明
ファイル パス path 正しい string ルート ディレクトリからのファイルの相対パス (ファイル名拡張子がある場合は含める)。

返品

このアクションにより、次の出力が返されます。

名前 Type
[ファイル名] string
ファイル パス string
ファイル サイズ string
最終更新日時 string
ファイル メタデータ BlobMetadata

[List files and subfolders in a folder] (フォルダー内のファイルとサブフォルダーを一覧表示する)

操作 ID: listFilesInFolder

このアクションでは、指定したフォルダー内のファイルとサブフォルダーの一覧が取得されます。

パラメーター

名前 Key Required タイプ 説明
フォルダー パス folderPath 正しい string ルート ディレクトリーからのフォルダーの相対パス。
ファイル コンテンツ fileContent 正しい string ファイルの内容

返品

このアクションでは、BlobMetadata オブジェクトを格納する Response という名前の配列が返されます。

名前 Type
回答 BlobMetadata オブジェクトを含む配列

ファイルを更新する

操作 ID: updateFile

このアクションにより、指定したファイル パスとファイルの内容を使用してファイルが更新されます。

重要

同じワークフロー内でファイルを作成した直後に、FTP サーバーでそのファイルを削除または名前変更すると、HTTP 404 エラーが返されます。これは仕様です。 この問題を回避するには、新しく作成されたファイルを削除または名前変更する前に 1 分間の遅延時間を含めます。 [遅延] アクションを使用することで、ワークフローにこの遅延時間を追加できます。

パラメーター

名前 Key Required タイプ 説明
ファイル パス filePath 正しい string ルート ディレクトリからのファイルの相対パス (ファイル名拡張子がある場合は含める)。
ファイル コンテンツ fileContent 正しい string ファイルの内容

返品

このアクションでは、Body という名前の BlobMetadata オブジェクトが返されます。

名前 Type
本文 BlobMetadata

次のステップ