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

Làm cách nào để sử dụng chức năng bồi bàn cho bucket_not_exists bằng Boto3 và AWS Client?

Tuyên bố sự cố - Sử dụng thư viện boto3 trong Python để kiểm tra xem một thùng không tồn tại bằng cách sử dụng chức năng người phục vụ hay không. Ví dụ:sử dụng bồi bàn để kiểm tra xem Bucket_2 không tồn tại trong S3.

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_not_exists sử dụng get_waiter chức năng.

Bước 6 - Bây giờ, hãy sử dụng nút chờ đối tượng để xác nhận xem thùng không tồn tại. 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. Ở đây trạng thái thành công có nghĩa là thùng không nên có trong S3. 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 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_not_exists -

 import boto3from botocore.exceptions import ClientErrordef use_waiters_check_bucket_not_exists (bucket_name):session =boto3.session.Session () s3_client =session.client ('s3') try:waiter =s3_client.get_waiter ('bucket_not_exists' Bucket =bucket_name, WaiterConfig ={'Delay':2, 'MaxAttempts':5}) print ('Không tồn tại Bucket:' + bucket_name) ngoại trừ ClientError as e:raise Exception ("lỗi ứng dụng boto3 trong use_waiters_check_bucket_not_exists:" + e. __str __ ()) ngoại trừ Exception như e:raise Exception ("Lỗi không mong muốn trong use_waiters_check_bucket_not_exists:" + e .__ str __ ()) print (use_waiters_check_bucket_not_exists ("Bucket_2")) print (use_waiters_check_existset) " Đầu ra  
 Bucket not tồn tại:Bucket_2Nonebotocore.exceptions.WaiterError:Waiter BucketNotExists thất bại:Đã vượt quá Maxattempts "Lỗi không mong muốn trong use_waiters_check_bucket_not_exists:" + e .__ str __ ()) Ngoại lệ:Lỗi không mong muốn trong use_waiters_check_exists vượt quá người chờ> 

Đối với Bucket_2, đầ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 Bucket_1, đầu ra là một ngoại lệ, vì nhóm này vẫn tồn tại ngay cả khi đã cố gắng kiểm tra tối đa.

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