Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách tạo phiên AWS (session) bằng thư viện Boto3 trong Python


Khi người dùng muốn sử dụng các dịch vụ AWS bằng lambda hoặc mã lập trình, cần thiết lập phiên (session) trước để truy cập các dịch vụ AWS.

Một phiên AWS có thể là mặc định cũng như tùy chỉnh dựa trên nhu cầu.

Đề bài – Sử dụng thư viện Boto3 trong Python để tạo một phiên AWS.

Phương pháp/Thuật toán giải quyết

Bước 1 – Để tạo phiên AWS, trước tiên thiết lập thông tin xác thực. Người dùng có thể tìm thấy nó trong bảng điều khiển IAM hoặc tạo file credential thủ công. Mặc định vị trí tại ~/.aws/credentials.

Ví dụ

[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

Bước 2 – Cài đặt Boto3 bằng lệnh - pip install boto3

Bước 3 – Import thư viện Boto3.

Bước 4 – Nếu tạo phiên với credential mặc định, sử dụng Session() không tham số.

Bước 5 – Nếu phiên tùy chỉnh, truyền các tham số sau:

  • 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 khi tạo kết nối mới

  • profile_name (string) -- Tên profile để sử dụng. Nếu không cho, profile mặc định sẽ được dùng.

Ví dụ

Mã sau tạo phiên AWS cho credential mặc định và tùy chỉnh:

import boto3

# Tạo session mặc định:
def create_aws_session():
    session = boto3.session.Session() # tạo session mặc định, dùng để kết nối với bất kỳ dịch vụ AWS nào
    return session

print(create_aws_session())

# Tạo session tùy chỉnh:
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)
    # Ở đây, region_name và profile_name là tham số tùy chọn, giá trị mặc định là None
    print(session)
    return session

Kết quả

# nếu default region_name không có hoặc NONE và region_name không được truyền trong
# credential file/tham số gọi
Session(region_name=None)
Session(region_name=None)
# nếu default region_name có mặt và region_name được truyền trong credential file/tham số gọi
# parameter
Session(region_name=YOUR_REGION_NAME)
Session(region_name= YOUR_REGION_NAME)