Chuyển đến nội dung chính

Tìm hiểu về Azure WebJob (Part 2)

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


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 QueueMessageGenerator

Sau đó bạn cần cài đặt 2 package:
  • WindowsAzure.Storage
  • Microsoft.WindowsAzure.ConfigurationManager
Sau đó bạn thêm đoạn code này vào hàm Main()
// 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.
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
Để 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:
  • AzureWebJobsDashboard 
  • AzureWebJobsStorage 

Refresh lại trang Logs, bạn sẽ thấy kết quả:

Tham khảo 

Chúc các bạn thành công
Nhatkyhoctap's blog

Nhận xét

Bài đăng phổ biến từ blog này

[ASP.NET MVC] Authentication và Authorize

Một trong những vấn đề bảo mật cơ bản nhất là đảm bảo những người dùng hợp lệ truy cập vào hệ thống. ASP.NET đưa ra 2 khái niệm: Authentication và Authorize Authentication xác nhận bạn là ai. Ví dụ: Bạn có thể đăng nhập vào hệ thống bằng username và password hoặc bằng ssh. Authorization xác nhận những gì bạn có thể làm. Ví dụ: Bạn được phép truy cập vào website, đăng thông tin lên diễn đàn nhưng bạn không được phép truy cập vào trang mod và admin.

ASP.NET MVC: Cơ bản về Validation

Validation (chứng thực) là một tính năng quan trọng trong ASP.NET MVC và được phát triển trong một thời gian dài. Validation vắng mặt trong phiên bản đầu tiên của asp.net mvc và thật khó để tích hợp 1 framework validation của một bên thứ 3 vì không có khả năng mở rộng. ASP.NET MVC2 đã hỗ trợ framework validation do Microsoft phát triển, tên là Data Annotations. Và trong phiên bản 3, framework validation đã hỗ trợ tốt hơn việc xác thực phía máy khách, và đây là một xu hướng của việc phát triển ứng dụng web ngày nay.

Tổng hợp một số kiến thức lập trình về Amibroker

Giới thiệu về Amibroker Amibroker theo developer Tomasz Janeczko được xây dựng dựa trên ngôn ngữ C. Vì vậy bộ code Amibroker Formula Language sử dụng có syntax khá tương đồng với C, ví dụ như câu lệnh #include để import hay cách gói các object, hàm trong các block {} và kết thúc câu lệnh bằng dấu “;”. AFL trong Amibroker là ngôn ngữ xử lý mảng (an array processing language). Nó hoạt động dựa trên các mảng (các dòng/vector) số liệu, khá giống với cách hoạt động của spreadsheet trên excel.