Auslöser

Azure Cosmos DB ist eine global verteilte multimodellbasierte Datenbank, die die Dokument-, Graph- und Schlüsselwertdatenmodelle unterstützt. Der Inhalt in diesem Abschnitt dient zum Verwalten von Triggerressourcen mithilfe der SQL-API über REST.

Trigger sind Anwendungslogiken, die vor (Vorabauslösern) und nach der Erstellung, Löschung und Ersetzung eines Dokuments ausgeführt werden können. Trigger werden in JavaScript geschrieben. Pre- und Post-Trigger akzeptieren keine Parameter. Ähnlich wie gespeicherte Prozeduren unterliegen Trigger der Einschränkung einer Auflistung. Sie schränken die Anwendungslogik daher auf die Auflistung ein.

Ähnlich wie gespeicherte Prozeduren hat die Triggerressource ein festes Schema. Die Texteigenschaft enthält die Anwendungslogik. Das folgende Beispiel zeigt das JSON-Konstrukt eines Triggers:

{  
"id":"PostTrigger-UpdateMetaAll",  
"body": "  
function updateMetadata() {  
        var context = getContext();  
        var collection = context.getCollection();  
        var response = context.getResponse();  
        var createdDocument = response.getBody();  
  
        // query for metadata document  
        var filterQuery = 'SELECT * FROM root r WHERE r.id = "_metadata"';  
        var accept = collection.queryDocuments(collection.getSelfLink(), filterQuery,  
            updateMetadataCallback);  
        if(!accept) throw "Unable to update metadata, abort";  
  
        function updateMetadataCallback(err, documents, responseOptions) {  
            if(err) throw new Error("Error" + err.message);  
                     if(documents.length != 1) throw 'Unable to find metadata document';  
                     var metadataDocument = documents[0];  
  
                     // update metadata  
                     metadataDocument.createdDocuments += 1;  
                     metadataDocument.createdNames += " " + createdDocument.id;  
                     var accept = collection.replaceDocument(metadataDocument._self,  
                           metadataDocument, function(err, docReplaced) {  
                                  if(err) throw "Unable to update metadata, abort";  
                           });  
                     if(!accept) throw "Unable to update metadata, abort";  
                     return;                      
        }  
}  
",  
"_rid":"hLEEAI1YjgcBAAAAAAAAgA==",  
"_ts":1408058682,  
"_self":"dbs\/hLEEAA==\/colls\/hLEEAI1Yjgc=\/udfs\/hLEEAI1YjgcBAAAAAAAAgA==\/",  
"_etag":"00004100-0000-0000-0000-53ed453a0000"  
}  
  
Eigenschaft BESCHREIBUNG
id Erforderlich. Es handelt sich um eine benutzerdefinierte Eigenschaft. Es handelt sich um einen eindeutigen Namen, um den Trigger zu identifizieren. Die ID darf 255 Zeichen nicht überschreiten.
body Erforderlich. Es handelt sich um eine benutzerdefinierte Eigenschaft. Es ist der Körper des Triggers.
triggerOperation Erforderlich. Es ist der Typ des Vorgangs, der den Trigger aufruft. Die zulässigen Werte sind: Alle, Einfügen, Ersetzen und Löschen.
triggerType Erforderlich. Dies gibt an, wann der Trigger ausgelöst wird. Die zulässigen Werte sind: Pre und Post. Vor dem Auslösen eines Vorgangs wird vor einem Vorgang ausgelöst, während Post nach einem Vorgang ausgelöst wird.
_rid Es handelt sich um eine systemgenerierte Eigenschaft. Die Ressourcen-ID (_rid) ist ein eindeutiger Bezeichner, der auch hierarchisch pro Ressourcenstapel im Ressourcenmodell ist. Sie wird intern für die Platzierung und Navigation der Triggerressource verwendet.
_ts Es handelt sich um eine systemgenerierte Eigenschaft. Sie gibt den zuletzt aktualisierten Zeitstempel der Ressource an. Der Wert ist ein Zeitstempel.
_self Es handelt sich um eine systemgenerierte Eigenschaft. Es handelt sich um den eindeutig adressierbaren URI für die Ressource.
_etag Es handelt sich um eine systemgenerierte Eigenschaft, die das Ressourcen-Etag angibt, das für die optimistische Übereinstimmungssteuerung erforderlich ist.

Aufgaben

Sie können folgendes mit Triggern ausführen:

Informationen dazu, wie UDFs funktionieren, einschließlich des Aufrufens eines Triggers, finden Sie unter Azure Cosmos DB-Programmierung: Gespeicherte Prozeduren, Trigger und UDFs.

Weitere Informationen