Aktivační události

Azure Cosmos DB je globálně distribuovaná databáze s více modely, která podporuje modely dokumentů, grafů a datových modelů klíč-hodnota. Obsah v této části je určený ke správě prostředků triggeru pomocí rozhraní SQL API přes REST.

Triggery jsou části aplikační logiky, které je možné spustit před vytvořením, odstraněním a nahrazením dokumentu (před triggery) a po (po triggerech). Triggery se zapisují v JavaScriptu. Triggery před i po spuštění nedělají žádné parametry převzetí. Podobně jako uložené procedury jsou triggery aktivní v mezích kolekce, a proto se logika aplikace omezuje na kolekci.

Podobně jako u uložených procedur má prostředek aktivačních událostí pevné schéma. Vlastnost body obsahuje logiku aplikace. Následující příklad znázorňuje konstruktor JSON triggeru.

{  
"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"  
}  
  
Vlastnost Popis
id Povinná hodnota. Jedná se o uživatelskou nastavitelnou vlastnost. Jedná se o jedinečný název, který se používá k identifikaci triggeru. ID nesmí být delší než 255 znaků.
Tělo Povinná hodnota. Jedná se o uživatelskou nastavitelnou vlastnost. Je to tělo triggeru.
triggerOperation Povinná hodnota. Jedná se o typ operace, která vyvolá trigger. Přijatelné hodnoty jsou: Vše, Vložit, Nahradit a Odstranit.
triggerType Povinná hodnota. Určuje, kdy se trigger aktivuje. Přijatelné hodnoty jsou: Pre a Post. Triggery pre se aktivují před operací, zatímco Post aktivuje po operaci.
_Zbavit Jedná se o systém vygenerovanou vlastnost. ID prostředku (_rid) je jedinečný identifikátor, který je také hierarchický podle zásobníku prostředků v modelu prostředků. Používá se interně k umístění a navigaci prostředku triggeru.
_Ts Jedná se o systém vygenerovanou vlastnost. Určuje časové razítko poslední aktualizace prostředku. Hodnota je časové razítko.
_Vlastní Jedná se o systém vygenerovanou vlastnost. Jedná se o jedinečný adresovatelný identifikátor URI prostředku.
_Etag Jedná se o systémově vygenerovanou vlastnost, která určuje etag prostředku vyžadovanou pro optimistické řízení souběžnosti.

Úlohy

S aktivačními událostmi můžete provádět následující akce:

Informace o tom, jak fungují funkce UDF, včetně vyvolání triggeru, najdete v tématu Programování ve službě Azure Cosmos DB: Uložené procedury, triggery a UDF.

Viz také