ข้ามไปยังเนื้อหาหลัก

Azure Blob Storage

วัตถุประสงค์

ตั้งค่าการทำความสะอาดไฟล์อัตโนมัติใน Azure Blob Storage โดยใช้ Glasswall Halo API ผ่านฟังก์ชัน event grid และคิว service bus

คู่มือการผสานรวม Azure Blob Storage


ข้อกำหนดเบื้องต้น

หมายเหตุ:

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

ขั้นตอนที่ 1 - สร้าง Service Bus namespace

ขั้นแรก คุณต้องสร้าง Service Bus namespace และ queue เพื่อให้สามารถรับข้อความ event grid ได้

หมายเหตุ: tier และการตั้งค่าเกี่ยวข้องกับโหลดของคุณหรือ it

  1. ลงชื่อเข้าใช้ Azure Portal

  2. ไปที่ All services > Integration > Service Bus

  3. ในแท็บ Basics ของหน้า Create namespace ให้สร้าง Namespace

หมายเหตุ: โค้ดตัวอย่างที่ให้มาจะทำงานได้กับทุก tier ดังนั้นให้เลือกการตั้งค่าที่เหมาะสมกับการใช้งานของคุณ และกรอกการกำหนดค่าที่จำเป็นทั้งหมด

Abs%20-%20step%201c

สำหรับข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับการสร้าง Service Bus namespace และ queue โปรดดู เอกสาร Azure


ขั้นตอนที่ 2 - สร้าง Service Bus queue

เมื่อสร้าง namespace แล้ว เราจำเป็นต้องสร้าง queue เพื่อโพสต์ event ไปยัง queue นั้น

  1. บนหน้า Service Bus namespace ให้เลือก Queues ในเมนูนำทางด้านซ้าย

  2. บนหน้า Queues ให้เลือก + queue บนแถบเครื่องมือ

Abs%20-%20step%201d

หมายเหตุ: เช่นเดียวกับ namespace การตั้งค่าต่างๆ ขึ้นอยู่กับความต้องการของคุณ สำหรับตัวอย่างนี้ เราจะใช้ค่าเริ่มต้นทั้งหมด

  1. ป้อนชื่อสำหรับ queue และคงค่าอื่นๆ ไว้เป็นค่าเริ่มต้น

ชื่อที่คุณเลือกไม่สำคัญ เนื่องจากโค้ดตัวอย่างสามารถกำหนดค่าให้ตรงกับค่าที่ตั้งไว้ได้

Abs%20-%20step%201e

  1. เลือก 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 วิธีนี้ให้ความทนทานและความยืดหยุ่นมากขึ้น โดยแยกการรับเหตุการณ์ออกจากการประมวลผล

  1. หากต้องการตั้งค่าเหตุการณ์ ให้ไปที่บัญชี storage ต้นทาง แล้วเลือก Events > More options > Service Bus queue

Abs%20-%20step%202a

  1. ป้อน Name ในส่วนรายละเอียดการสมัครรับเหตุการณ์

  2. ป้อน System topic name ในส่วนรายละเอียดหัวข้อ

  3. จากเมนูแบบเลื่อนลง Filter to event type ให้เลือก Blob created

ซึ่งหมายความว่าจะมีข้อความสำหรับไฟล์ใหม่ทุกไฟล์ใน Blob Storage ภายในบัญชี storage นั้น

  1. สุดท้าย ให้เลือก queue ที่คุณสร้างไว้ในขั้นตอนก่อนหน้าในส่วนรายละเอียด endpoint

Abs - step 2b.jpg

Abs%20-%20step%202c

ขณะนี้ ข้อความ Service Bus ใหม่จะถูกวางไว้ใน queue สำหรับทุกไฟล์ที่อัปโหลดไปยังบัญชี storage นั้น ซึ่งจะถูกใช้งานผ่าน function ที่เราจะสร้างในขั้นตอนถัดไป


ขั้นตอนที่ 4 - สร้าง Function App

คุณต้องมี Function App เพื่อโฮสต์การทำงานของฟังก์ชันของคุณ Azure function ที่ใช้ข้อความจาก Service Bus ที่คุณเพิ่งสร้างจะสามารถใช้รายละเอียดของ event grid เพื่อระบุไฟล์ใหม่ได้

Glasswall มีตัวอย่างที่ใช้งานได้จริงใน C# ซึ่งดำเนินการดังต่อไปนี้:

  • ระบุไฟล์ใหม่
  • เข้าถึงไฟล์
  • ส่งไฟล์นั้นในคำขอไปยัง Synchronous API ของ Glasswall Halo
  • สร้างคอนเทนเนอร์ชื่อเดียวกันในบัญชีจัดเก็บข้อมูลปลายทาง (หากยังไม่มีอยู่)
  • เขียนไฟล์ที่สร้างใหม่แล้ว (โดยใช้ชื่อเดียวกับไฟล์ต้นฉบับ) หรือไฟล์ข้อความหากไม่สามารถสร้างใหม่ได้
  1. หากต้องการสร้าง Function App ให้ไปที่หน้า Create a resource

  2. ในหน้า New ให้เลือก Compute > Function app

  3. การตั้งค่าด้านล่างนี้จะใช้ได้กับฟังก์ชันตัวอย่างของ Glasswall คุณควรปรับการตั้งค่าเหล่านี้ให้เหมาะกับโค้ดฟังก์ชันและตัวเลือกการโฮสต์ที่คุณต้องการ:

Abs - step 3a.jpg

สำหรับข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับการสร้าง Function App โปรดดูเอกสาร Azure


ขั้นตอนที่ 5 - สร้างฟังก์ชัน

เมื่อสร้าง Function App แล้ว คุณสามารถสร้างฟังก์ชันได้

  1. ในภาพรวมของ Function App จะมีคำแนะนำสำหรับวิธีต่างๆ ในการปรับใช้โค้ดของคุณ

เลือกวิธีที่เหมาะสมที่สุดสำหรับโค้ดเบสที่คุณเลือก

Abs%20-%20step%203b

Abs%20-%20step%203c

  1. หากคุณใช้โค้ดตัวอย่างของ 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_urlURL สำหรับปลายทาง CDR-file (เช่น https://api.glasswall.com/api/v3/cdr-file)

Abs%20-%20step%203d

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