Mulai Cepat: Merutekan peristiwa penyimpanan Blob ke titik akhir web dengan menggunakan templat ARM
Dalam artikel ini, Anda menggunakan templat Azure Resource Manager (templat ARM) untuk membuat akun penyimpanan Blob, berlangganan peristiwa untuk penyimpanan blob tersebut, dan memicu peristiwa untuk menampilkan hasilnya. Biasanya, Anda mengirim peristiwa ke titik akhir yang memproses data peristiwa dan mengambil tindakan. Namun, untuk menyederhanakan artikel ini, Anda mengirim peristiwa ke aplikasi web yang mengumpulkan dan menampilkan pesan.
Catatan
Jika Anda baru menggunakan Azure Event Grid, lihat Apa itu Azure Event Grid untuk mendapatkan gambaran umum layanan sebelum melalui tutorial ini.
Templat Azure Resource Manager adalah file JavaScript Object Notation (JSON) yang menentukan infrastruktur dan konfigurasi untuk proyek Anda. Template tersebut menggunakan sintaksis deklaratif. Anda menjelaskan penyebaran yang Dimaksudkan tanpa menulis urutan perintah pemrograman untuk membuat penyebaran.
Jika lingkungan Anda telah memenuhi prasyarat dan Anda terbiasa menggunakan templat ARM, pilih tombol Sebarkan ke Azure. Templat akan terbuka di portal Microsoft Azure.
Prasyarat
Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
Buat titik akhir pesan
Sebelum berlangganan peristiwa untuk penyimpanan Blob, mari kita buat titik akhir untuk pesan peristiwa. Biasanya, titik akhir mengambil tindakan berdasarkan data kejadian. Untuk menyederhanakan mulai cepat ini, Anda menyebarkan aplikasi web bawaan yang menampilkan pesan peristiwa. Solusi yang disebarkan mencakup rencana App Service, aplikasi web App Service, dan kode sumber dari GitHub.
Pilih Sebarkan ke Azure untuk menyebarkan solusi ke langganan Anda. Di portal Microsoft Azure, berikan nilai untuk parameter.
Diperlukan beberapa menit untuk menyelesaikan penyebaran. Setelah penyebaran berhasil, lihat aplikasi web Anda untuk memastikannya berjalan. Di browser web, navigasi ke:
https://<your-site-name>.azurewebsites.net
Anda melihat situs tetapi belum ada peristiwa yang diposting ke situs tersebut.
Meninjau templat
Templat yang digunakan di mulai cepat ini berasal dari Templat Mulai Cepat Azure.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.26.54.24096",
"templateHash": "17805408638569592847"
}
},
"parameters": {
"storageAccountName": {
"type": "string",
"defaultValue": "[format('storage{0}', uniqueString(resourceGroup().id))]",
"metadata": {
"description": "Provide a unique name for the Blob Storage account."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Provide a location for the Blob Storage account that supports Event Grid."
}
},
"eventSubName": {
"type": "string",
"defaultValue": "subToStorage",
"metadata": {
"description": "Provide a name for the Event Grid subscription."
}
},
"endpoint": {
"type": "string",
"metadata": {
"description": "Provide the URL for the WebHook to receive events. Create your own endpoint for events."
}
},
"systemTopicName": {
"type": "string",
"defaultValue": "mystoragesystemtopic",
"metadata": {
"description": "Provide a name for the system topic."
}
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2023-01-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {
"accessTier": "Hot",
"minimumTlsVersion": "TLS1_2",
"supportsHttpsTrafficOnly": true,
"allowBlobPublicAccess": false
}
},
{
"type": "Microsoft.EventGrid/systemTopics",
"apiVersion": "2023-12-15-preview",
"name": "[parameters('systemTopicName')]",
"location": "[parameters('location')]",
"identity": {
"type": "SystemAssigned"
},
"properties": {
"source": "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]",
"topicType": "Microsoft.Storage.StorageAccounts"
},
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
]
},
{
"type": "Microsoft.EventGrid/systemTopics/eventSubscriptions",
"apiVersion": "2023-12-15-preview",
"name": "[format('{0}/{1}', parameters('systemTopicName'), parameters('eventSubName'))]",
"properties": {
"destination": {
"properties": {
"endpointUrl": "[parameters('endpoint')]"
},
"endpointType": "WebHook"
},
"filter": {
"includedEventTypes": [
"Microsoft.Storage.BlobCreated",
"Microsoft.Storage.BlobDeleted"
]
}
},
"dependsOn": [
"[resourceId('Microsoft.EventGrid/systemTopics', parameters('systemTopicName'))]"
]
}
],
"outputs": {
"name": {
"type": "string",
"value": "[parameters('eventSubName')]"
},
"resourceId": {
"type": "string",
"value": "[resourceId('Microsoft.EventGrid/systemTopics/eventSubscriptions', parameters('systemTopicName'), parameters('eventSubName'))]"
},
"resourceGroupName": {
"type": "string",
"value": "[resourceGroup().name]"
},
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
Dua sumber daya Azure yang ditentukan dalam templat:
- Microsoft.Storage/storageAccounts: membuat akun Azure Storage.
- Microsoft.EventGrid/systemTopics: membuat topik sistem dengan nama yang ditentukan untuk akun penyimpanan.
- Microsoft.EventGrid/systemTopics/eventSubscriptions: membuat langganan Azure Event Grid untuk topik sistem.
Menyebarkan templat
Pilih tautan berikut untuk masuk ke Azure dan membuka template. Template membuat key vault dan rahasia.
Tentukan titik akhir: berikan URL aplikasi web Anda dan tambahkan
api/updates
ke URL halaman beranda.Pilih Beli untuk menyebarkan templat.
Portal Microsoft Azure digunakan di sini untuk menyebarkan templat. Anda juga dapat menggunakan Azure PowerShell, Azure CLI, dan REST API. Untuk mempelajari metode penyebaran lainnya, lihat Menyebarkan templat.
Catatan
Anda dapat menemukan lebih banyak sampel templat Azure Event Grid di sini.
Memvalidasi penyebaran
Lihat lagi aplikasi web Anda, dan perhatikan bahwa peristiwa validasi langganan telah dikirim ke sana. Pilih ikon mata untuk meluaskan data peristiwa. Event Grid mengirimkan peristiwa validasi sehingga titik akhir dapat memverifikasi bahwa ia ingin menerima data peristiwa. Aplikasi web menyertakan kode untuk memvalidasi langganan.
Sekarang, mari kita picu kejadian untuk melihat cara Event Grid mendistribusikan pesan ke titik akhir Anda.
Anda memicu peristiwa untuk penyimpanan Blob dengan mengunggah file. File tidak memerlukan konten tertentu. Artikel ini mengasumsikan Anda memiliki file bernama testfile.txt, tetapi Anda dapat menggunakan file apa pun.
Saat Anda mengunggah file ke penyimpanan Azure Blob, Event Grid mengirim pesan ke titik akhir yang Anda konfigurasi saat berlangganan. Pesan tersebut menggunakan format JSON dan berisi array dengan satu atau beberapa peristiwa. Dalam contoh berikut, pesan JSON berisi array dengan satu peristiwa. Lihat aplikasi web Anda dan perhatikan bahwa peristiwa yang dibuat blob diterima.
Membersihkan sumber daya
Saat tidak lagi diperlukan, hapus grup sumber daya.
Langkah berikutnya
Untuk mengetahui informasi selengkapnya tentang templat Azure Resource Manager, lihat artikel berikut: