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)