Cara menggunakan Azure Queue Storage dari PowerShell
Azure Queue Storage adalah layanan untuk menyimpan sejumlah besar pesan yang dapat diakses dari mana saja di dunia melalui HTTP atau HTTPS. Untuk informasi selengkapnya, lihat Pengenalan Azure Queue Storage. Artikel panduan ini mencakup operasi Azure Queue Storage yang umum. Anda akan mempelajari cara untuk:
- Membuat antrean
- Mengambil antrean
- Menambahkan pesan
- Mengambil pesan
- Menghapus pesan
- Menghapus antrean
Panduan cara penggunaan ini memerlukan modul Azure PowerShell (Az
) v12.0.0. Jalankan Get-Module -ListAvailable Az
untuk menemukan versi yang terinstal saat ini. Jika Anda perlu peningkatan, lihat Instal modul Azure PowerShell.
Tidak ada cmdlet PowerShell untuk data plane untuk antrean. Untuk melakukan operasi data plane seperti menambahkan pesan, membaca pesan, dan menghapus pesan, Anda harus menggunakan pustaka klien penyimpanan .NET seperti yang diekspos di PowerShell. Anda membuat objek pesan lalu Anda bisa menggunakan perintah seperti AddMessage
untuk melakukan operasi pada pesan tersebut. Artikel ini memperlihatkan kepada Anda cara melakukannya.
Catatan
Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Untuk memulai, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.
Masuk ke Azure
Masuk ke langganan Azure Anda dengan perintah Connect-AzAccount
dan ikuti petunjuk pada layar. Jika diperlukan, Anda dapat menentukan langganan dengan menambahkan TenantId
parameter dan Subscription
, dan menyertakan nilai masing-masing.
Connect-AzAccount
Mengambil daftar lokasi
Jika Anda tidak tahu lokasi mana yang ingin Anda gunakan, Anda dapat mencantumkan lokasi yang tersedia menggunakan Get-AzLocation
cmdlet seperti yang ditunjukkan dalam contoh yang disediakan. Setelah daftar ditampilkan, pilih lokasi dan simpan dalam variabel untuk digunakan di location
masa mendatang. Contoh dalam latihan ini menggunakan eastus
lokasi.
Get-AzLocation | Select-Object Location
$location = "eastus"
Buat grup sumber daya
Grup sumber daya Azure adalah kontainer logis tempat sumber daya Azure disebarkan dan dikelola. Pilih nama untuk grup sumber daya Anda dan simpan dalam variabel untuk digunakan di resourceGroup
masa mendatang. Contoh ini menggunakan nama howtoqueuesrg
.
Buat grup sumber daya dengan memanggil cmdlet New-AzResourceGroup dan berikan nama dan lokasi ke parameter seperti yang ditunjukkan ResourceGroupName
.
$resourceGroup = "howtoqueuesrg"
New-AzResourceGroup -ResourceGroupName $resourceGroup -Location $location
Buat akun penyimpanan
Akun penyimpanan Azure adalah sumber daya bernama unik yang berisi semua objek data Anda sebagai blob, file, antrean, dan tabel.
Pilih nama untuk akun penyimpanan Anda dan simpan dalam variabel untuk digunakan di storageAccountName
masa mendatang. Contoh ini menggunakan nama howtoqueuestorage
.
Selanjutnya, buat akun penyimpanan tujuan umum standar dengan penyimpanan redundan lokal (LRS) menggunakan cmdlet New-AzStorageAccount . Terakhir, atur konteks akun penyimpanan yang menentukan akun penyimpanan, simpan ke ctx
variabel. Mereferensikan konteks dengan variabel memungkinkan Anda melakukan operasi terhadap akun penyimpanan tanpa berulang kali memberikan kredensial.
$storageAccountName = "howtoqueuestorage"
$storageAccount = New-AzStorageAccount -ResourceGroupName $resourceGroup `
-Name $storageAccountName `
-Location $location `
-SkuName Standard_LRS
$ctx = $storageAccount.Context
Membuat antrean
Pertama, pilih nama untuk akun penyimpanan Anda dan simpan dalam queueName
variabel . Contoh ini menggunakan nama howtoqueuestorage
. Selanjutnya, buat antrean menggunakan cmdlet New-AzStorageQueue dan teruskan queueName
variabel dan ctx
ke parameter dan Context
seperti yang ditunjukkanName
.
$queueName = "howtoqueue"
$queue = New-AzStorageQueue -Name $queueName -Context $ctx
Untuk informasi tentang konvensi penamaan untuk Azure Queue Storage, lihat Penamaan antrean dan metadata.
Mengambil antrean
Anda dapat menggunakan cmdlet Get-AzStorageQueue untuk mengambil antrean tertentu, atau daftar semua antrean dalam akun penyimpanan. Contoh berikut menunjukkan cara mengambil semua antrean dengan menggunakan Get-AzStorageQueue
cmdlet, dan cara menentukan antrean dengan menggunakan Name
parameter.
# Retrieve all queues and show their names
Get-AzStorageQueue -Context $ctx | Select-Object Name
# Retrieve a specific queue
$queue = Get-AzStorageQueue -Name $queueName -Context $ctx
# Show the properties of the queue
$queue
Tambahkan pesan ke antrean
Operasi yang memengaruhi pesan dalam antrean menggunakan pustaka klien penyimpanan .NET seperti yang diekspos di PowerShell. Untuk menambahkan pesan ke antrean, teruskan pesan Anda sebagai string ke QueueClient
metode kelas SendMessage
.
String pesan Anda harus dalam format UTF-8.
Contoh berikut menunjukkan cara menambahkan pesan ke antrean Anda.
# Create a new message using a constructor of the CloudQueueMessage class
$queueMessage = "This is message 1"
# Add a new message to the queue
$queue.QueueClient.AddMessageAsync($queueMessage)
# Add two more messages to the queue
$queueMessages = @("This is message 2","This is message 3")
$queueMessages | foreach {$queue.QueueClient.AddMessageAsync($_)}
Jika Anda menggunakan Azure Storage Explorer, Anda bisa menyambungkan ke akun Azure Anda dan melihat antrean di akun penyimpanan, dan menelusuri paling detail ke dalam antrean untuk melihat pesan pada antrean.
Mengambil pesan dari antrean
Meskipun tidak selalu dijamin, pesan diambil dari antrean dalam urutan best-try, first-in-first-out .
Bergantung pada kasus penggunaan, Anda dapat mengambil satu atau beberapa pesan dari antrean. Anda juga dapat mengubah visibilitas pesan, baik mengizinkan atau mencegah proses lain mengakses pesan yang sama.
Ada dua cara untuk mengambil pesan dari antrean:
- Terima: Mengambil pesan menggunakan
Receive
menghapus antrean pesan dan menaikkan propertinyaDequeueCount
. Kecuali pesan dihapus, pesan akan dimasukkan kembali dalam antrean untuk diproses lagi. - Intip: Mengambil pesan menggunakan
Peek
memungkinkan Anda untuk "pratinjau" pesan dari antrean.Peek
tidak menghapus antrean pesan atau menaikkan propertinyaDequeueCount
.
Terima pesan
Saat Anda membaca pesan dari antrean menggunakan metode seperti ReceiveMessage
, pesan untuk sementara dihentikan dan menjadi tidak terlihat sementara oleh proses lain. Batas waktu visibilitas ini menentukan berapa lama pesan tetap tidak terlihat. Batas waktu visibilitas default adalah 30 detik.
Jika pesan tidak diproses sebelum batas waktu visibilitas berlalu, propertinya DequeueCount
akan dinaikkan dan diinserksi ulang di akhir antrean. Memasukkan ulang pesan yang sama memastikan bahwa proses lain dapat mengambil pesan yang sama dan mencoba lagi.
Contoh berikut mengatur variabel invisibleTimeout menjadi 10 detik, lalu membaca dua pesan dari antrean.
# Set the amount of time you want to entry to be invisible after read from the queue
# If it is not deleted by the end of this time, it will show up in the queue again
$visibilityTimeout = [System.TimeSpan]::FromSeconds(10)
# Read the message from the queue, then show the contents of the message.
# Read the next message, too.
$queueMessage = $queue.QueueClient.ReceiveMessage($visibilityTimeout)
$queueMessage.Value
$queueMessage = $queue.QueueClient.ReceiveMessage($visibilityTimeout)
$queueMessage.Value
Anda dapat mengambil beberapa pesan dari antrean secara bersamaan dengan menggunakan ReceiveMessages
metode dan meneruskan dan nilai bilangan bulat untuk menentukan jumlah maksimum pesan yang akan dikembalikan.
# Set the amount of time you want to entry to be invisible after read from the queue
# If it is not deleted by the end of this time, it will show up in the queue again
$visibilityTimeout = [System.TimeSpan]::FromSeconds(10)
# Read the messages from the queue, then show the contents of the messages.
$queueMessage = $queue.QueueClient.ReceiveMessages(5,$visibilityTimeout)
$queueMessage.Value
Intip pesan
Untuk kasus penggunaan yang mungkin melibatkan antrean bersama atau mempratinjau pesan tanpa mengubah visibilitasnya, Anda dapat menggunakan PeekMessage
metode dan PeekMessages
. Seperti contoh sebelumnya ReceiveMessages
, beberapa pesan dapat diintip secara bersamaan dengan meneruskan nilai bilangan bulat untuk menentukan jumlah maksimum pesan.
Contoh berikut menggunakan PeekMessage
metode dan PeekMessages
untuk mengambil pesan dari antrean.
# Read the message from the queue, then show the contents of the message.
$queueMessage = $queue.QueueClient.PeekMessage()
$queueMessage.Value
# Read the next four messages, then show the contents of the messages.
$queueMessage = $queue.QueueClient.PeekMessages(4)
$queueMessage.Value
Hapus pesan dari antrean
Untuk mencegah penghapusan yang MessageId
tidak disengaja, properti dan PopReceipt
harus disediakan sebelum menghapus pesan secara permanen. Karena persyaratan ini, paling mudah untuk menghapus pesan menggunakan proses dua langkah.
Pertama, ambil pesan berikutnya dalam antrean dengan memanggil ReceiveMessage
metode atau ReceiveMessages
. Untuk menyelesaikan penghapusan pesan dari antrean, teruskan nilai yang diperoleh dari pesan ke DeleteMessage
metode .
Proses ini diilustrasikan dalam contoh berikut.
# Set the amount of time you want to entry to be invisible after read from the queue
# If it is not deleted by the end of this time, it will show up in the queue again
$visibilityTimeout = [System.TimeSpan]::FromSeconds(10)
# Receive one message from the queue, then delete the message.
$queueMessage = $queue.QueueClient.ReceiveMessage($visibilityTimeout)
$queue.QueueClient.DeleteMessage($queueMessage.Value.MessageId, $queueMessage.Value.PopReceipt)
# Receive four message from the queue, then delete the messages.
$queueMessage = $queue.QueueClient.ReceiveMessages(4,$visibilityTimeout)
$queueMessage.Value | foreach { $queue.QueueClient.DeleteMessage($_.MessageId, $_.PopReceipt)}
Menghapus antrean
Untuk menghapus antrean dan semua pesan yang terkandung di dalamnya, panggil QueueClient
metode kelas Delete
. Contoh berikut menunjukkan cara menghapus antrean tertentu yang digunakan dalam latihan ini.
# Delete the queue
Remove-AzStorageQueue -Name $queueName -Context $ctx
Membersihkan sumber daya
Hapus grup sumber daya untuk menghapus aset dan sumber daya yang dibuat dalam latihan ini. Dalam hal ini, akun penyimpanan dan grup sumber daya itu sendiri juga dihapus.
Remove-AzResourceGroup -Name $resourceGroup
Langkah berikutnya
Dalam artikel panduan ini, Anda mempelajari tentang manajemen Azure Queue Storage dasar dengan PowerShell, termasuk cara:
- Membuat antrean
- Mengambil antrean
- Menambahkan pesan
- Membaca pesan
- Menghapus pesan
- Menghapus antrean
Cmdlet penyimpanan Microsoft Azure PowerShell
Penjelajah Penyimpanan Microsoft Azure
- Explorer Microsoft Azure Storage adalah aplikasi mandiri gratis dari Microsoft yang memungkinkan Anda bekerja secara visual dengan data Azure Storage di Windows, macOS, dan Linux.