Mulai Cepat: Merutekan kejadian penyimpanan ke titik akhir web dengan Azure CLI

Azure Event Grid adalah layanan pembuat peristiwa untuk cloud. Dalam artikel ini, Anda menggunakan Azure CLI untuk berlangganan kejadian penyimpanan Blob, dan memicu kejadian untuk melihat 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.

Saat Anda menyelesaikan langkah-langkah yang dijelaskan dalam artikel ini, Anda melihat bahwa data peristiwa telah dikirim ke aplikasi web.

Screenshot of the Azure Event Grid Viewer that shows event data that has been sent to the web app.

Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.

Prasyarat

  • Artikel ini memerlukan Azure CLI versi 2.0.70 atau yang lebih baru. Jika menggunakan Azure Cloud Shell, versi terbaru sudah terinstal.

Buat grup sumber daya

Topik Event Grid merupakan sumber daya Azure, dan harus ditempatkan di grup sumber daya Azure. Grup sumber daya Azure adalah koleksi logis tempat sumber daya Azure disebarkan dan dikelola.

Buat grup sumber daya dengan perintah az group create.

Contoh berikut ini menampilkan cara membuat grup sumber daya bernama <resource_group_name> di lokasi westcentralus. Ganti <resource_group_name> dengan nama unik untuk grup sumber daya Anda.

az group create --name <resource_group_name> --location westcentralus

Buat akun penyimpanan

Kejadian penyimpanan blob tersedia di akun penyimpanan tujuan umum v2 dan akun penyimpanan Blob. Akun penyimpanan General-purpose v2 mendukung semua fitur untuk semua layanan penyimpanan, termasuk Blob, File, Antrean, dan Tabel. Akun penyimpanan Blob adalah akun penyimpanan khusus untuk menyimpan data tak terstruktur Anda sebagai blob (objek) di Azure Storage. Akun penyimpanan blob sama seperti akun penyimpanan tujuan umum dan mirip dalam fitur daya tahan, ketersediaan, skalabilitas, dan kinerja hebat yang Anda gunakan saat ini termasuk konsistensi API 100% untuk blob blok dan blob append. Untuk informasi selengkapnya, lihat Gambaran umum akun penyimpanan Azure.

Ganti <storage_account_name> dengan nama unik untuk akun penyimpanan Anda, dan <resource_group_name> dengan grup sumber daya yang Anda buat sebelumnya.

az storage account create \
  --name <storage_account_name> \
  --location westcentralus \
  --resource-group <resource_group_name> \
  --sku Standard_LRS \
  --kind BlobStorage \
  --access-tier Hot

Buat titik akhir pesan

Sebelum berlangganan topik, mari kita buat titik akhir untuk pesan peristiwa tersebut. Biasanya, titik akhir mengambil tindakan berdasarkan data kejadian. Untuk menyederhanakan mulai cepat ini, sebarkan aplikasi web bawaan yang menampilkan pesan peristiwa. Solusi yang disebarkan mencakup rencana App Service, aplikasi web App Service, dan kode sumber dari GitHub.

Ganti <your-site-name> dengan nama unik untuk aplikasi web Anda. Nama aplikasi web harus unik karena merupakan bagian dari entri DNS.

sitename=<your-site-name>

az deployment group create \
  --resource-group <resource_group_name> \
  --template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" \
  --parameters siteName=$sitename hostingPlanName=viewerhost

Perlu 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 akan melihat situs tersebut tanpa ada pesan yang ditampilkan.

Aktifkan penyedia sumber daya Event Grid

  1. Jika sebelumnya Anda belum menggunakan Event Grid di langganan Azure, Anda mungkin perlu mendaftarkan penyedia sumber daya Event Grid. Jalankan perintah berikut untuk mendaftarkan penyedia:

    az provider register --namespace Microsoft.EventGrid
    
  2. Mungkin perlu beberapa saat agar pendaftaran selesai. Untuk memeriksa status, jalankan perintah berikut:

    az provider show --namespace Microsoft.EventGrid --query "registrationState"
    

    Saat registrationState adalah Registered, Anda siap untuk melanjutkan.

