Jika Anda menggunakan grup konsumen untuk mengonsumsi data log, Anda tidak perlu mempertimbangkan faktor-faktor seperti implementasi Layanan Log Sederhana, penyeimbangan beban di antara konsumen, atau failover yang mungkin terjadi. Fokuskan pada logika bisnis selama konsumsi data log. Topik ini menjelaskan cara membuat, memodifikasi, menanyakan, dan menghapus grup konsumen serta menyediakan contoh kode.
Prasyarat
Pengguna Resource Access Management (RAM) telah dibuat, dan izin yang diperlukan telah diberikan kepada pengguna RAM. Untuk informasi lebih lanjut, lihat Buat Pengguna RAM dan Berikan Izin kepada Pengguna RAM.
Variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah dikonfigurasi. Untuk informasi lebih lanjut, lihat Konfigurasikan Variabel Lingkungan di Linux, macOS, dan Windows.
PentingPasangan AccessKey akun Alibaba Cloud memiliki izin untuk semua Operasi API. Kami merekomendasikan agar Anda menggunakan pasangan AccessKey dari pengguna RAM untuk memanggil Operasi API atau melakukan pemeliharaan rutin O&M.
Kami merekomendasikan agar Anda tidak menyimpan ID AccessKey atau Rahasia AccessKey dalam kode proyek Anda. Jika tidak, pasangan AccessKey mungkin bocor, dan keamanan semua sumber daya dalam akun Anda mungkin terganggu.
SDK Layanan Log Sederhana untuk Python telah diinstal. Untuk informasi lebih lanjut, lihat Instal SDK Layanan Log Sederhana untuk Python.
Log telah ditulis ke penyimpanan log. Untuk informasi lebih lanjut, lihat Ikhtisar Pengumpulan Data.
Catatan penggunaan
Dalam contoh ini, Titik akhir publik Layanan Log Sederhana untuk wilayah Tiongkok (Hangzhou) digunakan, yaitu https://cn-hangzhou.log.aliyuncs.com. Jika Anda ingin mengakses Layanan Log Sederhana dengan menggunakan layanan Alibaba Cloud lainnya yang berada di wilayah yang sama dengan proyek Anda, Anda dapat menggunakan Titik akhir internal Layanan Log Sederhana, yaitu https://cn-hangzhou-intranet.log.aliyuncs.com. Untuk informasi lebih lanjut tentang wilayah dan titik akhir yang didukung oleh Layanan Log Sederhana, lihat Titik Akhir.
Contoh kode yang digunakan untuk membuat grup konsumen
Berikut adalah contoh kode untuk membuat grup konsumen bernama ali-test-consumergroup:
from aliyun.log import LogClient
import os
# Konfigurasikan variabel lingkungan. Dalam contoh ini, ID AccessKey dan Rahasia AccessKey diperoleh dari variabel lingkungan.
accessKeyId = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
accessKey = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
# Titik akhir Layanan Log Sederhana. Dalam contoh ini, Titik akhir Layanan Log Sederhana untuk wilayah Tiongkok (Hangzhou) digunakan. Ganti nilai parameter dengan titik akhir sebenarnya.
endpoint = "cn-hangzhou.log.aliyuncs.com"
# Buat klien Layanan Log Sederhana.
client = LogClient(endpoint, accessKeyId, accessKey)
# Nama proyek.
project_name = "ali-test-project"
# Nama penyimpanan log.
logstore_name = "ali-test-logstore"
# Nama grup konsumen.
consumergroup_name = "ali-test-consumergroup"
if __name__ == '__main__':
print("siap untuk membuat consumergroup")
res = client.create_consumer_group(project_name, logstore_name, consumergroup_name, 300, in_order=False)
print("membuat consumergroup berhasil")
res2 = client.list_consumer_group(project_name, logstore_name)
for r in res2.get_consumer_groups():
print("Nama consumergroup adalah:" + r.get_consumer_group_name())Hasil yang Diharapkan:
siap untuk membuat consumergroup
membuat consumergroup berhasil
Nama consumergroup adalah:ali-test-consumergroupContoh kode yang digunakan untuk memodifikasi grup konsumen
Berikut adalah contoh kode untuk memodifikasi grup konsumen ali-test-consumergroup:
from aliyun.log import LogClient
import os
# Konfigurasikan variabel lingkungan. Dalam contoh ini, ID AccessKey dan Rahasia AccessKey diperoleh dari variabel lingkungan.
accessKeyId = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
accessKey = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
# Titik akhir Layanan Log Sederhana. Dalam contoh ini, Titik akhir Layanan Log Sederhana untuk wilayah Tiongkok (Hangzhou) digunakan. Ganti nilai parameter dengan titik akhir sebenarnya.
endpoint = "cn-hangzhou.log.aliyuncs.com"
# Buat klien Layanan Log Sederhana.
client = LogClient(endpoint, accessKeyId, accessKey)
# Nama proyek.
project_name = "ali-test-project"
# Nama penyimpanan log.
logstore_name = "ali-test-logstore"
# Nama grup konsumen.
consumergroup_name = "ali-test-consumergroup"
if __name__ == '__main__':
print("siap untuk memperbarui consumergroup")
# Ubah periode timeout grup konsumen menjadi 350 detik.
res = client.update_consumer_group(project_name, logstore_name, consumergroup_name, 350, in_order=False)
print("memperbarui consumergroup berhasil")
res2 = client.list_consumer_group(project_name, logstore_name)
for r in res2.get_consumer_groups():
print("Nama consumergroup adalah:" + r.get_consumer_group_name())
print("Timeout consumergroup adalah:%s" % r.get_timeout())Hasil yang Diharapkan:
siap untuk memperbarui consumergroup
memperbarui consumergroup berhasil
Nama consumergroup adalah:ali-test-consumergroup
Timeout consumergroup adalah:350Contoh kode yang digunakan untuk menanyakan semua grup konsumen
Berikut adalah contoh kode untuk menanyakan semua grup konsumen dari penyimpanan log tertentu:
from aliyun.log import LogClient
import os
# Konfigurasikan variabel lingkungan. Dalam contoh ini, ID AccessKey dan Rahasia AccessKey diperoleh dari variabel lingkungan.
accessKeyId = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
accessKey = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
# Titik akhir Layanan Log Sederhana. Dalam contoh ini, Titik akhir Layanan Log Sederhana untuk wilayah Tiongkok (Hangzhou) digunakan. Ganti nilai parameter dengan titik akhir sebenarnya.
endpoint = "cn-hangzhou.log.aliyuncs.com"
# Buat klien Layanan Log Sederhana.
client = LogClient(endpoint, accessKeyId, accessKey)
# Nama proyek.
project_name = "ali-test-project"
# Nama penyimpanan log.
logstore_name = "ali-test-logstore"
if __name__ == '__main__':
print("siap untuk mencantumkan consumergroup")
# Menanyakan semua grup konsumen dari penyimpanan log.
res = client.list_consumer_group(project_name, logstore_name)
for r in res.get_consumer_groups():
print("Nama consumergroup adalah:" + r.get_consumer_group_name())
print("Timeout consumergroup adalah:%s" % r.get_timeout())
print("Urutan consumergroup adalah:%s" % r.is_in_order())
print("mencantumkan consumergroup berhasil")Hasil yang Diharapkan:
siap untuk mencantumkan consumergroup
Nama consumergroup adalah:ali-test-consumergroup
Timeout consumergroup adalah:350
Urutan consumergroup adalah:False
mencantumkan consumergroup berhasilContoh kode yang digunakan untuk menghapus grup konsumen
Berikut adalah contoh kode untuk menghapus grup konsumen di proyek tertentu:
from aliyun.log import LogClient
import os
# Konfigurasikan variabel lingkungan. Dalam contoh ini, ID AccessKey dan Rahasia AccessKey diperoleh dari variabel lingkungan.
accessKeyId = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
accessKey = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
# Titik akhir Layanan Log Sederhana. Dalam contoh ini, Titik akhir Layanan Log Sederhana untuk wilayah Tiongkok (Hangzhou) digunakan. Ganti nilai parameter dengan titik akhir sebenarnya.
endpoint = "cn-hangzhou.log.aliyuncs.com"
# Buat klien Layanan Log Sederhana.
client = LogClient(endpoint, accessKeyId, accessKey)
# Nama proyek.
project_name = "ali-test-project"
# Nama penyimpanan log.
logstore_name = "ali-test-logstore"
# Nama grup konsumen.
consumergroup_name = "ali-test-consumergroup2"
if __name__ == '__main__':
print("siap untuk menghapus consumergroup")
# Hapus grup konsumen.
res = client.delete_consumer_group(project_name, logstore_name, consumergroup_name)
print("menghapus consumergroup berhasil")Hasil yang Diharapkan:
siap untuk menghapus consumergroup
menghapus consumergroup berhasilContoh kode yang digunakan untuk mendapatkan checkpoint dari grup konsumen
Berikut adalah contoh kode untuk mendapatkan checkpoint dari grup konsumen tertentu:
from aliyun.log import LogClient, ListConsumerGroupResponse
import os
# Konfigurasikan variabel lingkungan. Dalam contoh ini, ID AccessKey dan Rahasia AccessKey diperoleh dari variabel lingkungan.
accessKeyId = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
accessKey = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
# Titik akhir Layanan Log Sederhana. Dalam contoh ini, Titik akhir Layanan Log Sederhana untuk wilayah Tiongkok (Hangzhou) digunakan. Ganti nilai parameter dengan titik akhir sebenarnya.
endpoint = "cn-hangzhou.log.aliyuncs.com"
# Buat klien Layanan Log Sederhana.
client = LogClient(endpoint, accessKeyId, accessKey)
# Nama proyek.
project_name = "ali-test-project"
# Nama penyimpanan log.
logstore_name = "ali-test-logstore"
# Nama grup konsumen.
consumergroup_name = "ali-test-consumergroup"
if __name__ == '__main__':
print("siap untuk mendapatkan CheckPoint")
# Mendapatkan checkpoint dari grup konsumen untuk shard.
res = client.get_check_point(project_name, logstore_name, consumergroup_name, shard=0)
print("Informasi checkpoint consumergroup adalah:%s" % res.get_consumer_group_check_points())
print("mendaftar CheckPoint berhasil di shard_0")Hasil yang Diharapkan:
siap untuk mendapatkan CheckPoint
Informasi checkpoint consumergroup adalah:[{'shard': 0, 'checkpoint': 'MTY3MDk5OTY3NzEzMzQzODg2NQ==', 'updateTime': 1671607210514072, 'consumer': 'consumer_1'}]
mendaftar CheckPoint berhasil di shard_0Referensi
Layanan Log Sederhana juga kompatibel dengan SDK Alibaba Cloud. Untuk informasi lebih lanjut, lihat Layanan Log Sederhana_Pusat SDK_Alibaba Cloud OpenAPI Explorer.
Layanan Log Sederhana menyediakan Antarmuka Baris Perintah (CLI) untuk memenuhi persyaratan konfigurasi otomatis dalam Layanan Log Sederhana. Untuk informasi lebih lanjut, lihat Ikhtisar CLI Layanan Log Sederhana.
Untuk informasi lebih lanjut tentang operasi API terkait grup konsumen, lihat topik-topik berikut:
Untuk lebih banyak contoh kode, lihat Alibaba Cloud Simple Log Service SDK for Python di GitHub.