2017-09-05 21 views
0

azureパイプラインでcosmos db triggerを起動することはできますか?パイプラインはazrueストレージからcosmos dbコレクションにデータをコピーするだけであり、preトリガーを呼び出す必要があります。コピーアクティビティのトリガIDを指定する方法は?Azure cosmos db trigger

+0

あなたはAzureの機能を使用しています:

{ "disabled": false, "bindings": [ { "name": "myBlob", "type": "blobTrigger", "direction": "in", "path": "<name-of-the-folder-where-files-get-uploaded>", "connection":"MyStorageAccount" }, { "name": "documentToSave", "type": "documentDB", "databaseName": "MyDatabase", "collectionName": "MyCollection", "createIfNotExists": true, "connection": "MyAccount_COSMOSDB", "direction": "out" } ] } 

そして、関数本体のようなものだろうか?どのような種類のイベントをパイプラインで使用しているのか、あるいは計画しているのかを記述できますか? Azure Storageと言うと、Blobsを意味しますか?キュー?テーブル? –

+0

@MatiasQuaranta、Azure Storageについて言えば、私はBlobを意味します。私のパイプラインはデータセット形式のBLOBをcosmos dbにコピーするだけです。そして、私はどのようにNode.jsのdocumentdbクライアントAPIのフォームのようなトリガーを呼び出すかを知っています。しかし、私はパイプラインでそれを行う必要があります。 –

+0

もし私が正しく理解すれば、BlobがAzure Storageにアップロードされたときに、Cosmos DBにデータを保存したいのですか?そして、あなたが保存したい情報は、Blobのコンテンツか、そのプロパティのいくつかですか? –

答えて

0

あなたが言っていることは、Blob TriggerDocumentDB output bindingのAzure関数を使用して解決するかもしれません。似functions.json

// Blob trigger binding to a CloudBlockBlob 
#r "Microsoft.WindowsAzure.Storage" 

using Microsoft.WindowsAzure.Storage.Blob; 

public static void Run(CloudBlockBlob myBlob, out object documentToSave, TraceWriter log) 
{ 
    // some logic to read the blob and parse it 

    documentToSave = new { 
     id = "some value", 
     .. other properties here 
     }; 
} 
+0

あなたの明確な説明をありがとうございます。しかし、コピーパイプラインの開始時には、cosmos db pre-triggerを呼び出す必要があります。すべてのコピーでは、blobドキュメントがcdbコレクションに存在するかどうかをチェックし、trueの場合はそれを置き換える必要があります。これはcdb pre-triggerビジネスロジックです。ブロブのトリガーで私の問題は解決されません。 –

+0

文書を変更/アップロードすると、ブロブトリガが起動します。 DocumentDB出力バインディングは、ドキュメントを保存または更新します。ドキュメントの 'id'プロパティが正しく設定されていることを確認する必要があります(おそらく、名前のようなドキュメント自体に関連するもの)。 –

+0

既存のjsonをcosmos dbコレクションにコピーしようとしているときにエラーが発生しました。上記のcosmos db pre-triggerを使用してこれを修正したいと考えています。 –

関連する問題