Bagikan melalui


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

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

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

Melihat hasil

Siapkan

Catatan

Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Untuk memulai, lihat Menginstal Azure PowerShell. 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 melakukan peningkatan, lihat Menginstal dan mengonfigurasi Azure PowerShell.

Masuk ke Azure

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

Connect-AzAccount

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

$location = "westus2"

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

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

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

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

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

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

Lihat peristiwa berlangganan

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 peristiwa 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"
}]

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.

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: