Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam panduan cepat ini, Anda melakukan penarikan pengiriman menggunakan perintah bash shell curl
untuk menerbitkan, menerima, dan mengakui peristiwa. Gunakan perintah Azure CLI untuk membuat sumber daya Azure Event Grid. Artikel ini cocok untuk pengujian cepat fungsi pengiriman pull.
Untuk kode sampel yang menggunakan SDK "data plane", lihat sumber daya berikut:
- .NET: Mengirim dan menerima pesan dari topik namespace Azure Event Grid (.NET)
- Java: Menerbitkan peristiwa ke topik namespace menggunakan Java
- Java: Terima event menggunakan pengiriman pull dengan Java
Untuk informasi selengkapnya tentang model pengiriman tarik, lihat konsep namespace Azure Event Grid dan penyerahan tarik dengan HTTP.
Jika Anda tidak memiliki akun Azure, buat akun gratis sebelum memulai.
Prasyarat
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai menggunakan Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah az login. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Mengautentikasi ke Azure menggunakan Azure CLI.
Saat diminta, instal ekstensi Azure CLI saat pertama kali digunakan. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan dan mengelola ekstensi dengan Azure CLI.
Jalankan az version untuk menemukan versi dan pustaka dependen yang terinstal. Untuk meng-upgrade ke versi terbaru, jalankan az upgrade.
- Artikel ini memerlukan Azure CLI versi 2.0.70 atau yang lebih baru. Jika Anda menggunakan Azure Cloud Shell, versi terbaru sudah diinstal.
Membuat grup sumber daya
Buat grup sumber daya Azure dengan perintah pembuatan grupaz. Gunakan grup sumber daya ini untuk memuat semua sumber daya yang Anda buat di artikel ini.
Langkah-langkah umum untuk menggunakan Cloud Shell untuk menjalankan perintah adalah:
- Pilih Buka Cloud Shell untuk melihat jendela Azure Cloud Shell di panel kanan.
- Salin perintah dan tempelkan ke jendela Azure Cloud Shell.
- Tekan ENTER untuk menjalankan perintah.
Deklarasikan variabel untuk menyimpan nama grup sumber daya Azure. Tentukan nama untuk grup sumber daya dengan mengganti
<your-resource-group-name>
dengan nilai Anda.resource_group="<your-resource-group-name>"
Buat grup sumber daya. Anda dapat mengubah lokasi ke lokasi Azure mana pun.
az group create --name $resource_group --location eastus
Aktifkan penyedia sumber daya Event Grid
Jika ini pertama kalinya Anda menggunakan Event Grid di langganan Azure, Anda mungkin perlu mendaftarkan penyedia sumber daya Event Grid. Jalankan perintah berikut untuk mendaftarkan penyedia:
az provider register --namespace Microsoft.EventGrid
Mungkin perlu beberapa saat agar pendaftaran selesai. Untuk memeriksa status, jalankan perintah berikut:
az provider show --namespace Microsoft.EventGrid --query "registrationState"
Saat
registrationState
adalahRegistered
, Anda siap untuk melanjutkan.
Buat namespace
Namespace Event Grid menyediakan titik akhir yang ditentukan pengguna tempat Anda mengirimkan peristiwa Anda. Contoh berikut membuat namespace di grup sumber daya Anda menggunakan Bash di Azure Cloud Shell. Nama namespace harus unik karena merupakan bagian dari entri Sistem Nama Domain (DNS). Nama namespace harus memenuhi aturan berikut:
- Harus antara 3-50 karakter.
- Ini harus unik secara regional.
- Hanya karakter yang diizinkan adalah: a-z, A-Z, 0-9, dan -
- Seharusnya tidak dimulai dengan awalan kata kunci yang dipesan seperti
Microsoft
,System
, atauEventGrid
.
Deklarasi variabel untuk menyimpan nama namespace Event Grid Anda. Tentukan nama untuk namespace dengan mengganti
<your-namespace-name>
dengan nilai Anda.namespace="<your-namespace-name>"
Buat kumpulan nama XML. Anda mungkin ingin mengubah lokasi tempat Anda menyebarkannya.
az eventgrid namespace create --resource-group $resource_group --name $namespace --location eastus
Membuat topik namespace layanan
Buat topik yang menyimpan semua acara yang diterbitkan ke titik akhir namespace.
Deklarasikan variabel untuk menyimpan nama untuk topik namespace Anda. Tentukan nama untuk topik namespace dengan mengganti
<your-topic-name>
dengan nilai Anda.topic="<your-topic-name>"
Buat topik namespace Anda:
az eventgrid namespace topic create --resource-group $resource_group --name $topic --namespace-name $namespace
Membuat langganan peristiwa
Buat langganan acara dengan mengatur mode pengirimannya ke antrean, yang mendukung pengiriman penarikan (pull delivery). Untuk informasi selengkapnya tentang semua opsi konfigurasi, lihat REST API Azure Event Grid.
Deklarasikan variabel untuk menyimpan nama langganan peristiwa ke topik namespace Anda. Tentukan nama untuk langganan peristiwa dengan mengganti
<your-event-subscription-name>
dengan nilai Anda.event_subscription="<your-event-subscription-name>"
Buat langganan peristiwa ke topik namespace:
az eventgrid namespace topic event-subscription create --resource-group $resource_group --topic-name $topic --name $event_subscription --namespace-name $namespace --delivery-configuration "{deliveryMode:Queue,queue:{receiveLockDurationInSeconds:300,maxDeliveryCount:4,eventTimeToLive:P1D}}"
Kirimkan peristiwa ke topik Anda
Kirim contoh peristiwa ke topik namespace dengan mengikuti langkah-langkah di bagian ini.
Mencantumkan kunci akses namespace
Dapatkan kunci akses yang terkait dengan namespace yang Anda buat. Anda memerlukan salah satunya untuk mengautentikasi saat menerbitkan peristiwa. Untuk mencantumkan kunci Anda, dapatkan ID sumber daya namespace lengkap. Jalankan perintah berikut:
namespace_resource_id=$(az eventgrid namespace show --resource-group $resource_group --name $namespace --query "id" --output tsv)
Dapatkan kunci pertama dari namespace:
key=$(az eventgrid namespace list-key --resource-group $resource_group --namespace-name $namespace --query "key1" --output tsv)
Menerbitkan peristiwa
Ambil nama host namespace. Anda menggunakannya untuk menyusun titik akhir HTTP namespace layanan tempat peristiwa dikirim. Operasi berikut pertama kali tersedia dengan versi
2023-06-01-preview
API .publish_operation_uri="https://"$(az eventgrid namespace show -g $resource_group -n $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic:publish?api-version=2023-06-01-preview
Buat contoh peristiwa yang sesuai dengan CloudEvents :
event=' { "specversion": "1.0", "id": "'"$RANDOM"'", "type": "com.yourcompany.order.ordercreatedV2", "source" : "/mycontext", "subject": "orders/O-234595", "time": "'`date +%Y-%m-%dT%H:%M:%SZ`'", "datacontenttype" : "application/json", "data":{ "orderId": "O-234595", "url": "https://yourcompany.com/orders/o-234595"}} '
Elemen
data
adalah payload acara Anda. Setiap JSON yang terbentuk dengan baik dapat masuk dalam bidang ini. Properti yang dapat masuk ke peristiwa juga dikenal sebagai atribut konteks. Untuk informasi selengkapnya, lihat CloudEvents.Gunakan CURL untuk mengirim peristiwa ke topik tersebut. CURL adalah utilitas yang mengirim permintaan HTTP.
curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uri
Menerima peristiwa
Anda menerima event dari Event Grid menggunakan endpoint yang mengacu pada langganan event.
Buat titik akhir dengan menjalankan perintah berikut:
receive_operation_uri="https://"$(az eventgrid namespace show --resource-group $resource_group --name $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic/eventsubscriptions/$event_subscription:receive?api-version=2023-06-01-preview
Kirim permintaan untuk memproses acara:
curl -X POST -H "Content-Type: application/json" -H "Authorization:SharedAccessKey $key" $receive_operation_uri
Mengakui peristiwa
Setelah menerima peristiwa, Anda meneruskan peristiwa tersebut ke aplikasi Anda untuk diproses. Setelah berhasil memproses acara, Anda tidak lagi memerlukan peristiwa tersebut untuk berada di langganan peristiwa Anda. Untuk menginstruksikan Event Grid untuk menghapus peristiwa, Anda mengonfirmasinya menggunakan token penguncian yang Anda dapatkan dari respons operasi penerimaan.
Di bagian sebelumnya, Anda menerima respons yang menyertakan objek
brokerProperties
dengan propertilockToken
. Salin nilai token kunci dan atur pada variabel lingkungan:lockToken="<paste-the-lock-token-here>"
Buat payload operasi pengakuan, yang menentukan token kunci untuk peristiwa yang ingin Anda akui.
acknowledge_request_payload=' { "lockTokens": ["'$lockToken'"]} '
Lanjutkan dengan membangun string dengan URI operasi pengakuan:
acknowledge_operation_uri="https://"$(az eventgrid namespace show -g $resource_group -n $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic/eventsubscriptions/$event_subscription:acknowledge?api-version=2023-06-01-preview
Terakhir, kirimkan permintaan untuk mengakui peristiwa yang diterima:
curl -X POST -H "Content-Type: application/json" -H "Authorization:SharedAccessKey $key" -d "$acknowledge_request_payload" $acknowledge_operation_uri
Jika operasi pengakuan dijalankan sebelum token kunci kedaluwarsa (300 detik sebagaimana diatur saat kami membuat langganan peristiwa), Anda akan melihat respons seperti contoh berikut:
{"succeededLockTokens":["CiYKJDQ4NjY5MDEyLTk1OTAtNDdENS1BODdCLUYyMDczNTYxNjcyMxISChDZae43pMpE8J8ovYMSQBZS"],"failedLockTokens":[]}
Langkah selanjutnya
Untuk mempelajari selengkapnya tentang model pengiriman pull, lihat Pengiriman Pull dengan HTTP.