Hızlı başlangıç: Azure CLı ve Event Grid ile Azure kuyruk depolama 'ya özel olayları yönlendirme
Azure Event Grid, bulut için bir olay oluşturma hizmetidir. Azure Kuyruk depolama, desteklenen olay işleyicilerinden biridir. Bu makalede Azure CLI ile özel bir konu oluşturacak, bu özel konuya abone olacak ve olayı tetikleyerek sonucu görüntüleyeceksiniz. Kuyruk depolamaya olayları gönderirsiniz.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Önkoşullar
Azure Cloud Shell'Da Bash ortamını kullanın.
Dilerseniz CLI başvuru komutlarını çalıştırmak için Azure CLI’yi yükleyebilirsiniz.
Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Ek oturum açma seçenekleri için bkz. Azure CLI ile oturum açma.
İstendiğinde, ilk kullanımda Azure CLI uzantılarını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.
Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.
Bu makale, Azure CLı 'nin sürüm 2.0.56 veya üstünü gerektirir. Azure Cloud Shell kullanılıyorsa, en son sürüm zaten yüklüdür.
Azure portal Cloud Shell kullanmak yerine yerel makinenizde Azure PowerShell kullanıyorsanız, Azure PowerShell sürümü 1.1.0 veya daha büyük olduğundan emin olun. Azure indirmeleri-komut satırı araçlarındanWindows makinenize Azure PowerShell en son sürümünü indirin.
Bu makale, Azure CLı kullanmaya yönelik komutlar sağlar.
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.
az group create komutuyla bir kaynak grubu oluşturun.
Aşağıdaki örnek westus2 konumunda gridResourceGroup adlı bir kaynak grubu oluşturur.
az group create --name gridResourceGroup --location westus2
Event Grid Kaynak sağlayıcısını etkinleştirin
Daha önce Azure aboneliğinizde Event Grid kullanmadıysanız, Event Grid Kaynak sağlayıcısını kaydetmeniz gerekebilir. Sağlayıcıyı kaydetmek için şu komutu çalıştırın:
az provider register --namespace Microsoft.EventGrid
Kaydın tamamlanması biraz zaman alabilir. Durumu denetlemek için şunu çalıştırın:
az provider show --namespace Microsoft.EventGrid --query "registrationState"
registrationState``Registered olduğu zaman devam edebilirsiniz.
Özel konu oluşturma
Event grid konusu, olaylarınızı göndereceğiniz kullanıcı tanımlı bir uç nokta sağlar. Aşağıdaki örnekte özel konu, kaynak grubunuzda oluşturulur. <topic_name> değerini özel konunuz için benzersiz bir adla değiştirin. Bir DNS girişi ile temsil edildiğinden Event Grid konusunun adı benzersiz olmalıdır.
az eventgrid topic create --name <topic_name> -l westus2 -g gridResourceGroup
Kuyruk depolama oluşturma
Özel konuya abone olmadan önce, olay iletisi için uç noktayı oluşturalım. Olayları toplamak için bir Kuyruk depolama oluşturun.
storagename="<unique-storage-name>"
queuename="eventqueue"
az storage account create -n $storagename -g gridResourceGroup -l westus2 --sku Standard_LRS
az storage queue create --name $queuename --account-name $storagename
Özel konuya abone olma
İzlemek istediğiniz olayları Event Grid söylemek için özel bir konuya abone olursunuz. Aşağıdaki örnek, oluşturduğunuz özel konuya abone olur ve uç nokta için sıra depolama alanının kaynak KIMLIĞINI geçirir. Azure CLI ile uç nokta olarak Kuyruk depolama kimliğini geçirirsiniz. Uç nokta şu biçimdedir:
/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-name>/queueservices/default/queues/<queue-name>
Aşağıdaki betik, kuyruk için depolama hesabının kaynak kimliğini alır. Kuyruk depolama için kimliği oluşturur ve bir event grid konusuna abone olur. Uç nokta türünü storagequeue olarak ayarlar ve uç nokta için kuyruk kimliğini kullanır.
storageid=$(az storage account show --name $storagename --resource-group gridResourceGroup --query id --output tsv)
queueid="$storageid/queueservices/default/queues/$queuename"
topicid=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query id --output tsv)
az eventgrid event-subscription create \
--source-resource-id $topicid \
--name <event_subscription_name> \
--endpoint-type storagequeue \
--endpoint $queueid \
--expiration-date "<yyyy-mm-dd>"
Olay aboneliğini oluşturan hesabın kuyruk depolamada yazma erişimine sahip olması gerekir. Abonelik için bir sona erme tarihi belirlendiğine dikkat edin.
Aboneliği REST API kullanarak oluşturursanız depolama hesabının kimliğini ve kuyruğun adını ayrı birer parametre olarak geçirirsiniz.
"destination": {
"endpointType": "storagequeue",
"properties": {
"queueName":"eventqueue",
"resourceId": "/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-name>"
}
...
Özel konunuza olay gönderme
Event Grid’in iletiyi uç noktanıza nasıl dağıttığını görmek için bir olay tetikleyelim. İlk olarak özel konunun URL’sini ve anahtarını alalım. Burada da <topic_name> yerine özel konunuzun adını yazın.
endpoint=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name <topic_name> -g gridResourceGroup --query "key1" --output tsv)
Bu makaleyi kolaylaştırmak için özel konuya göndereceğiniz örnek olay verileri sağlanmıştır. Normalde olay verilerini bir uygulama veya Azure hizmeti gönderir. CURL, HTTP istekleri gönderen bir yardımcı programdır. Bu makalede, özel konuya bir olay göndermek için CURL kullanın. Aşağıdaki örnek, event grid konusuna üç olay gönderir:
for i in 1 2 3
do
event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Ducati", "model": "Monster"},"dataVersion": "1.0"} ]'
curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
done
Portalda Kuyruk depolamaya gidin ve Event Grid’in bu üç olayı kuyruğa gönderdiğine dikkat edin.

Not
Event Grid iletileri alan bir sıra için Azure işlevleri Için Azure kuyruk depolama tetikleyicisi kullanıyorsanız, işlev yürütmesinde aşağıdaki hata iletisini görebilirsiniz: The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.
Bunun nedeni, Azure kuyruk depolama tetikleyicisikullandığınızda Azure işlevleri bir Base64 kodlamalı dize bekler, ancak Event Grid iletileri bir depolama kuyruğuna düz metin biçiminde gönderir. Şu anda, Azure Işlevleri için sıra tetikleyicisi 'nin düz metin kabul etmesini yapılandırmak mümkün değildir.
Kaynakları temizleme
Bu olayla çalışmaya devam etmeyi planlıyorsanız bu makalede oluşturulan kaynakları temizlemeyin. Aksi takdirde, bu makalede oluşturduğunuz kaynakları silmek için aşağıdaki komutu kullanın.
az group delete --name gridResourceGroup
Sonraki adımlar
Artık konu oluşturma ve olay aboneliklerini öğrendiğinize göre, Event Grid’in size nasıl yardımcı olabileceği konusunda daha fazla bilgi edinebilirsiniz:
- Event Grid Hakkında
- Blob depolama olaylarını bir özel web uç noktasına yönlendirme
- Azure Event Grid ve Logic Apps ile sanal makine değişikliklerini izleme
- Büyük verileri bir veri ambarına akışla aktarma
Farklı programlama dillerini kullanarak Event Grid olayları yayımlama ve olayları kullanma hakkında bilgi edinmek için aşağıdaki örneklere bakın.
