Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Event Grid, bulut için bir olay oluşturma hizmetidir. Bu makalede, Azure PowerShell kullanarak Blob depolama olaylarına abone olacak, bir olayı tetikleyebilir ve sonucu görüntüleyebilirsiniz.
Normalde olayları, olay verilerini işleyen ve eylemler gerçekleştiren bir uç noktaya gönderirsiniz. Bununla birlikte, bu makaleyi basitleştirmek için olayları iletilerin toplandığı ve görüntülendiği bir web uygulamasına gönderirsiniz.
İşiniz bittiğinde, olay verilerinin web uygulamasına gönderildiğini görürsünüz.
Kurulum
Uyarı
Azure ile etkileşime geçmek için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.
Bu makale, Azure PowerShell'in en son sürümünü çalıştırmanızı gerektirir. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure PowerShell'i yükleme ve yapılandırma.
Azure'da oturum açma
komutuyla Connect-AzAccount Azure aboneliğinizde oturum açın ve kimlik doğrulaması için ekrandaki yönergeleri izleyin.
Connect-AzAccount
Bu örnek westus2 kullanır ve seçimi tüm kullanım için bir değişkende depolar.
$location = "westus2"
Kaynak grubu oluşturma
Event Grid konuları Azure kaynaklarıdır ve bir Azure kaynak grubuna yerleştirilmelidir. Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal koleksiyondur.
New-AzResourceGroup komutuyla bir kaynak grubu oluşturun.
Aşağıdaki örnek westus2 konumunda gridResourceGroup adlı bir kaynak grubu oluşturur.
$resourceGroup = "gridResourceGroup"
New-AzResourceGroup -Name $resourceGroup -Location $location
Depolama hesabı oluşturma
Blob depolama olayları, genel amaçlı v2 depolama hesaplarında ve Blob depolama hesaplarında kullanılabilir. Genel amaçlı v2 depolama hesapları; Bloblar, Dosyalar, Kuyruklar ve Tablolar dahil olmak üzere tüm depolama hizmetlerine yönelik tüm özellikleri destekler. Blob depolama hesabı, yapılandırılmamış verilerinizi bloblar (nesneler) olarak Azure Storage’da depolamanıza yönelik özel depolama hesabıdır. Blob Storage hesapları, genel amaçlı depolama hesaplarınıza benzer ve blok blobları ve ilave blobları için %100 API tutarlığı dahil günümüzde kullandığınız tüm harika dayanıklılık, kullanılabilirlik, ölçeklenebilirlik ve performans özelliklerini paylaşır. Daha fazla bilgi için bkz. Azure depolama hesabına genel bakış.
New-AzStorageAccount kullanarak LRS çoğaltması ile bir Blob depolama hesabı oluşturun, ardından kullanılacak depolama hesabını tanımlayan depolama hesabı bağlamını alın. Bir depolama hesabı üzerinde işlem yaparken, kimlik bilgilerini tekrar tekrar sağlamak yerine bağlamı referans alırsınız. Bu örnek, yerel olarak yedekli depolama (LRS) ile adlı gridstorage bir depolama hesabı oluşturur.
Uyarı
Depolama hesabı adları genel bir ad alanında yer aldığından, bu betikte verilen ada bazı rastgele karakterler eklemeniz gerekir.
$storageName = "gridstorage"
$storageAccount = New-AzStorageAccount -ResourceGroupName $resourceGroup `
-Name $storageName `
-Location $location `
-SkuName Standard_LRS `
-Kind BlobStorage `
-AccessTier Hot `
-AllowBlobPublicAccess $false
$ctx = $storageAccount.Context
İleti uç noktası oluşturma
Konuya abone olmadan önce olay iletisi için uç noktayı oluşturalım. Uç nokta genellikle olay verilerine göre eylemler gerçekleştirir. Bu hızlı başlangıcı basitleştirmek için, olay iletilerini görüntüleyen önceden oluşturulmuş bir web uygulaması dağıtacaksınız. Dağıtılan çözüm bir App Service planı, bir App Service web uygulaması ve GitHub'dan kaynak kodu içerir.
<your-site-name> değerini web uygulamanız için benzersiz bir adla değiştirin. Web uygulaması adı bir DNS girdisinin parçası olduğundan benzersiz olmalıdır.
$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
Dağıtımın tamamlanması birkaç dakika sürebilir. Dağıtım başarıyla gerçekleştirildikten sonra, web uygulamanızı görüntüleyip çalıştığından emin olun. Web tarayıcısında şu adrese gidin: https://<your-site-name>.azurewebsites.net
Şu anda hiçbir mesajın görüntülenmediği siteyi görmelisiniz.
Event Grid kaynak sağlayıcısını etkinleştirme
Azure aboneliğinizde daha önce Event Grid kullanmadıysanız Event Grid kaynak sağlayıcısına kaydolmanız gerekebilir. Aşağıdaki komutu çalıştırın:
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
Kayıt işleminin tamamlanması biraz sürebilir. Durumu denetlemek için şunu çalıştırın:
Get-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
RegistrationStatus
Registered olduğu zaman devam edebilirsiniz.
Depolama hesabınıza kaydolun
Event Grid'e hangi olayları izlemek istediğinizi bildirmek için bir konuya abone olabilirsiniz. Aşağıdaki örnek, oluşturduğunuz depolama hesabına abonedir ve web uygulamanızdaki URL'yi olay bildirimi için uç nokta olarak geçirir. Web uygulamanızın uç noktası /api/updates/ sonekini içermelidir.
$storageId = (Get-AzStorageAccount -ResourceGroupName $resourceGroup -AccountName $storageName).Id
$endpoint="https://$sitename.azurewebsites.net/api/updates"
New-AzEventGridSubscription `
-EventSubscriptionName gridBlobQuickStart `
-Endpoint $endpoint `
-ResourceId $storageId
Web uygulamanızı yeniden görüntüleyin ve bir abonelik doğrulama olayının gönderildiğini farkedeceksiniz. Olay verilerini genişletmek için göz simgesini seçin. Event Grid, uç noktanın olay verilerini almak istediğini doğrulayabilmesi için doğrulama olayını gönderir. Web uygulaması, aboneliği doğrulamak için kod içerir.
Blob depolama biriminden bir olay tetikler
Şimdi, Event Grid’in iletiyi uç noktanıza nasıl dağıttığını görmek için bir olay tetikleyelim. İlk olarak bir kapsayıcı ve nesne oluşturalım. Ardından nesnesini kapsayıcıya yükleyelim.
$containerName = "gridcontainer"
New-AzStorageContainer -Name $containerName -Context $ctx
echo $null >> gridTestFile.txt
Set-AzStorageBlobContent -File gridTestFile.txt -Container $containerName -Context $ctx -Blob gridTestFile.txt
Olayı tetiklediniz ve Event Grid, iletiyi abone olurken yapılandırdığınız uç noktaya gönderdi. Az önce gönderdiğiniz olayı görmek için web uygulamanızı görüntüleyin.
[{
"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"
}]
Kaynakları temizleme
Bu depolama hesabı ve olay aboneliğiyle çalışmaya devam etmek istiyorsanız, bu makalede oluşturulan kaynakları temizlemeyin. Devam etmek istemiyorsanız, bu makalede oluşturduğunuz kaynakları silmek için aşağıdaki komutu kullanın.
Remove-AzResourceGroup -Name $resourceGroup
Sonraki adımlar
Artık konu oluşturma ve olay aboneliklerini öğrendiğinize göre, Blob depolama Olayları ve Event Grid’in size nasıl yardımcı olabileceği konusunda daha fazla bilgi edinebilirsiniz: