otomasi aws s3 dengan boto3
Cloud, Python

Otomasi AWS S3 dengan Library Boto3

Boto3 adalah SDK AWS untuk Python yang digunakan untuk/ layanan di AWS. Dengan library Boto3 kita tidak perlu masuk ke AWS Console untuk menggunakan layanan AWS seperti EC2, S3, DynamoDB, ClouldWatch, SQS dan lain sebagainya

AWS SDK memudahkan developer untuk mengotomasi layanan AWS melalui script tanpa harus melakukan proses di AWS interface yang kurang efisien

Langkah pertama adalah melakukan instalasi Library Boto3

pip install boto3

Pada kesempatan ini kita akan mencoba mengimplementasikan Boto3 untuk layanan S3

Sebenarnya kita bisa melakukan eksplorasi boto3 dari dokumentasi resminya

Boto3 untuk S3

Untuk dapat menggunakan layanan S3 dibutuhkan credential berupa aws_access_key_id, aws_secret_access_key dan aws_session_token

Karena saya menggunakan aws educate, credential diatas dapat ditemukan di Vocariun dan klik tombol Account Details

Kita bisa copy paste credential di directory ~/.aws/credentials atau langsung dalam kode Python

List Bucket

Pertama kita akan list semua bucket di S3 dengan melakukan iterasi dari seluruh bucket yang ada

s3 = session.resource('s3')
for bucket in s3.buckets.all():
        print(bucket.name)

Selain menggunakan resouce untuk terkoneksi dengan layanan S3 kita juga bisa gunakan client

s3 = session.client('s3')
bucket_response = s3.list_buckets()
buckets = bucket_response["Buckets"]
print(buckets)

Resource merupakan high-level API sedangkan client adalah low-level API. Untuk setiap panggilan client, kita perlu secara eksplisit menentukan sumber daya penargetan

Create Bucket

Untuk membuat bucket gunakan fungsi create_bucket() dengan parameter nama bucket. Misalnya nama bucket adalah bucketngodingku

s3.create_bucket(Bucket='bucketngodingku')

Misalnya kita ingin mendefiniskan lokasi dimana bucket dibuat, kita bisa tambahkan parameter region. Contohnya kita ingin bucket dibikin di North California (us-west-1)

s3.create_bucket(Bucket='bucketngodingku2', CreateBucketConfiguration={
    'LocationConstraint': 'us-west-1'})

Selanjutnya kita bisa coba lakukan otomasi di S3 AWS. misalnya kita ingin mengenerate data waktu kemudian disimpan ke dalam S3

Kodenya adalah seperti ini

import time
from datetime import datetime
import boto3

session = boto3.Session(
    aws_access_key_id="ASIAQZ3GSHMQ37WWXXXXX",
    aws_secret_access_key="pUzQ+h8J/Q2j3KvIzk+Ugy1Mkqh094FkXXXX",
    aws_session_token="FwoGZXIvYXdzEJT//////////wEaDB5uUXXXXXX",
    region_name="us-west-1"
)

s3 = session.resource('s3')

datenow = datetime.now()

object = s3.Object('bucketngodingku', 'datenow.txt')
object.put(Body=str(datenow))

Hasilnya di S3 adalah sebagai berikut

Kalau kita buka file datenow isinya adalah seperti ini

2020-10-25 09:46:40.990171

Cukup sekian.. silahkan dieksplor library boto3 untuk layanan AWS lainnya 😀

Leave a Reply

Your email address will not be published. Required fields are marked *