Monitor Azure Data Factory with Power BI – Part 1

การตรวจติดตาม Azure Data Factory บน Power BI

ในชุดบทความนี้ เราจะศึกษาวิธีใช้ Power BI เพื่อเข้าถึง API ของ Azure Data Factory สำหรับใช้ในการตรวจสอบและติดตามการใช้งาน Azure Data Factory

ในส่วนแรกของบทความนี้ เราจะใช้ Power BI และ Power Query เพื่อเรียกดู Authentication token โดยใช้ Service Principal ที่สามารถใช้ซ้ำได้เพื่อเข้าถึงหลากหลาย API ของ Azure ecosystem

ขั้นตอนหลักคือ

  1. สร้าง Service Principal (App registration)
  2. สร้างฟังก์ชันการตรวจสอบสิทธิ์ (authentication function) ใน Power Query
  3. Runs Query ของ Azure Data Factory pipelines

ในขั้นตอนแรกที่เราต้องการคือ Service Principal ซึ่งต้องที่รับสิทธิการเข้าถึงที่เหมาะสมบน Azure Data Factory ของเรา แต่อาจจำเป็นต้องขอสิทธิ์ดังกล่าวบน Azure subscription admin ในการดำเนินการ

ซึ่งคุณสามารถทำได้ด้วย PowerShell หรือ Azure Portal แต่ในบทความนี้เราจะแสดงขั้นตอนในการทำด้วย Azure Portal เป็นหลัก

1.  ใน Azure portal ไปยังหน้า App registrations และคลิก “+ New Registration”

2. ใส่ชื่อที่เหมาะสมและเลือก “Accounts in this organizational directory only” คุณสามารถเว้นว่าง Redirect URI ไว้และคลิก Register

3. หลังจากสร้างแล้ว กลับไปยัง App registrations และบันทึก Application (client ID) จากหน้า Overview ซึ่งเราจะนำมาใช้ในภายหลัง

4. ไปยัง “Certificates & secrets” และสร้าง client secret ใหม่

5. คลิก “+ New client secret” ใส่คำอธิบายและคลิก “add” อย่าลืมคัดลอกค่าและเก็บไว้ในที่ปลอดภัย เช่น Azure Key Vault หรือเครื่องมือที่คุณใช้รสำหรับจัดเก็บรหัสผ่านอย่างปลอดภัย .

ในการใช้งาน service principal นี้จะต้องการสิทธิ์การเข้าถึงทรัพยากรจาก subscription ของคุณในระดับนึง ขึ้นอยู่กับกรณีการใช้งานซึ่งอาจจะมีขั้นตอนที่เกี่ยวข้องแตกต่างกันและนโยบายความปลอดภัยที่ต้องปฏิบัติตาม โดยคุณอาจต้องจำกัดการเข้าถึงนี้เพียงเฉพาะทรัพยากรที่จำก็สามารถทำได้ แต่ในบทความนี้เราจะให้ระดับการเข้าถึงที่กว้างโดยใช้ RBAC (role-based access control) และใช้ Contributor access บน Azure Subscription โดยดำเนินการดังนี้

1. ไปยัง Azure Subscription ของเรา แล้วคลิก Access control (IAM)

2. คลิก “Add” > “Add role assignment” > เลือก “Contributor” > คลิก “Next” > “+ Select members”

3. ค้นหา App Registration ที่เราสร้างใหม่ คลิก “Select”

4. “Review + assign”

We will now create our first Power BI query which will return an authentication token in order to access the Azure Data Factory pipelines API.

However, before doing so, you need to also collect two more pieces of information: your Azure TenantId and Azure SubscriptionId.

ขั้นตอนต่อมาเราจะสร้าง Power BI query แรกเพื่อส่งกลับ authentication token สำหรับเข้าถึง Azure Data Factory pipelines API

โดยก่อนเริ่มดำเนินการคุณต้องมีข้อมูลองของ Azure TenantId  และ Azure Azure SubscriptionId ถึงสามารถเริ่มต้นการทำงานกับ Power BI ได้

