Konfigurasikan variabel lingkungan
Konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
Pasangan AccessKey dari akun Alibaba Cloud dapat digunakan untuk mengakses semua Operasi API. Kami menyarankan Anda menggunakan Pengguna Resource Access Management (RAM) untuk memanggil Operasi API atau melakukan pemeliharaan rutin. Untuk informasi tentang cara menggunakan Pengguna RAM, lihat Buat Pengguna RAM.
Untuk informasi tentang cara membuat pasangan AccessKey, lihat Buat Pasangan AccessKey.
Jika Anda menggunakan pasangan AccessKey dari Pengguna RAM, pastikan bahwa izin yang diperlukan diberikan kepada peran AliyunServiceRoleForOpenSearch menggunakan akun Alibaba Cloud Anda. Untuk informasi lebih lanjut, lihat AliyunServiceRoleForOpenSearch dan Aturan Otorisasi Akses.
Kami menyarankan agar Anda tidak menyertakan pasangan AccessKey Anda dalam materi yang mudah diakses oleh orang lain, seperti kode proyek. Jika tidak, pasangan AccessKey Anda mungkin bocor dan sumber daya di akun Anda menjadi tidak aman.
Linux dan macOS
Jalankan perintah berikut. Ganti
<access_key_id>dan<access_key_secret>dengan ID AccessKey dan Rahasia AccessKey dari Pengguna RAM yang Anda gunakan.export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id> export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>Windows
Buat file variabel lingkungan, tambahkan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET ke file tersebut, lalu atur variabel lingkungan ke ID AccessKey dan Rahasia AccessKey Anda.
Mulai ulang Windows agar pasangan AccessKey berlaku.
Tambahkan dependensi
pip install alibabacloud_tea_util
pip install alibabacloud_opensearch_util
pip install alibabacloud_credentialsKode contoh:
# -*- coding: utf-8 -*-
import time, os
from typing import Dict, Any
from Tea.exceptions import TeaException
from Tea.request import TeaRequest
from alibabacloud_tea_util import models as util_models
from BaseRequest import Config, Client
class opensearch:
def __init__(self, config: Config):
self.Clients = Client(config=config)
self.runtime = util_models.RuntimeOptions(
connect_timeout=10000,
read_timeout=10000,
autoretry=False,
ignore_ssl=False,
max_idle_conns=50,
max_attempts=3
)
self.header = {}
def behaviorBulk(self, app_name: str, collections_name: str, doc_content: list) -> Dict[str, Any]:
try:
response = self.Clients._request(method="POST",
pathname=f'/v3/openapi/app-groups/{app_name}/data-collections/{collections_name}/data-collection-type/BEHAVIOR/actions/bulk',query={},headers = self.header,
body=doc_content, runtime=self.runtime)
return response
except Exception as e:
print(e)
if __name__ == "__main__":
# Tentukan titik akhir API OpenSearch.
endpoint = "<endpoint>"
# Tentukan protokol permintaan. Nilai valid: HTTPS dan HTTP.
endpoint_protocol = "HTTP"
# Tentukan pasangan AccessKey Anda.
# Dapatkan ID AccessKey dan Rahasia AccessKey dari variabel lingkungan.
# Anda harus mengonfigurasi variabel lingkungan sebelum menjalankan kode ini. Untuk informasi lebih lanjut, lihat bagian "Konfigurasikan variabel lingkungan" dari topik ini.
access_key_id = os.environ.get("ALIBABA_CLOUD_ACCESS_KEY_ID")
access_key_secret = os.environ.get("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
# Tentukan metode otentikasi. Nilai default: access_key. Nilai sts menunjukkan otentikasi berdasarkan Resource Access Management (RAM) dan Security Token Service (STS).
# Nilai valid: sts dan access_key.
auth_type = "sts"
# Jika Anda menggunakan otentikasi berdasarkan RAM dan STS, Anda harus menentukan parameter security_token. Anda dapat memanggil operasi AssumeRole dari Alibaba Cloud RAM untuk mendapatkan token STS.
security_token = "<security_token>"
# Tentukan parameter permintaan umum.
Configs = Config(endpoint=endpoint, access_key_id=access_key_id, access_key_secret=access_key_secret,
security_token=security_token, type=auth_type, protocol=endpoint_protocol)
# Buat instance OpenSearch.
ops = opensearch(Configs)
app_name = "app_name"
# --------------- Dorong log perilaku ---------------
# item_id: ID kunci utama yang dikembalikan dalam hasil pencarian.
item_id = "358713"
# ops_request_misc: Informasi miscellaneous permintaan yang dikembalikan dalam hasil pencarian.
ops_request_misc = "%7B%22request%5Fid%22%3A%22161777635816780357273903%22%2C%22scm%22%3A%2220140713.130149759..%22%7D"
# bhv_type: Jenis acara dari data perilaku. Nilai valid:
# expose: Menampilkan komoditas.
# cart: Menambahkan komoditas ke keranjang belanja.
# collect: Menambahkan komoditas ke favorit.
# like: Menyukai komoditas.
# comment: Memposting komentar pada komoditas.
# buy: Membeli komoditas.
# click: Mengklik atau melihat komoditas.
bhv_type = "click"
# request_id: ID permintaan yang dikembalikan dalam hasil pencarian.
request_id = "161777635816780357273903"
# reach_time: Waktu ketika data diterima oleh server. Nilainya adalah timestamp UNIX yang akurat hingga detik.
reach_time = "1709708439"
# user_id: ID unik pengguna yang mengirim permintaan.
# * Dalam kebanyakan kasus, ID ini adalah milik pengguna yang telah masuk.
# * Jika pengguna mengirim permintaan dari klien PC dan belum masuk, ID ini adalah ID cookie.
user_id = "a7a0d37c824b659f36a5b9e3b819fcdd"
behavior_fields1 = behavior_fields2 = {
"item_id": item_id,
"sdk_type": "opensearch_sdk",
"sdk_version": "<sdk_version>", # Nomor versi SDK OpenSearch Python saat ini, yaitu 3.2.0.
{"trace_id", "ALIBABA"}, # Penyedia layanan.
"trace_info": ops_request_misc,
"bhv_type": bhv_type,
"item_type": "item",
"rn": request_id,
"biz_id":"<biz_id>", # ID numerik yang digunakan oleh aplikasi seluler atau klien aplikasi untuk membedakan bisnis. Parameter ini dapat dikaitkan dengan aplikasi OpenSearch dan instans Artificial Intelligence Recommendation (AIRec).
"reach_time": reach_time,
"user_id": user_id,
}
behavior_documents = [{"cmd": "add", "fields": behavior_fields1}, {"cmd": "add", "fields": behavior_fields2}]
res6 = ops.behaviorBulk(app_name=app_name, collections_name=app_name, doc_content=behavior_documents)
print(res6)Untuk informasi lebih lanjut, lihat Dorong Data yang Dikumpulkan.