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

Azure Blob Storage

Mục tiêu

Thiết lập quy trình làm sạch tệp tự động trong Azure Blob Storage bằng Glasswall Halo API thông qua chức năng event grid và hàng đợi service bus.

Hướng dẫn tích hợp Azure Blob Storage


Điều kiện tiên quyết

Lưu ý:

  • Đảm bảo rằng tất cả các tham số cấu hình được đặt tên chính xác và được thêm vào Azure Function App. Bất kỳ sự không khớp nào cũng sẽ dẫn đến lỗi.
  • Chúng tôi chỉ cung cấp mã mẫu để minh họa trường hợp sử dụng này. Mã này chỉ xử lý các tệp phẳng và không có cơ chế ghi nhật ký nâng cao.

Bước 1 - Tạo namespace Service Bus

Trước tiên, bạn cần tạo một namespace Service Bus và một hàng đợi để có thể nhận các thông báo event grid.

Lưu ý: tầng và các cài đặt liên quan đến tải của bạn hoặc it.

  1. Đăng nhập vào Azure Portal.

  2. Đi tới All services > Integration > Service Bus.

  3. Trong tab Basics của trang Create namespace, hãy tạo một Namespace.

Lưu ý: mã mẫu được cung cấp sẽ hoạt động với mọi tầng, vì vậy hãy chọn các cài đặt phù hợp với nhu cầu sử dụng của bạn và nhập tất cả cấu hình bắt buộc.

Abs%20-%20step%201c

Để biết thông tin chi tiết hơn về cách tạo namespace và hàng đợi Service Bus, vui lòng tham khảo tài liệu Azure.


Bước 2 - Tạo hàng đợi Service Bus

Sau khi namespace được tạo, chúng ta cần tạo một hàng đợi để đăng các sự kiện vào đó.

  1. Trên trang Service Bus namespace, chọn Queues trong menu điều hướng bên trái.

  2. Trên trang Queues, chọn + queue trên thanh công cụ.

Abs%20-%20step%201d

Lưu ý: cũng như với namespace, các cài đặt phụ thuộc vào tùy chọn ưu tiên – trong ví dụ này, chúng tôi chỉ sử dụng các giá trị mặc định.

  1. Nhập tên cho queue và giữ nguyên các giá trị khác ở mặc định.

Tên bạn chọn không quan trọng vì mã ví dụ cho phép cấu hình theo bất kỳ giá trị nào được đặt.

Abs%20-%20step%201e

  1. Chọn Create.

Để biết thông tin chi tiết hơn về cách tạo namespace và hàng đợi Service Bus, vui lòng tham khảo tài liệu Azure.


Bước 3 - Thiết lập sự kiện cho tài khoản Blob Storage nguồn

Sau khi tạo namespace và queue của Service Bus, hãy cấu hình tài khoản Blob Storage nguồn để phát ra các sự kiện dưới dạng thông điệp tới queue.

Mặc dù các sự kiện này có thể được cấu hình để kích hoạt trực tiếp một Azure Function, mỗi sự kiện phải được xác nhận trong vòng 30 giây. Dù hầu hết các tệp được xử lý nhanh, các tệp lớn hơn hoặc những giai đoạn tải cao có thể vượt quá khoảng thời gian này.

Để tránh giới hạn này, chúng tôi khuyến nghị cấu hình Event Grid để gửi sự kiện tới queue của Service Bus và cho phép Azure Function tiêu thụ thông điệp từ queue. Cách tiếp cận này mang lại khả năng phục hồi và tính linh hoạt cao hơn bằng cách tách biệt việc tiếp nhận sự kiện khỏi quá trình xử lý.

  1. Để thiết lập sự kiện, hãy chuyển đến tài khoản lưu trữ nguồn và chọn Events > More options > Service Bus queue.

Abs%20-%20step%202a

  1. Nhập một Name trong phần chi tiết đăng ký sự kiện.

  2. Nhập một System topic name trong phần chi tiết topic.

  3. Từ danh sách thả xuống Filter to event type, chọn Blob created.

