[AWS Technical Support Note] วิธีรับมือกับข้อผิดพลาดเมื่อไม่ระบุ –region ในแต่ละสภาพแวดล้อมการดำเนินการผ่าน AWS CLI

ในการรันคำสั่งของ AWS CLI ตามปกติแล้วจำเป็นต้องมีการระบุ Region ด้วย โดยวิธีการระบุ Region จะมีหลักๆอยู่ 3 วิธี โดยการระบุพารามิเตอร์ --region ในคำสั่งก็เป็นหนึ่งในวิธีเหล่านั้น

ปัญหาที่เกิดขึ้น

เรารันคำสั่งของ AWS CLI ในหลากหลายสภาพแวดล้อม (สภาพแวดล้อมสำหรับการพัฒนา สภาพแวดล้อมสำหรับการทดสอบ) โดยรายละเอียดโครงสร้างสภาพแวดล้อม, เนื้อหาการตั้งค่าก็แทบจะเหมือนกัน แต่พอรันคำสั่งเดียวกันแล้วบางสภาพแวดล้อมที่ไม่ตั้งค่าพารามิเตอร์ --region ก็จะเกิดข้อผิดพลาดขึ้นเป็นเพราะอะไร?

วิธีแก้ปัญหา

ตรวจสอบว่ามีการตั้งค่า default Region ไว้หรือไม่

ในการรันคำสั่งของ AWS CLI ตามปกติแล้วจำเป็นต้องมีการระบุ Region ด้วย
โดยวิธีการระบุ Region จะมีหลักๆอยู่ 3 วิธี โดยการระบุพารามิเตอร์ --region ในคำสั่งก็เป็นหนึ่งในวิธีเหล่านั้น

1.ระบุพารามิเตอร์ --region
2.ระบุ Environment Variable AWS_DEFAULT_REGION
3.ระบุการตั้งค่า regionในไฟล์การตั้งค่า

เนื่องจากการระบุ Region สามารถระบุได้หลายวิธีข้างต้น
ทำให้พารามิเตอร์ --region ในแต่ละสภาพแวดล้อมอาจจะเปลี่ยนไปตามการระบุ Region ที่ต่างกันนั่นเอง

ด้วยเหตุนี้ การตรวจสอบสถานะการตั้งค่าของแต่ละสภาพแวดล้อมและการปรับเปลี่ยนวิธีการตั้งค่าจะช่วยแก้ไขปัญหาที่พารามิเตอร์ --region เกิดการเปลี่ยนแปลงในแต่ละสภาพแวดล้อมได้

หากมีการระบุหลายๆวิธี (เช่น ระบุการตั้งค่า regionในไฟล์การตั้งค่าฯ) ระบบจะเลือกใช้การตั้งค่า Region ของวิธีที่มีลำดับความสำคัญสูงก่อน

Configure the AWS CLI - AWS Command Line Interface (English)

(ระดับความสำคัญ:สูง)

1.ระบุพารามิเตอร์ --region
2.ระบุ Environment Variable AWS_DEFAULT_REGION
3.ระบุการตั้งค่า regionในไฟล์การตั้งค่า

(ระดับความสำคัญ:ต่ำ)

วิธีตรวจสอบสถานะการตั้งค่า

หากต้องการตรวจสอบว่ามีการตั้งค่า region ในไฟล์การตั้งค่าหรือไม่ ให้รันคำสั่งนี้เพื่อทำการตรวจสอบ

# ในกรณีที่มีการตั้งค่า
$ aws configure get region
ap-northeast-1
$ 

# ในกรณีที่ไม่มีการตั้งค่า
$ aws configure get region
$

ข้อมูลอ้างอิง : Configuration and credential file settings - AWS Command Line Interface (English)

aws configure set

ใช้คำสั่ง aws configure set เพื่อตั้งค่าโครงสร้าง หรือ ข้อมูลสำหรับยืนยันตัวตน และระบุโปรไฟล์เพื่อดูหรือแก้ไขด้วยการตั้งค่า --profile

หากจะตรวจสอบว่ามีการระบุ Environment Variable AWS_DEFAULT_REGION ไว้หรือไม่ ให้ตรวจสอบด้วยคำสั่งนี้

# windows os
echo %AWS_DEFAULT_REGION%

# Mac、Linux
echo ${AWS_DEFAULT_REGION}

※คล้ายกับกับกรณีของการตรวจสอบไฟล์ตั้งค่า หากไม่แสดงข้อมูลใดๆแสดงว่าไม่มีการตั้งค่า Region ใน Environment Variable

ข้อมูลอ้างอิง : Environment variables to configure the AWS CLI - AWS Command Line Interface (English)

บทความอ้างอิง

You must specify an AWS Region when using the AWS CLI, either explicitly or by setting a default Region.

บทความต้นฉบับ