Azure Logic Apps でワークフローから SFTP ファイル サーバーに接続する
適用対象: Azure Logic Apps (従量課金プラン + Standard)
この攻略ガイドでは、Azure Logic Apps でワークフローから SSH ファイル転送プロトコル (SFTP) サーバーにアクセスする方法について説明します。 SFTP は、任意の信頼性の高いデータ ストリームを通して、ファイル アクセス、ファイル転送、およびファイル管理を提供するネットワーク プロトコルであり、Secure Shell (SSH) プロトコルを使います。
従量課金ロジック アプリ ワークフローの場合、SFTP-SSH "マネージド" コネクタを使用できます。一方、Standard ロジック アプリ ワークフローの場合、SFTP 組み込みコネクタまたは SFTP-SSH マネージド コネクタを使用できます。 これらのコネクタ操作を使って、SFTP サーバーまたは他のシステムのイベントでトリガーされたときに実行される自動ワークフローを作成し、SFTP サーバー上のファイルを管理するアクションを実行することができます。 マネージド コネクタと組み込みのコネクタの両方が SSH プロトコルを使います。
Note
SFTP "マネージド" コネクタ は非推奨となったため、このコネクタの操作はワークフロー デザイナーに表示されなくなります。
たとえば、SFTP サーバーでイベントを監視して応答する SFTP トリガーによってワークフローを開始できます。 トリガーにより、ワークフロー内の後続のアクションで出力を使用できるようになります。 ワークフローを使うと、SFTP サーバー アカウントを介してファイルを取得、作成、管理する SFTP アクションを実行できます。 他のタスク例を次の一覧に示します。
- ファイルの追加または変更を監視します。
- ファイルの取得、作成、コピー、名前変更、更新、一覧、および削除を行います。
- フォルダーを作成します。
- ファイルの内容とメタデータを取得します。
- アーカイブをフォルダーに抽出します。
次の手順では Azure portal を使用しますが、適切な Azure Logic Apps 拡張機能があれば、次のツールを使用してロジック アプリ ワークフローを作成および編集することもできます。
従量課金プラン ロジック アプリ ワークフロー: Visual Studio または Visual Studio Code
Standard ロジック アプリ ワークフロー: Visual Studio Code
コネクタに関するテクニカル リファレンス
SFTP コネクタには、ロジック アプリの種類とホスト環境に基づいてさまざまなバージョンがあります。
ロジック アプリの種類 (プラン) | 環境 | コネクタのバージョン |
---|---|---|
従量課金プラン | マルチテナント Azure Logic Apps | デザイナーの [Standard] ラベルの下に表示される、マネージド コネクタ。 詳細については、次のドキュメントを確認してください。 - SFTP-SSH マネージド コネクタのリファレンス - Azure Logic Apps のマネージド コネクタ |
従量課金プラン | 統合サービス環境 (ISE) | デザイナーの [Standard] ラベルの下に表示されるマネージド コネクタと、デザイナーの [ISE] ラベルと共に表示され、マネージド コネクタとはメッセージ制限が異なる ISE バージョン。 詳細については、次のドキュメントを確認してください。 - SFTP-SSH マネージド コネクタのリファレンス - ISE メッセージの制限 - Azure Logic Apps のマネージド コネクタ |
Standard | シングルテナント Azure Logic Apps と App Service Environment v3 (Windows プランのみ) | マネージド コネクタはコネクタ ギャラリーの [ランタイム]>[共有] に表示されます。組み込みコネクタはコネクタ ギャラリーの [ランタイム]>[アプリ内] に表示され、 サービス プロバイダーベースです。 組み込みコネクタを使用すると、オンプレミス データ ゲートウェイなしで接続文字列を使用して SFTP サーバーに直接接続し、Azure 仮想ネットワークにアクセスできます。 詳細については、次のドキュメントを確認してください。 - SFTP-SSH マネージド コネクタのリファレンス - SFTP 組み込みコネクタのリファレンス - Azure Logic Apps のマネージド コネクタ - Azure Logic Apps の組み込みコネクタ |
一般的な制限事項
SFTP-SSH マネージド コネクタを使う前に、「SFTP-SSH マネージド コネクタのリファレンス」に記載されている既知の問題と制限事項を確認してください。
SFTP 組み込みコネクタを使う前に、「SFTP 組み込みコネクタのリファレンス」に記載されている既知の問題と制限事項を確認してください。
既知の問題
既定では、配列を返すトリガーには [Split On] (分割) 設定があり、既に有効になっています。 この設定が有効になっている場合、トリガーは、各配列項目を処理する個別のワークフロー インスタンスを内部で作成することで、配列を自動的に "分割" します。 配列項目が同時に処理されるように、すべてのワークフロー インスタンスが並列して実行されます。
ただし、[Split On] (分割) 設定が有効になっている場合、"マネージド" コネクタ トリガーは、すべての配列項目の出力をリストとして返します。 これらの出力を参照する後続のアクションは、最初にこれらの出力をリストとして処理する必要があります。 各配列項目を個別に処理するために、アクションを追加できます。 たとえば、これらの配列項目を反復処理するために、For each ループを使用できます。 メタデータまたはプロパティのみを返すトリガーの場合、最初に配列項目のメタデータを取得するアクションを使用し、次に、項目の内容を取得するアクションを使用します。
この方法は、"マネージド" コネクタ トリガーにのみ適用する必要があります。[Split On] (分割) 設定が有効になっているときに、一度に 1 つの配列項目の出力を返す組み込みコネクタ トリガーには適用しないでください。
たとえば、[ファイルが追加または変更されたとき (プロパティのみ)] という名前のマネージド コネクタ トリガーがあるとします。このトリガーは、新しいファイルまたは更新されたファイルのメタデータまたはプロパティを配列として返します。 各ファイルのメタデータを個別に取得するために、配列を反復処理する For each ループを使用できます。 このループでは、次のマネージド コネクタ アクションを指定されている順序で使用します。
各ファイルのメタデータを取得するための [ファイルのメタデータの取得]。
各ファイルの内容を取得するための [ファイルの内容の取得] アクション。
チャンク
SFTP-SSH マネージド コネクタで既定のサイズ制限を超える大きなファイルを処理する方法の詳細については、SFTP-SSH マネージド コネクタのリファレンス - 「チャンク」を参照してください。
前提条件
Azure アカウントとサブスクリプション。 Azure サブスクリプションがない場合は、無料の Azure アカウントにサインアップしてください。
サーバー アドレス、アカウントの資格情報、SSH 秘密キーへのアクセス、SSH 秘密キーのパスワードなど、SFTP サーバーにアクセスするための接続と認証の情報。 詳細については、SFTP-SSH マネージド コネクタのリファレンス - 「認証とアクセス許可」を参照してください。
重要
接続を作成し、SSH 秘密キーを [SSH 秘密キー] プロパティに入力するときは、完全で正しい値をこのプロパティに指定するための手順に必ず従ってください。 そうしないと、有効でないキーは接続に失敗します。
SFTP アカウントにアクセスするロジック アプリ ワークフロー。 SFTP-SSH トリガーから開始するには、空のワークフローから開始する必要があります。 SFTP-SSH アクションを使うには、別のトリガー ([繰り返し] トリガーなど) でワークフローを開始します。
SFTP トリガーを追加する
Azure portal で、空のワークフローを含む従量課金ロジック アプリをデザイナーで開きます。
プロンプトが表示されたら、必要な接続情報を入力します。 完了したら [作成] を選択します。
トリガー情報ボックスが表示されたら、選んだトリガーに必要な詳細を入力します。 詳細については、SFTP-SSH マネージド コネクタの「トリガー」のリファレンスを参照してください。
完了したら、ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。
ワークフローを保存すると、この手順により、デプロイされたロジック アプリ (Azure に公開されている) に更新プログラムが自動的に発行されます。 トリガーのみの場合、ワークフローでは、指定したスケジュールに基づいて FTP サーバーのチェックのみ行われます。 トリガーに応答し、トリガーの出力を使用して何か実行するアクションを追加する必要があります。
たとえば、[ファイルが追加または変更されたとき] というトリガーによって、SFTP サーバー上のファイルが追加または変更されたときにワークフローが開始されます。 後続のアクションとして、ファイル コンテンツが指定した条件を満たしているかどうかを確認する条件を追加できます。 内容が条件を満たす場合、[ファイル コンテンツの取得] というアクションを使ってファイル コンテンツを取得し、別のアクションを使ってそのファイル コンテンツを SFTP サーバー上の別のフォルダーに配置します。
SFTP アクションを追加する
SFTP アクションを使う前に、ワークフローがトリガーによって既に開始されている必要があります。トリガーは、任意の種類のものを選択できます。 たとえば、汎用の [繰り返し] 組み込みトリガーを使用して、特定のスケジュールに基づきワークフローを開始できます。
Azure portal で、ワークフローを含む従量課金ロジック アプリをデザイナーで開きます。
プロンプトが表示されたら、必要な接続情報を入力します。 完了したら [作成] を選択します。
アクション情報ボックスが表示されたら、選んだアクションに必要な詳細を入力します。 詳細については、SFTP-SSH マネージド コネクタの「アクション」のリファレンスを参照してください。
完了したら、ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。
たとえば、[パスによるファイル コンテンツの取得] というアクションを使うと、ファイルのパスを指定して SFTP サーバー上のファイルからコンテンツを取得できます。 前の例のトリガーと、ファイル コンテンツが満たす必要がある条件を使用できます。 条件が true の場合、後続のアクションでコンテンツを取得できます。
トラブルシューティング
詳しくは、次のドキュメントをご覧ください。