Hướng dẫn boto3 python
Đã đăng vào thg 5 21, 2019 10:18 SA 1 phút đọc Boto 3 là SDK AWS cho Python. Boto3 được viết bằng Python - vì vậy boto3 có thể thực hiện công cụ thao tác hưu hiệu với AWS. Boto3 đặc biệt dễ dàng sử dụng, khi làm việc với boto3 chúng ta có cảm giác giống như làm việc trên AWS CLI. Trong bài viết này, Tôi sẽ sử dụng SQS và boto 3 để thực hiện các thao tác cơ bản như gửi và nhận message. Amazon Simple Queue Service (SQS) là một dịch vụ hàng đợi ( queue ) lưu trữ thông điệp ( message ) nhanh chóng, đáng tin cậy, có khả năng mở rộng và quản lý một cách đầy đủ. Amazon SQS giúp bạn có thể di chuyển dữ liệu giữa các thành phần phân tán của ứng dụng của bạn để thực hiện các nhiệm vụ khác nhau. SetupGiả sử các bạn đã cài sẵn python trên máy của các bạn. để cài boto3 chỉ cần chạy lệnh sau:
xác nhận boto đã cài thành công hay chưa:
Sử dụnggiả sử các bạn đã config đúng hết các kết nối với aws sqs rồi nhé. SQS hoạt động theo mô hình FIFO (First-In-First-Out), vào trước ra trước, chúng ta không thể order hay query vào SQS dc, mỗi lần gọi vào nó sẽ trả ra một message tương ứng với thời gian message này vào: Sử dụng:
gửi 100 message vào queue:
Tài liệu
All rights reserved 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 Kiểm tra version sau khi cài đặt bằng lệnh pip3 show boto3 Kết nối tới dịch vụ AWS bằng Python 3Kết nối tới dịch vụ EC2Source 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ụ S3Source 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ụ Route53Source 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:
Nguồn: vinasupport.com |