Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีสร้าง AWS Session ด้วย Boto3 Library ใน Python


เมื่อผู้ใช้ต้องการใช้ AWS Services ผ่าน Lambda หรือโค้ดโปรแกรม ต้องตั้งค่า Session ก่อนเพื่อเข้าถึง AWS Services

AWS Session สามารถเป็น Default หรือ Customized ได้ตามความต้องการ

ข้อกำหนดปัญหา

ใช้ Boto3 Library ใน Python เพื่อสร้าง AWS Session

ขั้นตอนการแก้ปัญหา

  1. ขั้นตอนที่ 1 – เพื่อสร้าง AWS Session ให้ตั้งค่า Authentication Credentials ก่อน ผู้ใช้หาได้ใน IAM Console หรือสร้าง Credential File เอง โดย Default ตั้งอยู่ที่ ~/.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
  1. ขั้นตอนที่ 2 – ติดตั้ง Boto3 ด้วยคำสั่ง – pip install boto3
  2. ขั้นตอนที่ 3 – นำเข้า Boto3 Library
  3. ขั้นตอนที่ 4 – หากสร้าง Session ด้วย Default Credential ใช้ Session() โดยไม่มีพารามิเตอร์
  4. ขั้นตอนที่ 5 – หาก Session เป็น Customized ให้ส่งพารามิเตอร์ต่อไปนี้ –
    • aws_access_key_id (string) – AWS Access Key ID
    • aws_secret_access_key (string) – AWS Secret Access Key
    • aws_session_token (string) – AWS Temporary Session Token
    • region_name (string) – Default Region เมื่อสร้าง Connection ใหม่
    • profile_name (string) – ชื่อ Profile ที่จะใช้ หากไม่ระบุ จะใช้ Default Profile

ตัวอย่างโค้ด

โค้ดต่อไปนี้สร้าง AWS Session สำหรับ Default และ Customized Credentials:

import boto3

# To create default session:
def create_aws_session():
    session = boto3.session.Session() # สร้าง Default Session และใช้เชื่อมต่อ 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)
    # region_name และ profile_name เป็น Optional Parameters ค่า Default คือ None
    print(session)
    return session

ผลลัพธ์

# หาก Default region_name ไม่มีหรือเป็น NONE และ region_name ไม่ได้ส่งใน Credential File/Calling Parameter
Session(region_name=None)
Session(region_name=None)

# หาก Default region_name มีอยู่และ region_name ถูกส่งใน Credential File/Calling Parameter
Session(region_name=YOUR_REGION_NAME)
Session(region_name= YOUR_REGION_NAME)