PowerShell 'den Azure kuyruğu Depolama kullanma
Azure kuyruğu Depolama, dünyanın herhangi bir yerinden HTTP veya HTTPS aracılığıyla erişilebilen çok sayıda iletiyi depolamaya yönelik bir hizmettir. ayrıntılı bilgi için bkz. Azure kuyruğu 'na giriş Depolama. bu nasıl yapılır makalesi genel sıra Depolama işlemlerini içerir. Aşağıdakileri nasıl yapacağınızı öğrenirsiniz:
- Bir kuyruk oluşturma
- Kuyruğu alma
- İleti ekleme
- İletiyi oku
- İleti silme
- Bir kuyruk silme
bu nasıl yapılır kılavuzu, Azure PowerShell ( Az ) modülü v 0.7 veya üstünü gerektirir. Get-Module -ListAvailable AzYüklü olan sürümü bulmak için ' i çalıştırın. Yükseltmeniz gerekirse, bkz. Azure PowerShell modülünü yükleme.
Kuyruklar için veri düzlemi için PowerShell cmdlet 'leri yok. İleti ekleme, ileti okuma ve iletiyi silme gibi veri düzlemi işlemlerini gerçekleştirmek için, PowerShell 'de açığa çıkarılan .NET depolama istemci kitaplığını kullanmanız gerekir. Bir ileti nesnesi oluşturup, AddMessage Bu ileti üzerinde işlem gerçekleştirmek için gibi komutları kullanabilirsiniz. Bu makalede bunun nasıl yapılacağı gösterilmektedir.
Not
Bu makalede, Azure ile etkileşim kurmak için önerilen PowerShell modülü olan Azure Az PowerShell modülü kullanılır. Az PowerShell modülünü kullanmaya başlamak için Azure PowerShell’i yükleyin. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.
Azure'da oturum açma
Connect-AzAccount komutuyla Azure aboneliğinizde oturum açın ve ekrandaki yönergeleri izleyin.
Connect-AzAccount
Konumların listesini al
Kullanmak istediğiniz konumdan emin değilseniz, kullanılabilir konumları listeleyebilirsiniz. Liste görüntülendikten sonra, kullanmak istediğiniz öğeyi bulun. Bu alıştırma, kullanacaktır eastus . Bunu location daha sonra kullanmak üzere değişkende depolayın.
Get-AzLocation | Select-Object Location
$location = "eastus"
Kaynak grubu oluşturma
New-AzResourceGroup komutuyla bir kaynak grubu oluşturun.
Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. Kaynak grubu adını ileride kullanılmak üzere bir değişkende depolayın. Bu örnekte, eastusbölgesinde howtoqueuesrg adlı bir kaynak grubu oluşturulur.
$resourceGroup = "howtoqueuesrg"
New-AzResourceGroup -ResourceGroupName $resourceGroup -Location $location
Depolama hesabı oluştur
New-AzStorageAccountkullanarak yerel olarak yedekli depolama (LRS) ile standart bir genel amaçlı depolama hesabı oluşturun. Kullanılacak depolama hesabını tanımlayan depolama hesabı bağlamını alın. Depolama hesabında bir işlem gerçekleştirirken, kimlik bilgilerini tekrar tekrar sağlamak yerine bağlama başvurursunuz.
$storageAccountName = "howtoqueuestorage"
$storageAccount = New-AzStorageAccount -ResourceGroupName $resourceGroup `
-Name $storageAccountName `
-Location $location `
-SkuName Standard_LRS
$ctx = $storageAccount.Context
Bir kuyruk oluşturma
aşağıdaki örnek, depolama hesabı adını ve erişim anahtarını içeren depolama hesabı bağlamını kullanarak Azure Depolama bir bağlantı kurar. Ardından, adlı bir kuyruk oluşturmak için New-AzStorageQueue cmdlet 'ini çağırır howtoqueue .
$queueName = "howtoqueue"
$queue = New-AzStorageQueue –Name $queueName -Context $ctx
Azure kuyruğu Depolama için adlandırma kuralları hakkında daha fazla bilgi için bkz. adlandırma sıraları ve meta verileri.
Kuyruğu alma
Belirli bir kuyruğu sorgulayabilir ve alabilir ve bir depolama hesabındaki tüm kuyrukların listesini alabilirsiniz. Aşağıdaki örneklerde, depolama hesabındaki tüm sıraların ve belirli bir sıranın nasıl alınacağını gösterilmektedir. Her iki komut de Get-AzStorageQueue cmdlet 'ini kullanır.
# Retrieve a specific queue
$queue = Get-AzStorageQueue –Name $queueName –Context $ctx
# Show the properties of the queue
$queue
# Retrieve all queues and show their names
Get-AzStorageQueue -Context $ctx | Select-Object Name
Kuyruğa ileti ekleme
Kuyruktaki gerçek iletileri etkileyen işlemler, PowerShell 'de kullanıma sunulan .NET depolama istemci kitaplığını kullanır. Bir kuyruğa ileti eklemek için ileti nesnesinin, sınıfının yeni bir örneğini oluşturun Microsoft.Azure.Storage.Queue.CloudQueueMessage . Sonra, yöntemini çağırın AddMessage . Bir CloudQueueMessage dizeden (UTF-8 biçiminde) ya da bir bayt dizisinden oluşturulabilir.
Aşağıdaki örnek, kuyruğunuza nasıl bir ileti ekleneceğini gösterir.
# Create a new message using a constructor of the CloudQueueMessage class
$queueMessage = [Microsoft.Azure.Storage.Queue.CloudQueueMessage]::new("This is message 1")
# Add a new message to the queue
$queue.CloudQueue.AddMessageAsync($QueueMessage)
# Add two more messages to the queue
$queueMessage = [Microsoft.Azure.Storage.Queue.CloudQueueMessage]::new("This is message 2")
$queue.CloudQueue.AddMessageAsync($QueueMessage)
$queueMessage = [Microsoft.Azure.Storage.Queue.CloudQueueMessage]::new("This is message 3")
$queue.CloudQueue.AddMessageAsync($QueueMessage)
Azure Depolama Gezginikullanıyorsanız, Azure hesabınıza bağlanabilir ve depolama hesabındaki kuyrukları görüntüleyebilir ve sıradaki iletileri görüntülemek için bir kuyruğun detayına gidebilirsiniz.
Kuyruktaki bir iletiyi okuyun ve silin
İletiler en iyi deneme-ilk çıkar sırasına göre okundu. Bu garanti edilmez. İletiyi kuyruktan okuduğunuzda, kuyruğa bakıyor diğer tüm işlemlerin görünmez hale gelir. Bu, bir donanım veya yazılım arızası nedeniyle kodunuzun iletiyi işleyememesi durumunda, kodunuzun başka bir örneğinin aynı mesajı almasını ve yeniden denemesini sağlar.
Bu geçersiz zaman aşımı , iletinin işlenmek üzere yeniden kullanılabilmesi için önce ne kadar süreyle görünmez kalabileceğini tanımlar. Varsayılan değer 30 saniyedir.
Kodunuz, sıradaki bir iletiyi iki adımda okur. Yöntemini çağırdığınızda sıradaki bir Microsoft.Azure.Storage.Queue.CloudQueue.GetMessage sonraki iletiyi alırsınız. Öğesinden döndürülen bir ileti, GetMessage Bu kuyruktan gelen diğer kod okuma iletileri için görünmez hale gelir. İletiyi kuyruktan kaldırmayı tamamlaması için Microsoft.Azure.Storage.Queue.CloudQueue.DeleteMessage yöntemini çağırın.
Aşağıdaki örnekte, üç kuyruk iletisini okuyun ve ardından 10 saniye (geçersiz zaman aşımı) bekleyin. Daha sonra, bu üç iletiyi yeniden okuyarak iletileri çağırarak iletileri silin DeleteMessage . İletiler silindikten sonra kuyruğu okumaya çalışırsanız, $queueMessage olarak döndürülür $null .
# 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
$invisibleTimeout = [System.TimeSpan]::FromSeconds(10)
# Read the message from the queue, then show the contents of the message. Read the other two messages, too.
$queueMessage = $queue.CloudQueue.GetMessageAsync($invisibleTimeout,$null,$null)
$queueMessage.Result
$queueMessage = $queue.CloudQueue.GetMessageAsync($invisibleTimeout,$null,$null)
$queueMessage.Result
$queueMessage = $queue.CloudQueue.GetMessageAsync($invisibleTimeout,$null,$null)
$queueMessage.Result
# After 10 seconds, these messages reappear on the queue.
# Read them again, but delete each one after reading it.
# Delete the message.
$queueMessage = $queue.CloudQueue.GetMessageAsync($invisibleTimeout,$null,$null)
$queueMessage.Result
$queue.CloudQueue.DeleteMessageAsync($queueMessage.Result.Id,$queueMessage.Result.popReceipt)
$queueMessage = $queue.CloudQueue.GetMessageAsync($invisibleTimeout,$null,$null)
$queueMessage.Result
$queue.CloudQueue.DeleteMessageAsync($queueMessage.Result.Id,$queueMessage.Result.popReceipt)
$queueMessage = $queue.CloudQueue.GetMessageAsync($invisibleTimeout,$null,$null)
$queueMessage.Result
$queue.CloudQueue.DeleteMessageAsync($queueMessage.Result.Id,$queueMessage.Result.popReceipt)
Bir kuyruk silme
Bir kuyruğu ve içerdiği tüm iletileri silmek için Remove-AzStorageQueue cmdlet 'ini çağırın. Aşağıdaki örnek, cmdlet 'ini kullanarak Bu alıştırmada kullanılan sıranın nasıl silineceğini gösterir Remove-AzStorageQueue .
# Delete the queue
Remove-AzStorageQueue –Name $queueName –Context $ctx
Kaynakları temizleme
Bu alıştırmada oluşturduğunuz tüm varlıkları kaldırmak için kaynak grubunu kaldırın. Bu, ayrıca grubun içerdiği tüm kaynakları da siler. Bu durumda, oluşturulan depolama hesabı ve kaynak grubunun kendisi kaldırılır.
Remove-AzResourceGroup -Name $resourceGroup
Sonraki adımlar
bu nasıl yapılır makalesinde, aşağıdakiler dahil olmak üzere PowerShell ile temel sıra Depolama yönetimi hakkında bilgi edindiniz:
- Bir kuyruk oluşturma
- Kuyruğu alma
- İleti ekleme
- Sonraki iletiyi okuyun
- İleti silme
- Bir kuyruk silme
Microsoft Azure PowerShell storage cmdlet 'leri
Microsoft Azure Depolama Gezgini
- Microsoft Azure Depolama Gezgini, Microsoft’un Windows, macOS ve Linux üzerinde Azure Depolama verileriyle görsel olarak çalışmanızı sağlayan ücretsiz ve tek başına uygulamasıdır.