Mulai Cepat: Merutekan kejadian penyimpanan ke titik akhir web dengan PowerShell

Azure Event Grid adalah layanan kejadian untuk awan. Dalam artikel ini, Anda menggunakan Azure PowerShell untuk berlangganan kejadian penyimpanan Blob, memicu kejadian, dan melihat hasilnya.

Biasanya, Anda mengirim kejadian ke titik akhir yang memproses data kejadian dan mengambil tindakan. Namun, untuk menyederhanakan artikel ini, Anda mengirim kejadian ke aplikasi web yang mengumpulkan dan menampilkan pesan.

Setelah selesai, Anda akan melihat bahwa data peristiwa telah dikirim ke aplikasi web.

Lihat hasil

Siapkan

Catatan

Kami menyarankan agar Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Artikel ini mengharuskan Anda menjalankan versi terbaru Azure PowerShell. Jika Anda perlu menginstal atau meningkatkan, lihat Instal dan konfigurasikan Azure PowerShell.

Masuk ke Azure

Masuk ke langganan Azure Anda dengan perintah Connect-AzAccount dan ikuti petunjuk pada layar untuk mengautentikasi.

Connect-AzAccount

Contoh ini menggunakan westus2 dan menyimpan pilihan dalam variabel yang digunakan seterusnya.

$location = "westus2"

Membuat 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 New-AzResourceGroup.

Contoh berikut ini membuat grup sumber daya bernama gridResourceGroup di lokasi westus2.

$resourceGroup = "gridResourceGroup"
New-AzResourceGroup -Name $resourceGroup -Location $location

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.

Buat akun penyimpanan Blob dengan replikasi LRS menggunakan New-AzStorageAccount, lalu ambil konteks akun penyimpanan yang menentukan akun penyimpanan. Saat bertindak di akun penyimpanan, Anda mereferensikan konteksnya, bukan berulang kali memberikan kredensial. Contoh ini membuat akun penyimpanan yang disebut gridstorage dengan penyimpanan redundan lokal (LRS).

Catatan

Nama akun penyimpanan berada dalam namespace global sehingga Anda perlu menambah beberapa karakter acak ke nama yang disediakan dalam skrip ini.

$storageName = "gridstorage"
$storageAccount = New-AzStorageAccount -ResourceGroupName $resourceGroup `
  -Name $storageName `
  -Location $location `
  -SkuName Standard_LRS `
  -Kind BlobStorage `
  -AccessTier Hot `
  -AllowBlobPublicAccess $false  

$ctx = $storageAccount.Context

Buat titik akhir pesan

Sebelum berlangganan topik, mari kita buat titik akhir untuk pesan peristiwa tersebut. Biasanya, titik akhir mengambil tindakan berdasarkan data peristiwa. Untuk menyederhanakan mulai cepat ini, Anda menyebarkan aplikasi web bawaan yang menampilkan pesan peristiwa. Solusi yang disebarkan mencakup paket 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>"

New-AzResourceGroupDeployment `
  -ResourceGroupName $resourceGroup `
  -TemplateUri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" `
  -siteName $sitename `
  -hostingPlanName viewerhost

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

Aktifkan penyedia sumber daya Event Grid

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

Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid

Mungkin perlu beberapa saat agar pendaftaran selesai. Untuk memeriksa status, jalankan:

Get-AzResourceProvider -ProviderNamespace Microsoft.EventGrid

Saat RegistrationStatus telah Registered, Anda siap untuk melanjutkan.

Berlangganan ke akun penyimpanan Anda

Anda berlangganan topik untuk memberi tahu Event Grid kejadian mana yang ingin dilacak. Contoh berikut berlangganan ke akun penyimpanan yang Anda buat, dan meneruskan URL dari aplikasi web Anda sebagai titik akhir untuk peringatan kejadian. Titik akhir untuk aplikasi web Anda harus menyertakan akhiran /api/updates/.

$storageId = (Get-AzStorageAccount -ResourceGroupName $resourceGroup -AccountName $storageName).Id
$endpoint="https://$sitename.azurewebsites.net/api/updates"

New-AzEventGridSubscription `
  -EventSubscriptionName gridBlobQuickStart `
  -Endpoint $endpoint `
  -ResourceId $storageId

Lihat kembali aplikasi web Anda, dan perhatikan bahwa peristiwa validasi langganan telah dikirim ke aplikasi web. Pilih ikon mata untuk memperluas data peristiwa. Event Grid mengirimkan peristiwa validasi sehingga titik akhir dapat memverifikasi bahwa Event Grid ingin menerima data peristiwa. Aplikasi web menyertakan kode untuk memvalidasi langganan.

Lihat kejadian langganan

Picu kejadian dari penyimpanan Blob

Sekarang, mari kita picu kejadian untuk melihat cara Event Grid mendistribusikan pesan ke titik akhir Anda. Pertama, mari kita membuat kontainer dan objek. Lalu, mari kita unggah objek ke dalam kontainer.

$containerName = "gridcontainer"
New-AzStorageContainer -Name $containerName -Context $ctx

echo $null >> gridTestFile.txt

Set-AzStorageBlobContent -File gridTestFile.txt -Container $containerName -Context $ctx -Blob gridTestFile.txt

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

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

Bersihkan 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.

Remove-AzResourceGroup -Name $resourceGroup

Langkah berikutnya

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