Ruby’den Kuyruk depolama kullanmaHow to use Queue storage from Ruby

İpucu

Microsoft Azure Depolama Gezgini’ni deneyinTry the Microsoft Azure Storage Explorer

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.Microsoft Azure Storage Explorer is a free, standalone app from Microsoft that enables you to work visually with Azure Storage data on Windows, macOS, and Linux.

Genel BakışOverview

Bu kılavuzda, Microsoft Azure kuyruğu depolama hizmetini kullanarak yaygın senaryoların nasıl gerçekleştirileceği gösterilmektedir.This guide shows you how to perform common scenarios using the Microsoft Azure Queue Storage service. Örnekler, Ruby Azure API 'SI kullanılarak yazılır.The samples are written using the Ruby Azure API. Kapsanan senaryolar sıra iletilerini ekleme, göz atma, almave silme , Ayrıca kuyruk oluşturma ve silmeiçerir.The scenarios covered include inserting, peeking, getting, and deleting queue messages, as well as creating and deleting queues.

Kuyruk Depolama nedir?What is Queue Storage?

Azure Kuyruk depolama, HTTP veya HTTPS kullanan kimlik doğrulaması yapılmış çağrılar aracılığıyla dünyanın her yerinden erişilebilen çok sayıda iletinin depolanması için bir hizmettir.Azure Queue storage is a service for storing large numbers of messages that can be accessed from anywhere in the world via authenticated calls using HTTP or HTTPS. Tek bir kuyruk iletisinin boyutu 64 KB’ye kadar olabilir ve bir kuyrukta, depolama hesabının toplam kapasite sınırına kadar milyonlarca ileti bulunabilir.A single queue message can be up to 64 KB in size, and a queue can contain millions of messages, up to the total capacity limit of a storage account.

Kuyruk depolamanın yaygın kullanımları şunlardır:Common uses of Queue storage include:

  • Zaman uyumsuz olarak işlemek için kapsamı oluşturmaCreating a backlog of work to process asynchronously
  • İletileri Azure web rolünden Azure çalışan rolüne geçirmePassing messages from an Azure web role to an Azure worker role

Kuyruk Hizmeti KavramlarıQueue Service Concepts

Kuyruk hizmetinde şu bileşenler bulunur:The Queue service contains the following components:

Kuyruk1

  • URL biçimi: Kuyruklar şu URL biçimi kullanılarak adreslenebilir:URL format: Queues are addressable using the following URL format:
    http://<storage account>.queue.core.windows.net/<queue>http://<storage account>.queue.core.windows.net/<queue>

    Aşağıdaki URL diyagramdaki bir kuyruğun adresini belirtir:The following URL addresses a queue in the diagram:

    http://myaccount.queue.core.windows.net/images-to-download

  • Depolama hesabı: Tüm Azure depolama erişimi bir depolama hesabı üzerinden yapılır.Storage Account: All access to Azure Storage is done through a storage account. Depolama hesabı kapasitesi hakkında ayrıntılı bilgi için bkz. Azure Storage Ölçeklenebilirlik ve Performans Hedefleri.See Azure Storage Scalability and Performance Targets for details about storage account capacity.

  • Kuyruk: Bir kuyruk, bir dizi ileti içerir.Queue: A queue contains a set of messages. Tüm iletiler bir kuyrukta olmalıdır.All messages must be in a queue. Kuyruk adının tamamen küçük harfli olması gerektiğini unutmayın.Note that the queue name must be all lowercase. Kuyrukların adlandırılması hakkında daha fazla bilgi için bkz. Kuyrukları ve Meta Verileri Adlandırma.For information on naming queues, see Naming Queues and Metadata.

  • İleti: En fazla 64 KB'ın herhangi bir biçimdeki bir ileti.Message: A message, in any format, of up to 64 KB. Bir iletinin kuyrukta kalabileceği en uzun süre 7 gündür.The maximum time that a message can remain in the queue is 7 days.

