Trong bài viết này, mình sẽ hướng dẫn các bạn cách push 1 message lên Azure Queue storage và dùng WebJob để nhận message từ Azure Queue storage.
Azure Queue storage là 1 một dịch vụ cho phép lưu trữ nhiều message thông qua http or https đã được xác thực. 1 hàng đợi (queue) tin nhắn có dung lượng lên tới 64 KB, tức là có thể chứa hàng triệu message.
Bạn cần có Azure Storage Explorer để quản lý data. Download tại:
https://azure.microsoft.com/en-us/features/storage-explorer/
Nếu bạn chưa có Azure storage account, thì bạn nên đăng ký: New -> Storage -> Storage account – blob, file, table, queue.
Blobs được dùng để lưu trữ file. Tables được dùng để chứa dữ liệu, và Queues được dùng để chứa message. Trong bài viết này, chúng ta sẽ sử dụng Queue service.
Bạn điền thông tin như hình sau:
Sau đó bấm nút Create.
Để tìm connection string của tài khoản Azure Storage, bạn chọn Access keys trên trang storage account của bạn.
Connection string sẽ có cấu trúc:
Sau đó bạn cần cài đặt 2 package:
Bây giờ chúng ta viết 1 chương trình để nhận message đã được đẩy lên Azure Queue Storage
Bạn mở file Function.cs, sửa lại tên queue name giống như tên bạn định nghĩa trong project MessageGenerator. Trong ví dụ này, chúng ta sử dụng tên “nhatkyhoctap”.
Mở file App.config và thêm thông tin về AzureWebJobsDashboard và AzureWebJobsStorage.
Bạn sẽ thấy kết quả:
Publish Project lên Azure. Kiểm tra lại Logs, bạn sẽ thấy thông báo:
Azure Queue storage
Azure Queue storage là 1 một dịch vụ cho phép lưu trữ nhiều message thông qua http or https đã được xác thực. 1 hàng đợi (queue) tin nhắn có dung lượng lên tới 64 KB, tức là có thể chứa hàng triệu message.
Bạn cần có Azure Storage Explorer để quản lý data. Download tại:
https://azure.microsoft.com/en-us/features/storage-explorer/
Nếu bạn chưa có Azure storage account, thì bạn nên đăng ký: New -> Storage -> Storage account – blob, file, table, queue.
Blobs được dùng để lưu trữ file. Tables được dùng để chứa dữ liệu, và Queues được dùng để chứa message. Trong bài viết này, chúng ta sẽ sử dụng Queue service.
Bạn điền thông tin như hình sau:
Sau đó bấm nút Create.
ConnectionString
Để tìm connection string của tài khoản Azure Storage, bạn chọn Access keys trên trang storage account của bạn.
Connection string sẽ có cấu trúc:
DefaultEndpointsProtocol=https;AccountName=<account-name>;AccountKey=<account-key>EndpointSuffix=core.windows.net;
Example
Tạo project Console Application tên QueueMessageGeneratorSau đó bạn cần cài đặt 2 package:
- WindowsAzure.Storage
- Microsoft.WindowsAzure.ConfigurationManager
// Create queue
// Retrieve storage account from connection string.
var storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));
// Create the queue client.
var queueClient = storageAccount.CreateCloudQueueClient();
// Retrieve a reference to a container.
var queue = queueClient.GetQueueReference("nhatkyhoctap");
// Create the queue if it doesn't already exist
queue.CreateIfNotExists();
// Create queue
var message = new CloudQueueMessage("Hey, do this job for me :)");
queue.AddMessage(message);
// Peek at the next message
var peekedMessage = queue.PeekMessage();
// Display message. Make sure message is added into queue.
Console.WriteLine(peekedMessage.AsString);
Sau khi chạy chương trình, bạn mở Microsoft Azure Storage Explorer để kiểm tra kết quả:
Bây giờ chúng ta viết 1 chương trình để nhận message đã được đẩy lên Azure Queue Storage
Bạn mở file Function.cs, sửa lại tên queue name giống như tên bạn định nghĩa trong project MessageGenerator. Trong ví dụ này, chúng ta sử dụng tên “nhatkyhoctap”.
// This function will get triggered/executed when a new message is written
// on an Azure Queue called queue.
public static void ProcessQueueMessage([QueueTrigger("nhatkyhoctap")] string message, TextWriter log)
{
log.WriteLine(message);
}
Mở file Program.cs, bạn chú ý dòng comment.
Mở file App.config và thêm thông tin về AzureWebJobsDashboard và AzureWebJobsStorage.
<add name=”AzureWebJobsStorage” connectionString=”DefaultEndpointsProtocol=https;AccountName=appservicesstoragedev;AccountKey=<key>” />
” />
Chạy chương trình ở chế độ debug:
Bạn sẽ thấy kết quả:
Publish Project lên Azure. Kiểm tra lại Logs, bạn sẽ thấy thông báo:
The configuration is not properly set for the Microsoft Azure WebJobs Dashboard.Để khắc phục, bạn mở WebApp có chứa WebJob mà bạn vừa sử dụng để upload ứng dụng, chọn Application settings, và thêm những key sau:
In your Microsoft Azure Website configuration you must set a connection string named AzureWebJobsDashboard by using the following format DefaultEndpointsProtocol=https;AccountName=NAME;AccountKey=KEY pointing to the Microsoft Azure Storage account where the Microsoft Azure WebJobs Runtime logs are stored.
Please visit the article about configuring connection strings for more information on how you can configure connection strings in your Microsoft Azure Website
- AzureWebJobsDashboard
- AzureWebJobsStorage
Refresh lại trang Logs, bạn sẽ thấy kết quả:
Tham khảo
- AZURE WEBJOB WITH AZURE QUEUE: http://danielcoding.net/azure-webjob-with-azure-queue/
- Converting PDFs to Multipage Tiff files Using Azure WebJobs: http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/3302/Converting-PDFs-to-Multipage-Tiff-files-Using-Azure-WebJobs.aspx
Chúc các bạn thành công
Nhatkyhoctap's blog
Nhận xét
Đăng nhận xét