Wyzwalacze

Usługa Azure Cosmos DB to globalnie rozproszona wielomodelowa baza danych, która obsługuje modele danych dokumentów, grafów i klucz-wartość. Zawartość w tej sekcji służy do zarządzania zasobami wyzwalaczy przy użyciu interfejsu API SQL za pośrednictwem interfejsu REST.

Wyzwalacze to elementy logiki aplikacji, które można wykonać przed (wyzwalacze wstępne) i po (wyzwalaczach po wyzwoleniu) tworzenia, usuwania i zastępowania dokumentu. Wyzwalacze są zapisywane w języku JavaScript. Wyzwalacze wstępne i post nie przyjmują parametrów. Podobnie jak procedury składowane, wyzwalacze działają w granicach kolekcji, co ogranicza logikę aplikacji do kolekcji.

Podobnie jak procedury składowane, zasób wyzwalaczy ma stały schemat. Właściwość body zawiera logikę aplikacji. Poniższy przykład ilustruje konstrukcję JSON wyzwalacza.

{  
"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"  
}  
  
Właściwość Opis
id Wymagane. Jest to właściwość ustawiana przez użytkownika. Jest to unikatowa nazwa używana do identyfikowania wyzwalacza. Identyfikator nie może przekraczać 255 znaków.
Ciała Wymagane. Jest to właściwość ustawiana przez użytkownika. Jest to treść wyzwalacza.
triggerOperation Wymagane. Jest to typ operacji, która wywołuje wyzwalacz. Dopuszczalne wartości to: Wszystkie, Wstaw, Zastąp i Usuń.
triggerType Wymagane. Określa to, kiedy wyzwalacz zostanie wyzwolony. Dopuszczalne wartości to: Pre i Post. Wyzwalacze wstępne są wyzwalane przed operacją, gdy wyzwalacz Post po operacji.
_Rid Jest to właściwość wygenerowana przez system. Identyfikator zasobu (_rid) to unikatowy identyfikator, który jest również hierarchiczny dla stosu zasobów w modelu zasobów. Jest on używany wewnętrznie do umieszczania i nawigacji zasobu wyzwalacza.
_Ts Jest to właściwość wygenerowana przez system. Określa ostatni zaktualizowany znacznik czasu zasobu. Wartość jest znacznikiem czasu.
_Własny Jest to właściwość wygenerowana przez system. Jest to unikatowy adresowy identyfikator URI zasobu.
_Etag Jest to właściwość wygenerowana przez system, która określa tag zasobu wymagany do optymistycznej kontrolki współbieżności.

Zadania

Możesz wykonać następujące czynności za pomocą wyzwalaczy:

Aby uzyskać informacje na temat sposobu działania funkcji zdefiniowanych przez użytkownika, w tym wywoływania wyzwalacza, zobacz Programowanie w usłudze Azure Cosmos DB: procedury składowane, wyzwalacze i funkcje zdefiniowane przez użytkownika.

Zobacz też