Pengiriman acara dengan identitas terkelola

Artikel ini menjelaskan cara menggunakan identitas layanan terkelola untuk topik sistem Azure Event Grid, topik kustom, atau domain. Gunakan untuk meneruskan acara ke tujuan yang didukung seperti antrian dan topik Bus Layanan, hub acara, dan akun penyimpanan.

Prasyarat

  1. Menetapkan identitas yang ditetapkan sistem atau identias yang ditetapkan pengguna ke topik sistem, topik kustom, atau domain.

  2. Tambahkan identitas ke peran yang sesuai (misalnya, Service Bus Data Sender) di tujuan (misalnya, antrean Service Bus). Untuk langkah-langkah mendetail, lihat Menambahkan identitas ke peran Azure di tujuan

    Catatan

    Saat ini, tidak mungkin untuk menyampaikan kejadian menggunakan titik akhir privat. Untuk informasi selengkapnya, lihat bagian Titik akhir privat di akhir artikel ini.

Membuat langganan acara yang menggunakan identitas

Setelah Anda memiliki topik kustom Event Grid atau topik sistem atau domain dengan identitas terkelola dan telah menambahkan identitas ke peran yang sesuai di tujuan, Anda siap untuk membuat langganan yang menggunakan identitas.

Menggunakan portal Azure

Saat Anda membuat langganan peristiwa, Anda akan melihat opsi untuk mengaktifkan penggunaan identitas yang ditetapkan sistem atau identitas yang ditetapkan pengguna untuk titik akhir di bagian DETAIL TITIK AKHIR.

Berikut adalah contoh mengaktifkan identitas yang ditetapkan sistem saat membuat langganan peristiwa dengan antrian Bus Layanan sebagai tujuan.

Screenshot that shows how to enable an identity when creating an event subscription for a Service Bus queue.

Anda juga dapat mengaktifkan penggunaan identitas yang ditetapkan sistem untuk digunakan untuk dead-lettering pada tab Fitur Tambahan.

Screenshot that shows how to enable a system-assigned identity for dead-lettering.

Anda dapat mengaktifkan identitas terkelola pada langganan peristiwa setelah dibuat. Pada halaman Langganan Peristiwa untuk langganan peristiwa, beralih ke tab Fitur Tambahan untuk melihat opsi tersebut. Anda juga dapat mengaktifkan identitas untuk dead-lettering di halaman ini.

Screenshot that shows how to enable a system-assigned identity on an existing event subscription.

Jika Anda telah mengaktifkan identitas yang ditetapkan pengguna untuk topik tersebut, Anda akan melihat opsi identitas yang ditetapkan pengguna diaktifkan di daftar drop-down untuk Jenis Identitas Manged. Jika Anda memilih Yang Ditetapkan Pengguna untuk Jenis Identitas Terkelola, Anda kemudian dapat memilih identitas yang ditetapkan pengguna, yang ingin Anda gunakan untuk menyampaikan peristiwa.

Screenshot that shows how to enable a user-assigned identity on an event subscription.

Menggunakan Azure CLI - Antrean Service Bus

Di bagian ini, Anda mempelajari cara menggunakan Azure CLI untuk mengaktifkan penggunaan identitas yang ditetapkan sistem untuk mengirimkan acara ke antrean Bus Layanan. Identitas harus menjadi anggota peran Pengirim Data Bus Layanan Azure. Ini juga harus menjadi anggota peran Kontributor Data Blob Penyimpanan pada akun penyimpanan yang digunakan untuk dead-lettering.

Tentukan variabel

Pertama, tentukan nilai untuk variabel berikut yang akan digunakan dalam perintah CLI.

subid="<AZURE SUBSCRIPTION ID>"
rg = "<RESOURCE GROUP of EVENT GRID CUSTOM TOPIC>"
topicname = "<EVENT GRID TOPIC NAME>"

# get the service bus queue resource id
queueid=$(az servicebus queue show --namespace-name <SERVICE BUS NAMESPACE NAME> --name <QUEUE NAME> --resource-group <RESOURCE GROUP NAME> --query id --output tsv)
sb_esname = "<Specify a name for the event subscription>" 

Membuat langganan acara dengan menggunakan identitas terkelola untuk pengiriman

Contoh perintah ini membuat langganan peristiwa untuk topik kustom Event Grid dengan jenis titik akhir yang diatur ke antrean Bus Layanan.

az eventgrid event-subscription create  
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname
    --delivery-identity-endpoint-type servicebusqueue  
    --delivery-identity systemassigned 
    --delivery-identity-endpoint $queueid
    -n $sb_esname 

Membuat langganan acara dengan menggunakan identitas terkelola untuk pengiriman dan dead-lettering

Contoh perintah ini membuat langganan peristiwa untuk topik kustom Event Grid dengan jenis titik akhir yang diatur ke antrean Bus Layanan. Ini juga menentukan bahwa identitas yang dikelola sistem akan digunakan untuk dead-lettering.

storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --output tsv)
deadletterendpoint="$storageid/blobServices/default/containers/<BLOB CONTAINER NAME>"

az eventgrid event-subscription create  
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname 
    --delivery-identity-endpoint-type servicebusqueue
    --delivery-identity systemassigned 
    --delivery-identity-endpoint $queueid
    --deadletter-identity-endpoint $deadletterendpoint 
    --deadletter-identity systemassigned 
    -n $sb_esnameq 

Menggunakan Azure CLI - Hub Acara

Di bagian ini, Anda mempelajari cara menggunakan Azure CLI untuk mengaktifkan penggunaan identitas yang ditetapkan sistem untuk mengirimkan acara ke event hub. Identitas harus menjadi anggota peran Pengirim Data Azure Event Hubs. Ini juga harus menjadi anggota peran Kontributor Data Blob Penyimpanan pada akun penyimpanan yang digunakan untuk dead-lettering.

