2017-06-28 3 views
0

私の質問で直接開始します:データ管理ゲートウェイ経由のAzureデータ工場カスタムアクティビティでPremiseデータセットに接続することは可能ですか?データ工場カスタムアクティビティ、ゲートウェイ経由でonPremiseデータソースに接続

ユースケース:

私はAzureブロブストレージにregularyコピーする必要があり、その上に複数のファイルと、ローカルFTPサーバーを持っています。ファイルをアップロードする必要があるかどうかの判断は、カスタムトリガーに基づいている必要があります。したがって、通常のコピーアクティビティではなく、データファクトリのカスタムアクティビティを構築しています。サーバーはデータ管理ゲートウェイ経由でのみアクセスする必要があります

FTPサーバー型のリンクサービスとFileShareデータセットを作成しました。これは私のCustomActivityパイプラインの内部でInputとして使用しました。

カスタムアクティビティの中で、入力データセットに接続して、FTPサーバー内のフォルダの内容を取得する必要があります。そしてここで私は前進していません。 ftpサーバに接続する方法がわかりません。

public IDictionary<string, string> Execute(IEnumerable<LinkedService> linkedServices,IEnumerable<Dataset> datasets, 
              Activity activity,IActivityLogger logger) 
{ 
    Dataset inputDataset = datasets.Single(dataset => dataset.Name == activity.Inputs.Single().Name); 

    FileShareDataset inputTypeProperties = inputDataset.Properties.TypeProperties as FileShareDataset; 

    FtpServerLinkedService inputLinkedService = linkedServices.First(linkedService => 
    linkedService.Name == 
    inputDataset.Properties.LinkedServiceName).Properties.TypeProperties 
    as FtpServerLinkedService; 


    ***//HERE CONNECTION TO FTPSERVER VIA GATEWAY*** 
} 

Microsoft.Azure.Management.DataFactories.Modelsで複数のゲートウェイのクラスがありますが、私は彼らと一緒に仕事をする方法を見つけるcan't:ここで私がで立ち往生していたコード要素です。私にとっては、データ管理ゲートウェイがカスタムアクティビティでサポートされていない可能性がありますか?それが正しい場合は、カスタムアクティビティやそのようなものの中にコピーアクティビティを作成するなど、いくつかの方法がありますか?または、WebRequest経由でFTPサーバーに直接接続する唯一のソリューションですか?

答えて

0

は答えを直接起動するには:には:-)

あなたは持っているだろう問題は、カスタムアクティビティコードが実行されるコンテキストではありません。いくつかの作業を行うためにクラスを作成したら、コンパイルされたDLLはブロブストレージに格納されます(そして圧縮されます)。 ADFは、他のAzureサービスを呼び出すためのオーケストレーションツールであり、独自のコンピューティングはありません。したがってAzureバッチサービスは、BLOBストレージからDLLを取り出してコードを実行するように指示します。つまり、アプリケーションは実際にはバッチサービスの計算プール内の仮想マシン上で実行されます。その結果、実行は基本的にADFから切断され、データ管理ゲートウェイ(DMG)などのことは認識されません。

これは、カスタムアクティビティがADFリンクサービス(上記のコード)の設定の値を調べて使用できるため、ここでの混乱を理解しています。 DMGではありません。あなたが本当に望むのは、カスタムアクティビティクラスが、プログラム(バッチサービスVM)とローカルネットワークとの間にVPN接続を確立し、トンネル経由でコードを実行することです。再度、ADFから切断されました。もちろんこれはAzure内で許可されません。標準的なVMと仮想プライベートネットワークのためのVPNを設定することは十分です!

だから、どうしたらいいですか?私の提案は、DMGで通常のADFコピーアクティビティを使用して、すべてをBLOBストレージに格納することです。あなたのINフォルダと呼んでください。一度、2番目のADFパイプラインがあり、カスタム・アクティビティを使用してデータを検査/ソートします。あなたのCLEANフォルダと呼んでください。最後にそれを下流のサービスに渡します。

または、FTPサイトに直接アクセスするカスタムアクティビティを取得し、DMGでデータフローを希釈しないでください。

これが役に立ちます。

+0

ご回答いただきありがとうございます。それはたくさんの助けになりました。残念ながら、ITセキュリティの問題のため、あなたの提案された解決策のどれも許可されることはありません。ファイルをローカルにアップロードする意思決定全体を処理し、アップロードするファイルのみが含まれるフォルダにデータ・ファクトリがアクセスできるようにします。 – Torben