unisbadri.com » Python Java Golang Typescript Kotlin Ruby Rust Dart PHP
Amazon SQS

Amazon SQS #

Amazon Simple Queue Service (SQS) adalah layanan antrian pesan terkelola yang memungkinkan Anda mengirim, menyimpan, dan menerima pesan antara komponen perangkat lunak dalam volume besar tanpa kehilangan pesan. SQS membantu menghilangkan kompleksitas dan overhead yang terkait dengan pengelolaan infrastruktur antrian pesan.

1. Instalasi AWS CLI dan Boto3 #

AWS CLI diperlukan untuk mengkonfigurasi kredensial AWS, dan Boto3 adalah SDK untuk Python yang memungkinkan interaksi dengan layanan AWS seperti SQS.

Instalasi AWS CLI #

Untuk menginstal AWS CLI, Anda bisa menggunakan pip:

pip install awscli

Konfigurasikan kredensial AWS setelah instalasi:

aws configure

Anda akan diminta untuk memasukkan AWS Access Key, Secret Access Key, region default, dan output format default.

Instalasi Boto3 #

Instal Boto3 menggunakan pip:

pip install boto3

2. Menghubungkan ke SQS dan Operasi Dasar #

Berikut adalah contoh bagaimana menghubungkan dan melakukan operasi dasar menggunakan Boto3:

import boto3

# Membuat koneksi ke SQS
sqs = boto3.client('sqs', region_name='us-east-1')

# 1. Membuat antrian
response = sqs.create_queue(QueueName='MyQueue')
queue_url = response['QueueUrl']

# 2. Mengirim pesan ke antrian
response = sqs.send_message(
    QueueUrl=queue_url,
    MessageBody='Hello, World!'
)

# 3. Menerima pesan dari antrian
response = sqs.receive_message(
    QueueUrl=queue_url,
    MaxNumberOfMessages=1,
    WaitTimeSeconds=10
)

# Jika ada pesan yang diterima
if 'Messages' in response:
    message = response['Messages'][0]
    receipt_handle = message['ReceiptHandle']

    print('Received message: {}'.format(message['Body']))

    # 4. Menghapus pesan dari antrian
    sqs.delete_message(
        QueueUrl=queue_url,
        ReceiptHandle=receipt_handle
    )
    print('Deleted message')

3. Operasi Lanjutan #

Amazon SQS mendukung berbagai operasi lanjutan, seperti mengatur atribut antrian, mengatur delay message, dan batch message. Berikut adalah beberapa contoh:

Mengatur Atribut Antrian #

# Mengatur atribut antrian, misalnya mengatur waktu penahanan pesan (Retention Period)
sqs.set_queue_attributes(
    QueueUrl=queue_url,
    Attributes={
        'MessageRetentionPeriod': '86400'  # Retention period dalam detik (24 jam)
    }
)

Mengirim Batch Pesan #

# Mengirim batch pesan
response = sqs.send_message_batch(
    QueueUrl=queue_url,
    Entries=[
        {
            'Id': '1',
            'MessageBody': 'Hello from message 1'
        },
        {
            'Id': '2',
            'MessageBody': 'Hello from message 2'
        }
    ]
)

Kesimpulan #

Amazon SQS adalah layanan antrian pesan yang sangat skalabel dan andal, yang memungkinkan komunikasi asinkron antara komponen aplikasi. Dengan Boto3, integrasi SQS dengan aplikasi Python menjadi mudah dan efisien. Untuk mempelajari lebih lanjut, Anda bisa merujuk ke dokumentasi resmi SQS dan Boto3.