Hướng dẫn dùng aws boto3 python

Bắt đầu sử dụng nhanh chóng AWS với boto3, AWS SDK dành cho Python. Boto3 giúp bạn dễ dàng tích hợp ứng dụng, thư viện hoặc tập chỉ lệnh với các dịch vụ AWS, bao gồm Amazon S3, Amazon EC2, Amazon DynamoDB và nhiều dịch vụ khác.

API tài nguyên

Boto3 có hai cấp API riêng biệt. API khách (hay còn gọi là "cấp thấp") cung cấp ánh xạ một-một đến các hoạt động API HTTP ngầm. API tài nguyên ẩn các lệnh gọi mạng rõ ràng nhưng thay vào đó sẽ cung cấp các đối tượng và bộ sưu tập tài nguyên để truy cập thuộc tính và thực hiện thao tác. Ví dụ:

for i in ec2.instances.all():

        if i.state['Name'] == 'stopped':

        i.start()

Giao diện đồng nhất và được cập nhật mới nhất

Các giao diện "khách" và "tài nguyên" của Boto3 có các lớp được tạo linh hoạt lấy các mô hình JSON mô tả các API AWS làm cơ sở. Việc này cho phép chúng tôi cung cấp các bản cập nhật rất nhanh với độ đồng nhất cao trên tất cả các dịch vụ được hỗ trợ.

Hỗ trợ Python 2 và 3

Boto3 được viết từ đầu để có được khả năng hỗ trợ thuần cho các phiên bản Python 2.7+ và 3.4+.

Trình chờ

Boto3 được cung cấp kèm theo các "trình chờ", có chức năng tự động thăm dò cho đến khi đạt được thay đổi trạng thái quy định trước trong tài nguyên AWS. Ví dụ: bạn có thể khởi động phiên bản Amazon EC2 và sử dụng trình chờ để chờ cho đến khi phiên bản này đạt trạng thái "đang chạy" hoặc bạn có thể tạo bảng Amazon DynamoDB mới và chờ cho đến khi có thể sử dụng. Boto3 có trình chờ cho cả API khách lẫn tài nguyên.

Nhiều tính năng cấp cao dành riêng cho dịch vụ

Boto3 đi kèm nhiều tính năng dành riêng cho dịch vụ như truyền nhiều phần tự động dành cho Amazon S3 và điều kiện truy vấn đơn giản hóa dành cho Amazon DynamoDB.

Bạn vẫn có thể cài đặt Boto bản gốc (AWS SDK dành cho Python Phiên bản 2) bằng cách sử dụng pip (pip cài đặt boto). Dự án và tài liệu của dự án cũng được cung cấp trên GitHub và thông qua Tài liệu AWS SDK dành cho Python.

AWS sẽ ngừng hỗ trợ cho Internet Explorer vào 07/31/2022. Các trình duyệt được hỗ trợ là Chrome, Firefox, Edge và Safari. Tìm hiểu thêm »

AWS (Amazon Web Services) là dịch vụ cloud nổi tiếng. Nó cung cấp cho chúng ta rất nhiều các dịch vụ như dịch vụ máy chủ EC2, lưu trữ S3, Load Balancing, … Ngoài ra AWS còn cung cấp rất nhiều API để quản lý các dịch vụ này bằng các ngôn ngữ khác nhau. Sau đây là 1 số ví dụ sử dụng Python để kết nối và quản lý các dịch vụ của AWS.

Để sử dụng AWS API các bạn cần cài đặt thư viện Boto3 của Python

Cài đặt thư viện Boto3

Để cài đặt boto3 chúng ta sử dụng trình quản lý package pip3 của Python

pip3 install boto3

Hướng dẫn dùng aws boto3 python

Kiểm tra version sau khi cài đặt bằng lệnh pip3 show boto3

Hướng dẫn dùng aws boto3 python

Kết nối tới dịch vụ AWS bằng Python 3

Kết nối tới dịch vụ EC2

Source code tham khảo

import boto3


ACCESS_KEY = ''
SECRET_KEY = ''
REGION_NAME = 'ap-northeast-1'


session = boto3.Session(
    aws_access_key_id=ACCESS_KEY,
    aws_secret_access_key=SECRET_KEY,
    region_name=REGION_NAME,
)


ec2Client = session.client('ec2')
ec2Resource = session.resource('ec2')


response = ec2Client.describe_instances()
for reservation in response["Reservations"]:
    for instance in reservation["Instances"]:
        # This sample print will output entire Dictionary object
        # print(instance)
        # You can also create a resource object from the instance item as well
        ec2 = ec2Resource.Instance(instance["InstanceId"])
        # print(ec2)

Kết nối tới dịch vụ S3

Source code tham khảo

import boto3


ACCESS_KEY = ''
SECRET_KEY = ''
REGION_NAME = 'ap-northeast-1'


session = boto3.Session(
    aws_access_key_id=ACCESS_KEY,
    aws_secret_access_key=SECRET_KEY,
    region_name=REGION_NAME,
)


s3Client = session.client('s3')
# List all buckets on your account.
response = s3Client.list_buckets()


for bucket in response['Buckets']:
    print(bucket)

Kết nối tới dịch vụ Route53

Source code tham khảo

import boto3


ACCESS_KEY = ''
SECRET_KEY = ''
REGION_NAME = 'ap-northeast-1'


session = boto3.Session(
    aws_access_key_id=ACCESS_KEY,
    aws_secret_access_key=SECRET_KEY,
    region_name=REGION_NAME,
)

r53Client = session.client('route53')
response = r53Client.list_hosted_zones()


for hostedZone in response['HostedZones']:
    response = r53Client.get_hosted_zone(
        Id=hostedZone['Id']
    )
    print(hostedZone)
    print(response)

Để kết nối tới dịch vụ  của AWS các  bạn cần 2 tham số là ACCESS_KEY và SECRET_KEY, để tạo 2 key này vui lòng tham khảo bài viết sau:

  • Hướng dẫn tạo và quản lý tài khoản IAM

Nguồn: vinasupport.com