Azure Blob Storage
วัตถุประสงค์
ตั้งค่าการทำความสะอาดไฟล์อัตโนมัติใน Azure Blob Storage โดยใช้ Glasswall Halo API ผ่านฟังก์ชัน event grid และคิว service bus
คู่มือการผสานรวม Azure Blob Storage
- ข้อกำหนดเบื้องต้น
- ขั้นตอนที่ 1 - สร้าง service bus namespace
- ขั้นตอนที่ 2 - สร้างคิว service bus
- ขั้นตอนที่ 3 - ตั้งค่าเหตุการณ์ของบัญชีที่เก็บข้อมูล blob ต้นทาง
- ขั้นตอนที่ 4 - สร้าง function app
- ขั้นตอนที่ 5 - สร้างฟังก์ชัน
ข้อกำหนดเบื้องต้น
- บัญชี Azure Portal
- บัญชี Azure Blob Storage ต้นทาง
- บัญชี Azure Blob Storage ปลายทาง
- โค้ดตัวอย่าง Glasswall
หมายเหตุ:
- ตรวจสอบให้แน่ใจว่าพารามิเตอร์การกำหนดค่าทั้งหมดมีชื่อถูกต้องและถูกเพิ่มไปยัง Azure Function App แล้ว หากมีส่วนใดไม่ตรงกันจะทำให้เกิดความล้มเหลว
- เราได้จัดเตรียมเพียงโค้ดตัวอย่างเพื่อสาธิตกรณีการใช้งานนี้เท่านั้น โดยรองรับเฉพาะไฟล์แบบแบนและไม่มีระบบบันทึกข้อมูลที่ซับซ้อน
ขั้นตอนที่ 1 - สร้าง Service Bus namespace
ขั้นแรก คุณต้องสร้าง Service Bus namespace และ queue เพื่อให้สามารถรับข้อความ event grid ได้
หมายเหตุ: tier และการตั้งค่าเกี่ยวข้องกับโหลดของคุณหรือ it
-
ลงชื่อเข้าใช้ Azure Portal
-
ไปที่ All services > Integration > Service Bus
-
ในแท็บ Basics ของหน้า Create namespace ให้สร้าง Namespace
หมายเหตุ: โค้ดตัวอย่างที่ให้มาจะทำงานได้กับทุก tier ดังนั้นให้เลือกการตั้งค่าที่เหมาะสมกับการใช้งานของคุณ และกรอกการกำหนดค่าที่จำเป็นทั้งหมด

สำหรับข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับการสร้าง Service Bus namespace และ queue โปรดดู เอกสาร Azure
ขั้นตอนที่ 2 - สร้าง Service Bus queue
เมื่อสร้าง namespace แล้ว เราจำเป็นต้องสร้าง queue เพื่อโพสต์ event ไปยัง queue นั้น
-
บนหน้า Service Bus namespace ให้เลือก Queues ในเมนูนำทางด้านซ้าย
-
บนหน้า Queues ให้เลือก + queue บนแถบเครื่องมือ

หมายเหตุ: เช่นเดียวกับ namespace การตั้งค่าต่างๆ ขึ้นอยู่กับความต้องการของคุณ สำหรับตัวอย่างนี้ เราจะใช้ค่าเริ่มต้นทั้งหมด
- ป้อนชื่อสำหรับ queue และคงค่าอื่นๆ ไว้เป็นค่าเริ่มต้น
ชื่อที่คุณเลือกไม่สำคัญ เนื่องจากโค้ดตัวอย่างสามารถกำหนดค่าให้ตรงกับค่าที่ตั้งไว้ได้

- เลือก Create
สำหรับข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับการสร้าง Service Bus namespace และ queue โปรดดู เอกสาร Azure
ขั้นตอนที่ 3 - ตั้งค่าเหตุการณ์ของบัญชีต้นทาง Blob Storage
หลังจากสร้าง namespace และ queue ของ Service Bus แล้ว ให้กำหนดค่าบัญชีต้นทาง Blob Storage เพื่อส่งเหตุการณ์ออกมาเป็นข้อความไปยัง queue
แม้ว่าเหตุการณ์เหล่านี้จะสามารถกำหนดค่าให้ทริกเกอร์ Azure Function ได้โดยตรง แต่แต่ละเหตุการณ์ต้องได้รับการยืนยันภายใน 30 วินาที แม้ว่าไฟล์ส่วนใหญ่จะถูกประมวลผลได้อย่างรวดเร็ว แต่ไฟล์ขนาดใหญ่หรือช่วงเวลาที่มีโหลดสูงอาจใช้เวลานานเกินช่วงเวลานี้
เพื่อหลีกเลี่ยงข้อจำกัดนี้ เราแนะนำให้กำหนดค่า Event Grid ให้ส่งเหตุการณ์ไปยัง queue ของ Service Bus และให้ Azure Function ดึงข้อความจาก queue วิธีนี้ให้ความทนทานและความยืดหยุ่นมากขึ้น โดยแยกการรับเหตุการณ์ออกจากการประมวลผล
- หากต้องการตั้งค่าเหตุการณ์ ให้ไปที่บัญชี storage ต้นทาง แล้วเลือก Events > More options > Service Bus queue

