Pemicu

Azure Cosmos DB adalah database multi-model yang didistribusikan secara global yang mendukung model data dokumen, grafik, dan nilai kunci. Konten di bagian ini adalah untuk mengelola sumber daya pemicu menggunakan API SQL melalui REST.

Pemicu adalah bagian dari logika aplikasi yang dapat dijalankan sebelum (pra-pemicu) dan setelah (pasca-pemicu) pembuatan, penghapusan, dan penggantian dokumen. Pemicu ditulis dalam JavaScript. Pemicu pra dan pasca tidak mengambil parameter. Seperti prosedur tersimpan, pemicu hidup dalam batasan koleksi, sehingga membatasi logika aplikasi ke koleksi.

Mirip dengan prosedur tersimpan, sumber daya pemicu memiliki skema tetap. Properti isi berisi logika aplikasi. Contoh berikut mengilustrasikan konstruksi JSON dari pemicu.

{  
"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"  
}  
  
Properti Deskripsi
id Wajib diisi. Ini adalah properti yang dapat diatur pengguna. Ini adalah nama unik yang digunakan untuk mengidentifikasi pemicu. ID tidak boleh melebihi 255 karakter.
isi Wajib diisi. Ini adalah properti yang dapat diatur pengguna. Ini adalah tubuh pemicunya.
triggerOperation Wajib diisi. Ini adalah jenis operasi yang memanggil pemicu. Nilai yang dapat diterima adalah: Semua, Sisipkan, Ganti , dan Hapus.
triggerType Wajib diisi. Ini menentukan kapan pemicu diaktifkan. Nilai yang dapat diterima adalah: Pra dan Posting. Pra pemicu diaktifkan sebelum operasi saat Pasca memicu setelah operasi.
_rid Ini adalah properti yang dihasilkan sistem. ID sumber daya (_rid) adalah pengidentifikasi unik yang juga hierarkis per tumpukan sumber daya pada model sumber daya. Ini digunakan secara internal untuk penempatan dan navigasi sumber daya pemicu.
_ts Ini adalah properti yang dihasilkan sistem. Ini menentukan tanda waktu terakhir yang diperbarui dari sumber daya. Nilainya adalah tanda waktu.
_self Ini adalah properti yang dihasilkan sistem. Ini adalah URI yang dapat diatasi secara unik untuk sumber daya.
_etag Ini adalah properti yang dihasilkan sistem yang menentukan etag sumber daya yang diperlukan untuk kontrol konkurensi optimis.

Tugas

Anda dapat melakukan hal berikut dengan pemicu:

Untuk informasi tentang cara kerja UDF termasuk memanggil pemicu, lihat Pemrograman Azure Cosmos DB: Prosedur tersimpan, pemicu, dan UDF.

Lihat juga