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.