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.