เมื่อผู้ใช้ต้องการใช้บริการของ AWS โดยใช้แลมบ์ดาหรือโค้ดโปรแกรม จำเป็นต้องตั้งค่าเซสชันก่อนเพื่อเข้าถึงบริการของ AWS
เซสชัน AWS อาจเป็นค่าเริ่มต้นและปรับแต่งตามความต้องการ
คำชี้แจงปัญหา − ใช้ไลบรารี Boto3 ใน Python เพื่อสร้างเซสชัน AWS
แนวทาง/อัลกอริทึมในการแก้ปัญหานี้
ขั้นตอนที่ 1 − ในการสร้างเซสชัน AWS ก่อนอื่นให้ตั้งค่าข้อมูลรับรองการตรวจสอบสิทธิ์ ผู้ใช้สามารถค้นหาได้ในคอนโซล IAM หรือสร้างไฟล์ข้อมูลรับรองด้วยตนเอง โดยค่าเริ่มต้น ตำแหน่งจะอยู่ที่ ~/.aws/credentials
ตัวอย่าง
[default] aws_access_key_id = YOUR_ACCESS_KEY aws_secret_access_key = YOUR_SECRET_ACCESS_KEY aws_session_token = YOUR_SESSION_TOKEN region = REGION_NAME
ขั้นตอนที่ 2 − ติดตั้ง Boto3 โดยใช้คำสั่ง - pip install boto3
ขั้นตอนที่ 3 - นำเข้าไลบรารี Boto3
ขั้นตอนที่ 4 − หากสร้างเซสชันด้วยข้อมูลรับรองเริ่มต้น ให้ใช้ Session() โดยไม่มีพารามิเตอร์
ขั้นตอนที่ 5 − หากกำหนดเซสชันเอง ให้ส่งพารามิเตอร์ต่อไปนี้ −
-
aws_access_key_id (สตริง) -- รหัสคีย์การเข้าถึง AWS
-
aws_secret_access_key (สตริง) -- คีย์การเข้าถึงความลับของ AWS
-
aws_session_token (สตริง) -- โทเค็นเซสชันชั่วคราวของ AWS
-
Region_name (สตริง) -- ภูมิภาคเริ่มต้นเมื่อสร้างการเชื่อมต่อใหม่
-
profile_name (สตริง) -- ชื่อของโปรไฟล์ที่จะใช้ หากไม่ระบุ ระบบจะใช้โปรไฟล์เริ่มต้น
ตัวอย่าง
รหัสต่อไปนี้สร้างเซสชัน AWS สำหรับข้อมูลประจำตัวเริ่มต้นและข้อมูลประจำตัวที่กำหนดเอง -
import boto3 # To create default session: def create_aws_session(): session = boto3.session.Session() #it creates the default session and can use to connect with any AWS service return session print(create_aws_session()) # To Create customized session: def create_customized_session(aws_access_key, aws_secret_key, aws_token, region_name=None,profile_name=None): session = boto3.session.Session(aws_access_key_id=aws_access_key, aws_secret_access_key=aws_secret_key, aws_session_token = aws_token, region_name=region_name, profile_name = profile_name) # Here, region_name and profile_name are optional parameters and default value is None Print(session) return session
ผลลัพธ์
#if default region_name is not present or NONE and region_name is not passed in #credential file/calling parameter Session(region_name=None) Session(region_name=None) #if default region_name is present and region_name is passed in credential file/calling #parameter Session(region_name=YOUR_REGION_NAME) Session(region_name= YOUR_REGION_NAME)