1. เปิดไฟล์ Power BI Desktop ใหม่และคลิก “Transform”

จากนั้นคลิกขวาที่แถบ Queries เลือก “New Parameter” แล้วเพิ่มชุดของ Parameters ต่อไปนี้เพื่อเก็บข้อมูลที่เราต้องการใช้ซ้ำและป้อนค่าทั้งหมดที่เรารวบรวมไว้ก่อนหน้า: tenantId, subscriptionId, clientId, clientSecret.

1. New Parameter.png

หมายเหตุ: ควรตั้งค่าทั้งหมดข้างต้นเป็นประเภทข้อมูล “Text”

2. Manage Parameters.png

3. สร้าง Query ใหม่ และเปลี่ยนชื่อเป็น “getAuthToken”

3. Blank Query.png

4. เปิดใช้งาน “Advanced Editor”

3. Advanced Editor.png

5. วาง Code ดังต่อไปนี้:

?

12345678910111213141516let    uri = "https://login.microsoftonline.com/"& tenantId & "/oauth2/token",    authBody = [                   grant_type = "client_credentials",                    client_id = clientId,                   client_secret = clientSecret,                    resource  = "https://management.azure.com/"                        ],      authQueryString = Uri.BuildQueryString(authBody),      authHeaders = [#"Accept" = "application/json"],      auth = Json.Document(        Web.Contents(uri, [Headers = authHeaders, Content = Text.ToBinary(authQueryString)])      ),      token = auth[access_token]in  token

หมายเหตุ: URL ที่เรียกอ้างอิงใน code ด้านบนอาจแตกต่างขึ้นอยู่กับ API ที่คุณต้องการใช้ สำหรับ Azure Data Factory ในตัวอย่างนี้คือ “https://management.azure.com/”

6. หลังจากคลิก “Done” คุณจะถูกขอให้ระบุวิธีเชื่อมต่อ คลิก “Edit Credentials”

4. Edit Credentials.png

7. เลือก “Anonymous”

5. Anonymous access.png

Query จะคืนค่าเป็นสตริงยาวที่เริ่มด้วย “ey” หากคุณได้รับข้อความ “We couldn’t authenticate with the credentials provided” โปรดตรวจสอบให้แน่ใจว่าคุณได้ป้อนค่า parameter อย่างถูกต้องและลองอีกครั้ง

เพื่อให้เราสามารถใช้งานซ้ำในคิวรี่อื่นๆ ได้เราจะต้องแปลงเป็นฟังก์ชันก็สามารถทำได้ โดยเปิดคิวรี่ getAuthToken ใหม่โดยใช้ Advanced Editor แล้วเพิ่มข้อความต่อจากบรรทัดแรก:

(resource as text) as text =>

จากนั้นอัพเดตบรรทัดต่อไปนี้:

?

1(resource as text) as text =>

จากนั้นอัพเดตบรรทัดต่อไปนี้:

?

1resource = https://management.azure.com/

เป็น

?

1resource = resource

เพื่อทดสอบฟังก์ชันว่าสามารถทำงานถูกต้อง โดยให้วาง resource URL “https://management.azure.com/” และคลิกที่ปุ่ม “Invoke” (คุณอาจได้รับแจ้งให้เลือกวิธีการรับรองความถูกต้องอีกครั้ง) และระบบควรจะแสดงauthentication token ให้คุณ

ให้ทราบว่าใน Power BI ไม่มีวิธีปกป้อง client secret หรือรหัสผ่านที่ใช้ใน Parameters โดยไม่ต้องพัฒนา custom connector ของคุณเอง ดังนั้นคุณต้องแน่ใจว่าไฟล์ PBIX และรายงานที่เผยแพร่แล้วได้รับการปกป้องอย่างเหมาะสม

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

หากคุณสนใจบทความนี้หรือมีข้อสงสัย โปรดติดต่อเราเพื่อรับคำปรึกษาฟรีโดยกรอกข้อมูลด้านล่าง หรือติดต่อเราโดยตรงที่ +66 (0) 2 117 4344

Dela artikeln på sociala medier