Tentukan variabel

subid="<AZURE SUBSCRIPTION ID>"
rg = "<RESOURCE GROUP of EVENT GRID CUSTOM TOPIC>"
topicname = "<EVENT GRID CUSTOM TOPIC NAME>"

hubid=$(az eventhubs eventhub show --name <EVENT HUB NAME> --namespace-name <NAMESPACE NAME> --resource-group <RESOURCE GROUP NAME> --query id --output tsv)
eh_esname = "<SPECIFY EVENT SUBSCRIPTION NAME>" 

Membuat langganan acara dengan menggunakan identitas terkelola untuk pengiriman

Contoh perintah ini membuat langganan peristiwa untuk topik kustom Event Grid dengan jenis titik akhir yang diatur ke Azure Event Hubs.

az eventgrid event-subscription create  
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname 
    --delivery-identity-endpoint-type eventhub 
    --delivery-identity systemassigned 
    --delivery-identity-endpoint $hubid
    -n $sbq_esname 

Membuat langganan acara dengan menggunakan identitas terkelola untuk pengiriman + deadletter

Contoh perintah ini membuat langganan peristiwa untuk topik kustom Event Grid dengan jenis titik akhir yang diatur ke Azure Event Hubs. Ini juga menentukan bahwa identitas yang dikelola sistem akan digunakan untuk dead-lettering.

storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --output tsv)
deadletterendpoint="$storageid/blobServices/default/containers/<BLOB CONTAINER NAME>"

az eventgrid event-subscription create
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname 
    --delivery-identity-endpoint-type servicebusqueue  
    --delivery-identity systemassigned 
    --delivery-identity-endpoint $hubid
    --deadletter-identity-endpoint $eh_deadletterendpoint
    --deadletter-identity systemassigned 
    -n $eh_esname 

Menggunakan antrean Azure CLI - Microsoft Azure Storage

Di bagian ini, Anda mempelajari cara menggunakan Azure CLI untuk mengaktifkan penggunaan identitas yang ditetapkan sistem untuk mengirimkan peristiwa ke antrean Microsoft Azure Storage. Identitas harus menjadi anggota peran Pengirim Pesan Data Antrean Penyimpanan pada akun penyimpanan. Ini juga harus menjadi anggota peran Kontributor Data Blob Penyimpanan pada akun penyimpanan yang digunakan untuk dead-lettering.

Tentukan variabel

subid="<AZURE SUBSCRIPTION ID>"
rg = "<RESOURCE GROUP of EVENT GRID CUSTOM TOPIC>"
topicname = "<EVENT GRID CUSTOM TOPIC NAME>"

# get the storage account resource id
storageid=$(az storage account show --name <STORAGE ACCOUNT NAME> --resource-group <RESOURCE GROUP NAME> --query id --output tsv)

# build the resource id for the queue
queueid="$storageid/queueservices/default/queues/<QUEUE NAME>" 

sa_esname = "<SPECIFY EVENT SUBSCRIPTION NAME>" 

Membuat langganan acara dengan menggunakan identitas terkelola untuk pengiriman

az eventgrid event-subscription create 
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname 
    --delivery-identity-endpoint-type storagequeue  
    --delivery-identity systemassigned 
    --delivery-identity-endpoint $queueid
    -n $sa_esname 

Membuat langganan acara dengan menggunakan identitas terkelola untuk pengiriman + deadletter

storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --output tsv)
deadletterendpoint="$storageid/blobServices/default/containers/<BLOB CONTAINER NAME>"

az eventgrid event-subscription create  
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname 
    --delivery-identity-endpoint-type storagequeue  
    --delivery-identity systemassigned 
    --delivery-identity-endpoint $queueid
    --deadletter-identity-endpoint $deadletterendpoint 
    --deadletter-identity systemassigned 
    -n $sa_esname 

Titik Akhir Privat

Saat ini, tidak mungkin untuk menyampaikan kejadian menggunakan titik akhir privat. Artinya, tidak ada dukungan jika Anda memiliki persyaratan isolasi jaringan yang ketat di mana lalu lintas peristiwa yang Anda sampaikan tidak boleh meninggalkan ruang IP privat.

Namun, jika persyaratan Anda meminta cara aman untuk mengirim peristiwa menggunakan saluran terenkripsi dan identitas pengirim yang diketahui (dalam hal ini, Event Grid) menggunakan ruang IP publik, Anda dapat mengirimkan peristiwa ke Event Hubs, Bus Layanan, atau layanan Azure Storage menggunakan topik kustom Azure Event Grid atau domain dengan identitas terkelola seperti yang ditunjukkan dalam artikel ini. Kemudian, Anda dapat menggunakan tautan privat yang dikonfigurasi di Azure Functions atau webhook yang digunakan di jaringan virtual Anda untuk menarik peristiwa. Lihat tutorial: Koneksi ke titik akhir privat dengan Azure Functions.

Di bawah konfigurasi ini, lalu lintas melewati IP/internet publik dari Azure Event Grid ke Azure Event Hubs, Azure Service Bus, atau Azure Storage, tetapi saluran dapat dienkripsi dan identitas terkelola Dari Grid Peristiwa digunakan. Jika Anda mengonfigurasi Azure Functions atau webhook yang disebarkan ke jaringan virtual Anda untuk menggunakan Azure Event Hubs, Azure Service Bus, atau Azure Storage melalui tautan privat, bagian lalu lintas tersebut jelas akan tetap berada di Azure.

Langkah berikutnya

Guna mempelajari tentang identitas terkelola untuk sumber daya Azure, lihat Apa saja identitas terkelola untuk sumber daya Azure.