Azure Storage hesabı oluşturmaCreate an Azure storage account

İlk Azure depolama hesabınızı oluşturmanın en kolay yolu Azure Portalı’nı kullanmaktır.The easiest way to create your first Azure storage account is by using the Azure portal. Daha fazla bilgi için bkz. Depolama hesabı oluşturma.To learn more, see Create a storage account.

Azure PowerShell, Azure CLI veya .NET için Azure Depolama Kaynak Sağlayıcısı’nı da kullanarak Azure depolama hesabı oluşturabilirsiniz.You can also create an Azure storage account by using Azure PowerShell, Azure CLI, or the Azure Storage Resource Provider for .NET.

Azure'da şu anda bir depolama hesabı oluşturmamayı tercih ederseniz ve yerel bir ortamda kodunuzu test çalıştırmak için Azure storage öykünücüsü de kullanabilirsiniz.If you prefer not to create a storage account in Azure at this time, you can also use the Azure storage emulator to run and test your code in a local environment. Daha fazla bilgi için bkz. Geliştirme ve Sınama için Azure Storage Öykünücüsünü Kullanma.For more information, see Use the Azure Storage Emulator for Development and Testing.

Ruby uygulaması oluşturmaCreate a Ruby Application

Ruby uygulaması oluşturun.Create a Ruby application. Yönergeler için bkz. Linux üzerinde App Service Ruby uygulaması oluşturma.For instructions, see Create a Ruby App in App Service on Linux.

Uygulamanızı depolamaya erişecek şekilde yapılandırmaConfigure Your Application to Access Storage

Azure Storage 'ı kullanmak için, depolama REST hizmetleriyle iletişim kuran bir dizi kullanışlı kitaplık içeren Ruby Azure paketini indirmeniz ve kullanmanız gerekir.To use Azure storage, you need to download and use the Ruby azure package, which includes a set of convenience libraries that communicate with the storage REST services.

Paketi edinmek için RubyGems kullanmaUse RubyGems to obtain the package

  1. PowerShell (Windows), Terminal (Mac) veya Bash (Unix) gibi bir komut satırı arabirimi kullanın.Use a command-line interface such as PowerShell (Windows), Terminal (Mac), or Bash (Unix).
  2. GED ve bağımlılıklarını yüklemek için komut penceresine "GEA Install Azure" yazın.Type "gem install azure" in the command window to install the gem and dependencies.

Paketi içeri aktarmaImport the package

En sevdiğiniz metin düzenleyiciyi kullanarak, depolamayı kullanmayı düşündüğünüz Ruby dosyasının en üstüne aşağıdakileri ekleyin:Use your favorite text editor, add the following to the top of the Ruby file where you intend to use storage:

require "azure"

Azure depolama bağlantısı kurmaSetup an Azure Storage Connection

Azure modülü, Azure depolama hesabına bağlanmak için gereken bilgiler için Azure _depolama_hesabı ve _Azure_Storage ACCESS_KEY ortam değişkenlerini okur.The azure module will read the environment variables AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_ACCESS_KEY for information required to connect to your Azure storage account. Bu ortam değişkenleri ayarlanmamışsa, aşağıdaki kodla Azure:: QueueService ' i kullanmadan önce hesap bilgilerini belirtmeniz gerekir:If these environment variables are not set, you must specify the account information before using Azure::QueueService with the following code:

Azure.config.storage_account_name = "<your azure storage account>"
Azure.config.storage_access_key = "<your Azure storage access key>"

Bu değerleri Azure portalında bir klasik veya Kaynak Yöneticisi depolama hesabından edinmek için:To obtain these values from a classic or Resource Manager storage account in the Azure portal:

  1. Azure Portal’da oturum açın.Log in to the Azure portal.
  2. Kullanmak istediğiniz depolama hesabına gidin.Navigate to the storage account you want to use.
  3. Sağdaki Ayarlar dikey penceresinde Erişim Anahtarları'na tıklayın.In the Settings blade on the right, click Access Keys.
  4. Açılan Erişim anahtarları dikey penceresinde, 1. ve 2. erişim anahtarını göreceksiniz.In the Access keys blade that appears, you'll see the access key 1 and access key 2. Bunlardan birini kullanabilirsiniz.You can use either of these.
  5. Anahtarı panoya kopyalamak için Kopyala simgesine tıklayın.Click the copy icon to copy the key to the clipboard.

