Ich versuche, einen Trigger auf eine Sammlung zu setzen, und es scheint nicht zu stolpern. Der Trigger ist mit dem Azure-Portal vorbereitet. Ich habe versucht, spezifische Logik - aber am Ende nur ein Beispiel auf der Azure Site platziert. Die Triggerlogik ist die folgende:Azure Cosmos/Document DB Trigger
var context = getContext();
var request = context.getRequest();
// document to be created in the current operation
var documentToCreate = request.getBody();
// validate properties
if (!("timestamp" in documentToCreate))
{
var ts = new Date();
documentToCreate["my timestamp"] = ts.getTime();
}
// update the document that will be created
request.setBody(documentToCreate);
Der Trigger funktioniert nicht. Es scheinen keine Fehler zu entstehen und ich bin mir nicht sicher, was passiert.
Hinweis: Der Trigger ist ein Pre-Crate-Trigger. Und für die Trigger-Logik, die ich aufgelistet habe, erstelle ich kein Dokument mit einer "my timestamp" -Eigenschaft. Ich habe auch andere Szenarien entlang des gleichen Konzepts getestet, wo ich dem erstellten Dokument ein Attribut hinzufügen möchte.
Wie genau werden von einer Operation ausgelöst? Und können sie nur aus Code ausgelöst werden? Können sie vom Azure-Portal gestolpert werden? – Peter
Für das node.js-SDK geben Sie es in den Anforderungsoptionen einer beliebigen Operation an (z. B. "upsertDocument()"): http://azure.github.io/azure-documentdb-node/global.html#RequestOptions . Ich vermute etwas ähnliches für die anderen SDKs. –
Soweit ich weiß, wie Larry Maccherone erwähnt, müssen wir explizit den Trigger in der Operation angeben, um den Trigger zu aktivieren. Momentan scheint es, dass es vom Azure-Portal nicht unterstützt wird. Ich finde auch einen anderen smilar [SO-Thread] (https://stackoverflow.com/questions/32647843/trigger-in-documentdb-not-fired). –