Skema CloudEvents v1.0 dengan Azure Event Grid

Azure Event Grid secara asli mendukung peristiwa dalam implementasi JSON cloudEvents v1.0 dan pengikatan protokol HTTP. CloudEvents adalah spesifikasi terbuka untuk menjelaskan data peristiwa.

CloudEvents menyederhanakan interoperabilitas dengan menyediakan skema peristiwa umum untuk menerbitkan dan mengonsumsi peristiwa berbasis cloud. Skema ini memungkinkan alat seragam, cara standar perutean & penanganan peristiwa, dan cara universal deserialisasi skema peristiwa luar. Dengan skema umum, Anda dapat lebih mudah mengintegrasikan pekerjaan di seluruh platform.

CloudEvents sedang dibangun oleh beberapa kolaborator, termasuk Microsoft, melalui Cloud Native Computing Foundation. Saat ini tersedia sebagai versi 1.0.

Artikel ini menjelaskan skema CloudEvents dengan Event Grid.

Sampel kejadian menggunakan skema CloudEvents

Berikut adalah contoh peristiwa Azure Blob Storage dalam format CloudEvents:

{
    "specversion": "1.0",
    "type": "Microsoft.Storage.BlobCreated",  
    "source": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-account}",
    "id": "9aeb0fdf-c01e-0131-0922-9eb54906e209",
    "time": "2019-11-18T15:13:39.4589254Z",
    "subject": "blobServices/default/containers/{storage-container}/blobs/{new-file}",    
    "data": {
        "api": "PutBlockList",
        "clientRequestId": "4c5dd7fb-2c48-4a27-bb30-5361b5de920a",
        "requestId": "9aeb0fdf-c01e-0131-0922-9eb549000000",
        "eTag": "0x8D76C39E4407333",
        "contentType": "image/png",
        "contentLength": 30699,
        "blobType": "BlockBlob",
        "url": "https://gridtesting.blob.core.windows.net/testcontainer/{new-file}",
        "sequencer": "000000000000000000000000000099240000000000c41c18",
        "storageDiagnostics": {
            "batchId": "681fe319-3006-00a8-0022-9e7cde000000"
        }
    }
}

Penjelasan mendetail tentang kolom yang tersedia, jenis, dan definisinya di CloudEvents v1.0 tersedia di sini.

Nilai header untuk kejadian yang dikirimkan dalam skema CloudEvents dan skema Azure Event Grid sama kecuali untuk content-type. Untuk skema CloudEvents, nilai header tersebut adalah "content-type":"application/cloudevents+json; charset=utf-8". Untuk skema Event Grid, nilai header tersebut adalah "content-type":"application/json; charset=utf-8".

Event Grid untuk CloudEvents

Anda dapat menggunakan Event Grid untuk input dan output peristiwa dalam skema CloudEvents. Anda dapat menggunakan CloudEvents untuk peristiwa sistem, seperti peristiwa Blob Storage dan peristiwa IoT Hub, serta peristiwa kustom. Selain mendukung CloudEvents, Event Grid mendukung format peristiwa Event Grid eksklusif, tidak dapat diperluas, namun berfungsi penuh. Tabel berikut menjelaskan transformasi yang didukung saat menggunakan format CloudEvents dan Event Grid sebagai skema input dalam topik dan sebagai skema output dalam langganan peristiwa. Skema output Event Grid tidak dapat digunakan saat menggunakan CloudEvents sebagai skema input karena CloudEvents mendukung atribut ekstensi yang tidak didukung oleh skema Event Grid.

Skema input Skema output
Format CloudEvents Format CloudEvents
Format Event Grid Format CloudEvents
Format Event Grid Format Event Grid

Untuk semua skema peristiwa, Event Grid memerlukan validasi saat menerbitkan ke topik Event Grid dan saat membuat langganan peristiwa. Untuk mengetahui informasi selengkapnya, lihat Keamanan dan autentikasi Event Grid.

Langkah berikutnya

Lihat Cara menggunakan skema CloudEvents v1.0 dengan Event Grid.