Nasıl Yapılır: Sıra oluşturmaHow To: Create a Queue

Aşağıdaki kod, kuyruklarla çalışmanıza olanak sağlayan bir Azure:: QueueService nesnesi oluşturur.The following code creates a Azure::QueueService object, which enables you to work with queues.

azure_queue_service = Azure::QueueService.new

Belirtilen ada sahip bir sıra oluşturmak için create_queue () metodunu kullanın.Use the create_queue() method to create a queue with the specified name.

begin
  azure_queue_service.create_queue("test-queue")
rescue
  puts $!
end

Nasıl Yapılır: Bir kuyruğa Ileti eklemeHow To: Insert a Message into a Queue

Bir kuyruğa ileti eklemek için, CREATE_MESSAGE () yöntemini kullanarak yeni bir ileti oluşturun ve kuyruğa ekleyin.To insert a message into a queue, use the create_message() method to create a new message and add it to the queue.

azure_queue_service.create_message("test-queue", "test message")

Nasıl Yapılır: Sonraki Iletiye göz atınHow To: Peek at the Next Message

İletileri göz at_() yöntemini çağırarak sıradan kaldırmadan bir kuyruğun önündeki iletiye göz atmayı sağlayabilirsiniz.You can peek at the message in the front of a queue without removing it from the queue by calling the peek_messages() method. Varsayılan olarak, iletilere_göz atın () tek bir iletiye göz atar.By default, peek_messages() peeks at a single message. Ayrıca, kaç tane ileti göz atmayı istediğinizi de belirtebilirsiniz.You can also specify how many messages you want to peek.

result = azure_queue_service.peek_messages("test-queue",
  {:number_of_messages => 10})

Nasıl Yapılır: Sonraki Iletiyi sıradan çıkarmaHow To: Dequeue the Next Message

İki adımda kuyruktan bir ileti kaldırabilirsiniz.You can remove a message from a queue in two steps.

  1. Liste_iletilerini () çağırdığınızda, bir sıradaki bir sonraki iletiyi varsayılan olarak alırsınız.When you call list_messages(), you get the next message in a queue by default. Ayrıca, kaç tane ileti almak istediğinizi de belirtebilirsiniz.You can also specify how many messages you want to get. Liste_iletilerinden () döndürülen iletiler, bu kuyruktan gelen diğer kod okuma iletileri için görünmez hale gelir.The messages returned from list_messages() becomes invisible to any other code reading messages from this queue. Görünürlük zaman aşımını bir parametre olarak Saniyeler içinde geçitirsiniz.You pass in the visibility timeout in seconds as a parameter.
  2. İletiyi kuyruktan kaldırma işleminin tamamlanabilmesi için, delete_message () öğesini de çağırmanız gerekir.To finish removing the message from the queue, you must also call delete_message().

Bir iletiyi kaldırmanın bu iki adımlı işlemi, kodunuz, donanım veya yazılım arızasından kaynaklanan bir iletiyi işleyemediğinde, kodunuzun başka bir örneğinin aynı mesajı almasını ve yeniden denemesini sağlar.This two-step process of removing a message assures that when your code fails to process a message due to hardware or software failure, another instance of your code can get the same message and try again. Kodunuz, ileti işlendikten hemen sonra silme_iletisini () çağırır.Your code calls delete_message() right after the message has been processed.

messages = azure_queue_service.list_messages("test-queue", 30)
azure_queue_service.delete_message("test-queue", 
  messages[0].id, messages[0].pop_receipt)

