Partager via


Déclencheurs

Azure Cosmos DB est une base de données multimodèle distribuée à l’échelle mondiale qui prend en charge les modèles de données de document, de graphique et de clé-valeur. Le contenu de cette section est destiné à la gestion des ressources de déclencheur à l’aide de l’API SQL via REST.

Les déclencheurs sont des éléments de logique d’application qui peuvent être exécutés avant (pré-déclencheurs) et après (post-déclencheurs) création, suppression et remplacement d’un document. Les déclencheurs sont écrits en JavaScript. Les pré-déclencheurs aussi bien que les post-déclencheurs ne prennent pas de paramètres. À l'instar des procédures stockées, les déclencheurs se situent à l'intérieur d'une collection, limitant ainsi la logique d'application à la collection.

Comme les procédures stockées, la ressource de déclencheurs a un schéma fixe. La propriété body contient la logique d'application. L'exemple suivant illustre la construction JSON d'un déclencheur :

{  
"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"  
}  
  
Propriété Description
id Obligatoire. Il s’agit d’une propriété settable par l’utilisateur. Nom unique utilisé pour identifier le déclencheur. L’ID ne doit pas dépasser 255 caractères.
body Obligatoire. Il s’agit d’une propriété settable par l’utilisateur. Il s’agit du corps du déclencheur.
triggerOperation Obligatoire. Il s’agit du type d’opération qui appelle le déclencheur. Les valeurs acceptables sont : All, Insert, Replace et Delete.
triggerType Obligatoire. Cela spécifie le moment où le déclencheur est déclenché. Les valeurs acceptables sont : Pré et Post. Les pré-déclencheurs se déclenchent avant une opération tandis que Post déclenche après une opération.
_Débarrasser Il s’agit d’une propriété générée par le système. L’ID de ressource (_rid) est un identificateur unique qui est également hiérarchique en fonction de la pile de ressources sur le modèle de ressource. Il est utilisé en interne pour le positionnement et la navigation de la ressource de déclencheur.
_Ts Il s’agit d’une propriété générée par le système. Elle spécifie l'horodateur de la dernière mise à jour de la ressource. La valeur est un horodateur.
_self Il s’agit d’une propriété générée par le système. Il s'agit de l'URI adressable de façon unique pour la ressource.
_Etag Il s’agit d’une propriété générée par le système qui spécifie l’etag de ressource requis pour le contrôle d’accès concurrentiel optimiste.

Tâches

Vous pouvez effectuer les opérations suivantes avec des déclencheurs :

Pour plus d’informations sur le fonctionnement des fonctions UDF, y compris l’appel d’un déclencheur, consultez Programmation Azure Cosmos DB : procédures stockées, déclencheurs et UDF.

Voir aussi