-
ป้อน Name ในส่วนรายละเอียดการสมัครรับเหตุการณ์
-
ป้อน System topic name ในส่วนรายละเอียดหัวข้อ
-
จากเมนูแบบเลื่อนลง Filter to event type ให้เลือก Blob created
ซึ่งหมายความว่าจะมีข้อความสำหรับไฟล์ใหม่ทุกไฟล์ใน Blob Storage ภายในบัญชี storage นั้น
- สุดท้าย ให้เลือก queue ที่คุณสร้างไว้ในขั้นตอนก่อนหน้าในส่วนรายละเอียด endpoint


ขณะนี้ ข้อความ Service Bus ใหม่จะถูกวางไว้ใน queue สำหรับทุกไฟล์ที่อัปโหลดไปยังบัญชี storage นั้น ซึ่งจะถูกใช้งานผ่าน function ที่เราจะสร้างในขั้นตอนถัดไป
ขั้นตอนที่ 4 - สร้าง Function App
คุณต้องมี Function App เพื่อโฮสต์การทำงานของฟังก์ชันของคุณ Azure function ที่ใช้ข้อความจาก Service Bus ที่คุณเพิ่งสร้างจะสามารถใช้รายละเอียดของ event grid เพื่อระบุไฟล์ใหม่ได้
Glasswall มีตัวอย่างที่ใช้งานได้จริงใน C# ซึ่งดำเนินการดังต่อไปนี้:
- ระบุไฟล์ใหม่
- เข้าถึงไฟล์
- ส่งไฟล์นั้นในคำขอไปยัง Synchronous API ของ Glasswall Halo
- สร้างคอนเทนเนอร์ชื่อเดียวกันในบัญชีจัดเก็บข้อมูลปลายทาง (หากยังไม่มีอยู่)
- เขียนไฟล์ที่สร้างใหม่แล้ว (โดยใช้ชื่อเดียวกับไฟล์ต้นฉบับ) หรือไฟล์ข้อความหากไม่สามารถสร้างใหม่ได้
-
หากต้องการสร้าง Function App ให้ไปที่หน้า Create a resource
-
ในหน้า New ให้เลือก Compute > Function app
-
การตั้งค่าด้านล่างนี้จะใช้ได้กับฟังก์ชันตัวอย่างของ Glasswall คุณควรปรับการตั้งค่าเหล่านี้ให้เหมาะกับโค้ดฟังก์ชันและตัวเลือกการโฮสต์ที่คุณต้องการ:

สำหรับข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับการสร้าง Function App โปรดดูเอกสาร Azure
ขั้นตอนที่ 5 - สร้างฟังก์ชัน
เมื่อสร้าง Function App แล้ว คุณสามารถสร้างฟังก์ชันได้
- ในภาพรวมของ Function App จะมีคำแนะนำสำหรับวิธีต่างๆ ในการปรับใช้โค้ดของคุณ
เลือกวิธีที่เหมาะสมที่สุดสำหรับโค้ดเบสที่คุณเลือก


- หากคุณใช้โค้ดตัวอย่างของ Glasswall จะต้องเพิ่มการกำหนดค่าต่อไปนี้ไปยัง Function App ผ่าน Settings > Configuration
ค่าทั้งหมดสามารถดึงได้จากทรัพยากรที่เกี่ยวข้องใน Azure Portal สำหรับการเข้าถึง Glasswall Halo ให้ใช้ instance และการยืนยันตัวตนของคุณ หรือเพื่อการทดลองใช้ ติดต่อทีมขายของเรา เพื่อขอข้อมูลรับรองการยืนยันตัวตนแบบพื้นฐานสำหรับใช้กับ public endpoint ของเรา
การกำหนดค่า
| คีย์ | ค่า |
|---|---|
| Azure_servicebus_connectionstring | สตริงการเชื่อมต่อสำหรับ service bus |
| Azure_servicebus_newfiles_queuename | ชื่อคิวสำหรับเหตุการณ์ blob ใหม่ |
| Azure_storage_account_name | ชื่อบัญชีที่เก็บข้อมูลต้นทาง |
| Azure_storage_account_key | คีย์บัญชีที่เก็บข้อมูลต้นทาง |
| Azure_storage_destination_connectionstring | สตริงการเชื่อมต่อของบัญชีที่เก็บข้อมูลปลายทาง |
| cdr_username | ชื่อผู้ใช้สำหรับการยืนยันตัวตนแบบพื้นฐานของ Halo API |
| cdr_password | รหัสผ่านสำหรับการยืนยันตัวตนแบบพื้นฐานของ Halo API |
| cdr_url | URL สำหรับปลายทาง CDR-file (เช่น https://api.glasswall.com/api/v3/cdr-file) |

ขอแสดงความยินดี! เมื่อทำครบทุกขั้นตอนแล้ว ไฟล์ใด ๆ ที่ถูกวางไว้ในบัญชีต้นทาง Azure Blob Storage จะถูกประมวลผลด้วยเทคโนโลยี CDR ขั้นสูงของ Glasswall และจะได้ผลลัพธ์เป็นเอกสารสะอาดที่สร้างใหม่ หรือไฟล์ข้อความที่ปลอดภัยซึ่งมีข้อความแสดงข้อผิดพลาด