Nasıl Yapılır: Sıraya alınan Iletinin Içeriğini değiştirmeHow To: Change the Contents of a Queued Message

Kuyrukta yer alan bir iletinin içeriğini değiştirebilirsiniz.You can change the contents of a message in-place in the queue. Aşağıdaki kod, bir iletiyi güncelleştirmek için update_message () yöntemini kullanır.The code below uses the update_message() method to update a message. Yöntemi, kuyruk iletisinin pop alındığını ve iletinin kuyrukta görünür olacağını temsil eden UTC Tarih saat değerini içeren bir tanımlama grubu döndürür.The method will return a tuple which contains the pop receipt of the queue message and a UTC date time value that represents when the message will be visible on the queue.

message = azure_queue_service.list_messages("test-queue", 30)
pop_receipt, time_next_visible = azure_queue_service.update_message(
  "test-queue", message.id, message.pop_receipt, "updated test message", 
  30)

Nasıl Yapılır: Dequeuing Iletileri için ek seçeneklerHow To: Additional Options for Dequeuing Messages

İletilerin bir kuyruktan alınma şeklini iki yöntemle özelleştirebilirsiniz.There are two ways you can customize message retrieval from a queue.

  1. Toplu bir ileti alabilirsiniz.You can get a batch of message.
  2. Daha uzun veya daha kısa görünürlük zaman aşımı ayarlayabilir, böylece her iletiyi tamamen işlemek için kodunuzun daha fazla veya daha az zaman aşımına uğramamasını sağlayabilirsiniz.You can set a longer or shorter invisibility timeout, allowing your code more or less time to fully process each message.

Aşağıdaki kod örneği, bir çağrıda 15 ileti almak için List_Messages () yöntemini kullanır.The following code example uses the list_messages() method to get 15 messages in one call. Ardından her iletiyi yazdırır ve siler.Then it prints and deletes each message. Ayrıca her ileti için görünmezlik zaman aşımı beş dakika olarak ayarlanır.It also sets the invisibility timeout to five minutes for each message.

azure_queue_service.list_messages("test-queue", 300
  {:number_of_messages => 15}).each do |m|
  puts m.message_text
  azure_queue_service.delete_message("test-queue", m.id, m.pop_receipt)
end

Nasıl Yapılır: Sıra uzunluğunu alHow To: Get the Queue Length

Kuyruktaki ileti sayısını tahmin edebilirsiniz.You can get an estimation of the number of messages in the queue. Alma_kuyruğu_meta verileri () yöntemi, kuyruk hizmetinden sıraya ilişkin yaklaşık ileti sayısını ve meta verileri döndürmesini ister.The get_queue_metadata() method asks the queue service to return the approximate message count and metadata about the queue.

message_count, metadata = azure_queue_service.get_queue_metadata(
  "test-queue")

Nasıl Yapılır: Kuyruğu silmeHow To: Delete a Queue

Bir kuyruğu ve içerdiği tüm iletileri silmek için, kuyruk nesnesi üzerindeki Delete_Queue () yöntemini çağırın.To delete a queue and all the messages contained in it, call the delete_queue() method on the queue object.

azure_queue_service.delete_queue("test-queue")

Sonraki AdımlarNext Steps

Sıra depolamanın temellerini öğrendiğinize göre, daha karmaşık depolama görevleri hakkında bilgi edinmek için bu bağlantıları izleyin.Now that you've learned the basics of queue storage, follow these links to learn about more complex storage tasks.

Bu makalede ele alınan Azure kuyruğu hizmeti ve Service Bus kuyrukları kullanma makalesinde açıklanan kuyruklar Azure Service Bus bir karşılaştırma için bkz. azure kuyrukları ve Service Bus kuyrukları-karşılaştırılan ve benzerliklerFor a comparison between the Azure Queue Service discussed in this article and Azure Service Bus Queues discussed in the How to use Service Bus Queues article, see Azure Queues and Service Bus Queues - Compared and Contrasted