Aracılığıyla paylaş


Öğretici: Azure CLI ve Event Grid ile özel olayları Azure Relay Karma Bağlantılarına yönlendirme

Azure Relay Karma Bağlantılar, desteklenen olay işleyicilerinden biridir. Genel uç noktası olmayan uygulamalardan alınan olayları işlemeniz gerektiğinde olay işleyicisi olarak karma bağlantıları kullanırsınız. Bu uygulamalar kurumsal ağınızın içinde olabilir. Bu makalede Azure CLI ile özel bir konu oluşturacak, bu özel konuya abone olacak ve olayı tetikleyerek sonucu görüntüleyeceksiniz. Olayları karma bağlantıya gönderirsiniz.

Not

Azure Event Grid'de yeniyseniz, bu öğreticiden önce hizmete genel bir bakış elde etmek için bkz . Azure Event Grid nedir?

Önkoşullar

  • Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.

  • CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.

    • 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. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısı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 CLI'nın 2.0.56 veya sonraki bir sürümünü gerektirir. Azure Cloud Shell kullanılıyorsa en son sürüm zaten yüklüdür.

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

Özel konu oluşturma

Event Grid konusu, olaylarınızı gönderdiğ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. Event Grid konu adı bir Etki Alanı Adı Sistemi (DNS) girdisi ile temsil edildiğinden benzersiz olmalıdır.

az eventgrid topic create --name <topic_name> -l westus2 -g gridResourceGroup

Özel konuya abone olma

Event Grid'e hangi olayları izlemek istediğinizi bildirmek için bir Event Grid konusuna abone olabilirsiniz. Aşağıdaki örnek, oluşturduğunuz özel konuya abone olup uç nokta için karma bağlantının kaynak kimliğini geçirir. Karma bağlantı kimliği şu biçimdedir:

/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Relay/namespaces/<relay-namespace>/hybridConnections/<hybrid-connection-name>

Aşağıdaki betik, geçiş ad alanının kaynak kimliğini alır. Karma bağlantının kimliğini oluşturur ve bir Event Grid konusuna abone olur. Betik, uç nokta türünü hybridconnection olarak ayarlar ve uç noktanın karma bağlantı kimliğini kullanır.

relaynsname=<namespace-name>
relayrg=<resource-group-for-relay>
hybridname=<hybrid-name>

relayid=$(az relay namespace show --resource-group $relayrg --name $relaynsname --query id --output tsv)
hybridid="$relayid/hybridConnections/$hybridname"
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 hybridconnection \
  --endpoint $hybridid \
  --expiration-date "<yyyy-mm-dd>"

Abonelik için bir sona erme tarihi belirlendiğine dikkat edin.

Olayları işlemek için uygulama oluşturma

Karma bağlantıdan olayları alabilecek bir uygulamaya ihtiyacınız vardır. Microsoft Azure Event Grid Hybrid Connection Consumer sample for C#, bu işlemi gerçekleştirir. Önkoşul adımlarını tamamladınız.

  1. Visual Studio 2019 veya sonraki bir sürümüne sahip olduğunuzdan emin olun.

  2. Depoyu yerel makinenize kopyalayın.

  3. Visual Studio'da HybridConnectionConsumer projesini yükleyin.

  4. Program.cs dosyasında <relayConnectionString> ve <hybridConnectionName> yerine oluşturduğunuz geçiş bağlantısı dizesini ve karma bağlantı adını yazın.

  5. Visual Studio'da derleyin ve çalıştırın.

Önemli

Öğreticiyi basit tutmak için Azure Relay ad alanında kimlik doğrulaması yapmak için bağlantı dizesi kullanırız. Üretim ortamlarında Microsoft Entra Id kimlik doğrulaması kullanmanızı öneririz. Uygulama kullanırken uygulama için yönetilen kimliği etkinleştirebilir ve kimliğe Geçiş ad alanında uygun bir rol (Azure Relay Sahibi, Azure Relay Dinleyicisi veya Azure Relay Göndereni) atayabilirsiniz. Daha fazla bilgi için bkz . Azure Relay kaynaklarına erişmek için Microsoft Entra Id ile yönetilen kimliğin kimliğini doğrulama.

Konunuza olay gönderme

Event Grid’in iletiyi uç noktanıza nasıl dağıttığını görmek için bir olay tetikleyelim. Bu makalede olayı tetiklemek için Azure CLI'yı nasıl kullanacağınız gösterilmektedir. Alternatif olarak Event Grid yayımcı uygulamasını da kullanabilirsiniz.

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

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

Dinleyici uygulamanız olay iletisini almalıdır.

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: