ในระหว่างการเตรียมระบบ Environment ด้วย powershell script ของคอร์ส DP-203 (ตอนที่เขียนนี้คือไฟล์ dp-203-setup-Part01.ps1)
สำคัญมาก ต้องรันผ่าน Power Shell แบบ Run as administrator เท่านั้น (หลีกเลี่ยง Command Prompt หรือ Windows Terminal ในกรณีนี้)
พวกเราอาจจะเจอ Error สีเหลืองแบบนี้แบบด้านล่างได้ ซึ่งจะทำให้ส่วนที่เหลือมี error ตามมายาวเหยียด
WARNING: Unable to acquire token for tenant '<Tenant ID>' with error 'You must use
multi-factor authentication to access tenant <Tenant ID>, please rerun 'Connect-AzAccount'
with additional parameter '-TenantId <Tenant ID>'.'
และนี่คือ error ที่เราจะเจอรัวๆ
You cannot call a method on a null-valued expression.
At C:\dp-203\data-engineering-ilt-deployment\Allfiles\00\artifacts\environment-setup\automation\dp-203-setup-Part01.ps1
:26 char:4
+ if($subs.GetType().IsArray -and $subs.length -gt 1){
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
วิธีแก้
ให้เราสังเกตข้อความ Warning ดีๆ จะเห็นว่าในข้อความ จะมีหมายเลข Tenant ID ด้วย ซึ่งในตัวอย่างพลแทนที่มันด้วยคำว่า <Tenant ID>
ครับ
ให้เรา copy Tenant ID ไว้
WARNING: Unable to acquire token for tenant '<Tenant ID>' <----
จากนั้นมาเปิดไฟล์ dp-203-setup-Part01.ps1
ซึ่งถ้าตามที่อยู่ที่ใช้หลักสูตร DP-203 นี้ จะอยู่ที่ C:\dp-203\data-engineering-ilt-deployment\Allfiles\00\artifacts\environment-setup\automation\dp-203-setup-Part01.ps1
แล้วให้หาคำสั่งตามด้านล่าง ซึ่งอยู่ประมาณบรรทัดที่ 21
และแก้ไขโดยการเพิ่ม Tenant ID ที่ copy มาไว้ตามตัวอย่าง
# ของเดิม บรรทัดที่ 21 โดยประมาณ
Connect-AzAccount
# แก้ไขแล้ว
Connect-AzAccount -TenantId "<Tenant ID>"
จากนั้นบันทึกไฟล์ และลองรันคำสั่งอีกครั้ง น่าจะไม่ติดปัญหา Warning แล้วล่ะ
ปัญหาเกี่ยวกับ Subscription
ถ้ามีติด error เกี่ยวกับ Subscription ก็สามารถใช้คำสั่งด้านล่างในการเรียกดูหมายเลข Subscription ID และเอามาตั้งค่าได้ครับ
# เรียกดู subscription ID (ต้อง login ให้เรียบร้อยก่อน)
az account show --output table
# ตั้งค่า subscription ID
az account set --subscription "<subscription ID>"