Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để sử dụng Waitosystem, hãy kiểm tra xem một nhóm S3 có tồn tại hay không, bằng cách sử dụng Boto3 và AWS Client?

Trong bài viết này, chúng ta sẽ xem cách sử dụng thư viện Boto3 và chức năng Waiter để xác nhận xem một thùng S3 có tồn tại hay không. Ví dụ:sử dụng bồi bàn để kiểm tra xem Bucket_1 có tồn tại trong S3 không

Phương pháp tiếp cận / Thuật toán để giải quyết vấn đề này

Bước 1 - Nhập các ngoại lệ boto3 và botocore để xử lý các ngoại lệ.

Bước 2 - Sử dụng bucket_name làm tham số trong hàm.

Bước 3 - Tạo phiên AWS bằng thư viện boto3.

Bước 4 - Tạo ứng dụng AWS cho S3.

Bước 5 - Bây giờ, hãy tạo đối tượng chờ cho bucket_exists sử dụng get_waiter chức năng.

Bước 6 - Bây giờ, sử dụng đối tượng chờ để xác nhận xem thùng có tồn tại hay không. Theo mặc định, nó sẽ kiểm tra sau mỗi 5 giây cho đến khi đạt được trạng thái thành công. Một lỗi được trả lại sau 20 lần kiểm tra không thành công. Tuy nhiên, người dùng có thể xác định thời gian bỏ phiếu và số lần thử tối đa.

Bước 7 - Nó trả về Không có.

Bước 8 - Xử lý ngoại lệ chung nếu có sự cố xảy ra trong khi kiểm tra nhóm.

Ví dụ

Sử dụng mã sau để sử dụng người phục vụ để kiểm tra xem bucket_exists hay không -

 import boto3from botocore.exceptions import ClientErrordef use_waiters_check_bucket_exists (bucket_name):session =boto3.session.Session (profile_name ='saml') s3_client =session.client ('s3') try:waiter =s3_client.get_exists ' ) waiter.wait (Bucket =bucket_name, WaiterConfig ={'Delay':2, 'MaxAttempts':5}) print ('Bucket Tồn tại:' + bucket_name) ngoại trừ ClientError as e:raise Exception ("lỗi ứng dụng boto3 trong use_waiters_check_bucket_exists:"+ e .__ str __ ()) ngoại trừ Exception as e:raise Exception (" Lỗi không mong muốn trong use_waiters_check_bucket_exists:"+ e .__ str __ ()) print (use_waiters_check_bucket_exists (" Bucket_1 ")) print (use_waiters_check_bucket_exists (" Bucket_exists)) trước> 

Đầu ra

 Tồn tại nhóm:Bucket_1Nonebotocore.exceptions.WaiterError:Waiter BucketExists thất bại:Đã vượt quá số lần thử nghiệm tối đa "Lỗi không mong muốn trong use_waiters_check_bucket_exists:" + e .__ str __ ()) Ngoại lệ:Lỗi không mong muốn trong use_waiters failed_check_bucket_exists 
 Đối với Bucket_1, đầu ra là câu lệnh in và Không có. Vì phản hồi không trả lại bất kỳ điều gì nên nó sẽ in Không có gì. 

Đối với Nhóm_2, đầu ra là một ngoại lệ, vì nhóm này không tồn tại.

Trong trường hợp ngoại lệ, có thể đọc rằng Số lần thử tối đa đã vượt quá.