Điều này có nghĩa là sẽ có một thông điệp cho mỗi tệp mới trong Blob Storage trên toàn bộ tài khoản lưu trữ.

  1. Cuối cùng, chọn queue bạn đã tạo ở bước trước trong phần chi tiết endpoint.

Abs - step 2b.jpg

Abs%20-%20step%202c

Giờ đây, một thông điệp Service Bus mới sẽ được đặt vào queue cho mỗi tệp được tải lên tài khoản lưu trữ đó, và sẽ được tiêu thụ thông qua một function mà chúng ta sẽ tạo tiếp theo.


Bước 4 - Tạo một Function App

Bạn phải có một Function App để lưu trữ việc thực thi các function của mình. Azure function sử dụng các thông điệp Service Bus mà bạn vừa tạo sẽ có thể dùng thông tin chi tiết của event grid để xác định tệp mới.

Glasswall có một ví dụ đang hoạt động bằng C# thực hiện những việc sau:

  • Xác định tệp mới.
  • Truy cập tệp.
  • Gửi tệp đó trong một yêu cầu tới Synchronous API của Glasswall Halo.
  • Tạo (nếu chưa tồn tại) một container có cùng tên trong tài khoản lưu trữ đích.
  • Ghi ra tệp đã được tái tạo (với cùng tên như tệp gốc) hoặc một tệp văn bản nếu không thể tái tạo.
  1. Để tạo một Function App, hãy chuyển đến trang Create a resource.

  2. Trong trang New, chọn Compute > Function app.

  3. Các thiết lập bên dưới sẽ hoạt động với function mẫu của Glasswall. Bạn nên điều chỉnh các thiết lập này để phù hợp với mã function và tùy chọn lưu trữ dự kiến của mình:

Abs - step 3a.jpg

Để biết thông tin chi tiết hơn về cách tạo một Function App, vui lòng tham khảo tài liệu Azure.


Bước 5 - Tạo một function

Sau khi Function App được tạo, bạn có thể tạo function.

  1. Trong phần tổng quan của Function App, hệ thống cung cấp hướng dẫn cho nhiều phương thức khác nhau để triển khai mã của bạn.

Chọn phương thức phù hợp nhất với codebase bạn đã chọn.

Abs%20-%20step%203b

Abs%20-%20step%203c

  1. Nếu bạn đang sử dụng mã mẫu của Glasswall thì cần thêm cấu hình sau vào Function App thông qua Settings > Configuration.

Tất cả các giá trị có thể được lấy từ các tài nguyên liên quan trong Azure Portal. Để truy cập Glasswall Halo, hãy sử dụng phiên bản và thông tin xác thực của bạn, hoặc cho mục đích dùng thử, liên hệ đội ngũ bán hàng của chúng tôi để nhận thông tin xác thực basic authentication nhằm sử dụng public endpoint của chúng tôi.

Cấu hình

KhóaGiá trị
Azure_servicebus_connectionstringChuỗi kết nối cho service bus
Azure_servicebus_newfiles_queuenameTên hàng đợi cho các sự kiện blob mới
Azure_storage_account_nameTên tài khoản lưu trữ nguồn
Azure_storage_account_keyKhóa tài khoản lưu trữ nguồn
Azure_storage_destination_connectionstringChuỗi kết nối tài khoản lưu trữ đích
cdr_usernameTên người dùng cho basic auth của Halo API
cdr_passwordMật khẩu cho basic auth của Halo API
cdr_urlURL cho endpoint CDR-file (ví dụ: https://api.glasswall.com/api/v3/cdr-file)

Abs%20-%20step%203d

Xin chúc mừng! Khi tất cả các bước hoàn tất, mọi tệp được đặt trong tài khoản Azure Blob Storage nguồn giờ đây sẽ được xử lý bằng công nghệ CDR nâng cao của Glasswall và cho ra либо một tài liệu sạch đã được tái tạo hoặc một tệp văn bản vô hại chứa thông báo lỗi.