Berlangganan ke akun penyimpanan Anda

Anda berlangganan topik untuk memberi tahu Event Grid peristiwa mana yang ingin Anda lacak dan tempat mengirim peristiwa tersebut. Contoh berikut berlangganan akun penyimpanan yang Anda buat, dan meneruskan URL dari aplikasi web Anda sebagai titik akhir untuk peringatan kejadian. Ganti <event_subscription_name> dengan nama untuk langganan kejadian Anda. Untuk <resource_group_name> dan <storage_account_name>, gunakan nilai yang Anda buat sebelumnya.

Titik akhir untuk aplikasi web Anda harus menyertakan akhiran /api/updates/.

storageid=$(az storage account show --name <storage_account_name> --resource-group <resource_group_name> --query id --output tsv)
endpoint=https://$sitename.azurewebsites.net/api/updates

az eventgrid event-subscription create \
  --source-resource-id $storageid \
  --name <event_subscription_name> \
  --endpoint $endpoint

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.

View subscription event

Picu kejadian dari penyimpanan Blob

Sekarang, mari kita picu kejadian untuk melihat cara Event Grid mendistribusikan pesan ke titik akhir Anda. Pertama, mari kita konfigurasi nama dan kunci untuk akun penyimpanan, lalu kita buat kontainer, lalu buat dan unggah file. Sekali lagi, gunakan nilai <storage_account_name> dan <resource_group_name> yang sudah Anda buat.

export AZURE_STORAGE_ACCOUNT=<storage_account_name>
export AZURE_STORAGE_KEY="$(az storage account keys list --account-name <storage_account_name> --resource-group <resource_group_name> --query "[0].value" --output tsv)"

az storage container create --name testcontainer

touch testfile.txt
az storage blob upload --file testfile.txt --container-name testcontainer --name testfile.txt

Anda telah memicu kejadian, dan Event Grid mengirim pesan ke titik akhir yang Anda konfigurasi saat berlangganan. Lihat aplikasi web Anda untuk melihat peristiwa yang baru saja Anda kirim.

[{
  "topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.Storage/storageAccounts/myblobstorageaccount",
  "subject": "/blobServices/default/containers/testcontainer/blobs/testfile.txt",
  "eventType": "Microsoft.Storage.BlobCreated",
  "eventTime": "2017-08-16T20:33:51.0595757Z",
  "id": "4d96b1d4-0001-00b3-58ce-16568c064fab",
  "data": {
    "api": "PutBlockList",
    "clientRequestId": "d65ca2e2-a168-4155-b7a4-2c925c18902f",
    "requestId": "4d96b1d4-0001-00b3-58ce-16568c000000",
    "eTag": "0x8D4E4E61AE038AD",
    "contentType": "text/plain",
    "contentLength": 0,
    "blobType": "BlockBlob",
    "url": "https://myblobstorageaccount.blob.core.windows.net/testcontainer/testfile.txt",
    "sequencer": "00000000000000EB0000000000046199",
    "storageDiagnostics": {
      "batchId": "dffea416-b46e-4613-ac19-0371c0c5e352"
    }
  },
  "dataVersion": "",
  "metadataVersion": "1"
}]

Membersihkan sumber daya

Jika Anda berencana untuk terus bekerja dengan akun penyimpanan dan langganan kejadian ini, jangan bersihkan sumber daya yang dibuat di artikel ini. Jika Anda tidak berencana untuk melanjutkan, gunakan perintah berikut untuk menghapus sumber daya yang Anda buat di artikel ini.

Ganti <resource_group_name> dengan grup sumber daya yang Anda buat di atas.

az group delete --name <resource_group_name>

Langkah berikutnya

Setelah Anda mengetahui cara membuat topik dan langganan kejadian, pelajari selengkapnya tentang Kejadian penyimpanan Blob dan yang dapat dibantu Event Grid: