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
- Bước 1 - Tạo namespace service bus
- Bước 2 - Tạo hàng đợi service bus
- Bước 3 - Thiết lập sự kiện cho tài khoản lưu trữ blob nguồn
- Bước 4 - Tạo function app
- Bước 5 - Tạo function
Điều kiện tiên quyết
- Tài khoản Azure Portal
- Tài khoản Azure Blob Storage nguồn
- Tài khoản Azure Blob Storage đích
- Mã ví dụ của Glasswall
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.
-
Đăng nhập vào Azure Portal.
-
Đi tới All services > Integration > Service Bus.
-
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.

Để 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 đó.
-
Trên trang Service Bus namespace, chọn Queues trong menu điều hướng bên trái.
-
Trên trang Queues, chọn + queue trên thanh công cụ.

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.
- 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.

- 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ý.
- Để 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.

-
Nhập một Name trong phần chi tiết đăng ký sự kiện.
-
Nhập một System topic name trong phần chi tiết topic.
-
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ữ.
- Cuối cùng, chọn queue bạn đã tạo ở bước trước trong phần chi tiết endpoint.


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.
-
Để tạo một Function App, hãy chuyển đến trang Create a resource.
-
Trong trang New, chọn Compute > Function app.
-
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:

Để 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.
- 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.


- 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óa | Giá trị |
|---|---|
| Azure_servicebus_connectionstring | Chuỗi kết nối cho service bus |
| Azure_servicebus_newfiles_queuename | Tên hàng đợi cho các sự kiện blob mới |
| Azure_storage_account_name | Tên tài khoản lưu trữ nguồn |
| Azure_storage_account_key | Khóa tài khoản lưu trữ nguồn |
| Azure_storage_destination_connectionstring | Chuỗi kết nối tài khoản lưu trữ đích |
| cdr_username | Tên người dùng cho basic auth của Halo API |
| cdr_password | Mật khẩu cho basic auth của Halo API |
| cdr_url | URL cho endpoint CDR-file (ví dụ: https://api.glasswall.com/api/v3/cdr-file) |

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.