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 O&M rutin. Untuk informasi tentang cara menggunakan Pengguna RAM, lihat Create a RAM user.
Untuk informasi tentang cara membuat pasangan AccessKey, lihat Create an AccessKey pair.
Jika Anda menggunakan pasangan AccessKey dari Pengguna RAM, pastikan peran AliyunServiceRoleForOpenSearch telah diberi izin yang diperlukan melalui Akun Alibaba Cloud Anda. Untuk informasi selengkapnya, lihat AliyunServiceRoleForOpenSearch dan Access authorization rules.
Kami menyarankan agar Anda tidak menyertakan pasangan AccessKey dalam materi yang mudah diakses orang lain, seperti kode proyek. Jika tidak, pasangan AccessKey Anda berisiko bocor dan sumber daya dalam 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 dalam file tersebut, lalu atur nilainya sesuai dengan ID AccessKey dan Rahasia AccessKey Anda.
Mulai ulang Windows agar pasangan AccessKey berlaku.
Instal dependensi paket
Dependensi paket tersedia di: https://www.nuget.org/packages
dotnet add package AlibabaCloud.TeaUtil --version 0.1.5
dotnet add package AlibabaCloud.OpenSearchUtil --version 1.0.2
dotnet add package Aliyun.Credentials --version 1.2.1
dotnet add package Tea --version 0.4.0Kode contoh
Kode berikut menyediakan contoh untuk C# SDK:
using System;
using System.Collections.Generic;
using AlibabaCloud.TeaUtil.Models;
using Tea;
namespace ConsoleApp2
{
internal class Program
{
public static Dictionary<string, object> behaviorBulk(Client opensearchClient, string appName,
string collectionName, List<object> docContent, Dictionary<string, string> header, RuntimeOptions runTime)
{
string pathName = "/v3/openapi/app-groups/" + appName + "/data-collections/" + collectionName +
"/data-collection-type/BEHAVIOR/actions/bulk";
try
{
return opensearchClient._request("POST", pathName, null, header, docContent, runTime);
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
private static void Main(string[] args)
{
var runtime = new RuntimeOptions
{
ConnectTimeout = 5000,
ReadTimeout = 10000,
MaxAttempts = 0,
Autoretry = false,
IgnoreSSL = false,
MaxIdleConns = 50
};
var config = new Config
{
// Konfigurasikan titik akhir permintaan terpadu. Informasi ini dapat diperoleh dari Konsol.
Endpoint = "opensearch-cn-hangzhou.aliyuncs.com",
// Protokol dapat diatur ke HTTPS atau HTTP.
Protocol = "HTTPS",
/* Informasi identitas pengguna.
Membaca ID AccessKey dan Rahasia AccessKey dari variabel lingkungan.
Sebelum menjalankan kode contoh, Anda harus mengonfigurasi variabel lingkungan terlebih dahulu. Untuk informasi selengkapnya, lihat bagian "Konfigurasikan variabel lingkungan" dalam dokumen ini. */
AccessKeyId = System.Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
AccessKeySecret = System.Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
// Parameter type menentukan metode autentikasi, yang dapat berupa sts atau access_key. Nilai default-nya adalah access_key. Untuk menggunakan autentikasi RAM-STS, atur parameter ini ke sts.
// Nilai yang valid: sts dan access_key.
Type = "access_key",
// Jika Anda menggunakan autentikasi RAM-STS, Anda harus mengonfigurasi security_token. Anda dapat memanggil operasi AssumeRole Alibaba Cloud untuk mendapatkan struktur autentikasi STS.
SecurityToken = "",
};
// Buat instans client OpenSearch.
var openSearch = new Client(config);
// Nama aplikasi yang akan dicari.
var appName = "appName";
// HttpHeaders kustom.
var header = new Dictionary<string, string>();
// --------------- Log perilaku ---------------
// item_id adalah kunci primer yang dikembalikan dalam hasil pencarian. Ini adalah ID kunci primer.
string item_id = "358713";
// ops_request_misc adalah informasi ops_request_misc yang dikembalikan dalam permintaan pencarian.
string ops_request_misc =
"%7B%22request%5Fid%22%3A%22161777635816780357273903%22%2C%22scm%22%3A%2220140713.130149759..%22%7D";
// bhv_type adalah informasi fitur dari event perilaku. Nilai berikut didukung:
// cart (tambah ke keranjang belanja)
// collect (tambah ke favorit)
// like (beri suka)
// comment (posting komentar)
// buy (lakukan pembelian)
// click (klik atau tampilkan)
string bhv_type = "click";
// request_id adalah informasi request_id yang dikembalikan dalam permintaan pencarian.
string request_id = "161777635816780357273903";
// Waktu ketika data tiba di sisi server. Format: Stempel waktu UNIX. Satuan: detik.
string reach_time = "1709708439";
// ID yang secara unik mengidentifikasi pengguna pada aplikasi client.
// * Biasanya ini adalah ID pengguna yang sedang login.
// * Untuk client PC, jika pengguna belum login, Anda dapat mengatur nilai ini ke ID cookie.
string user_id = "a7a0d37c824b659f36a5b9e3b819fcdd";
List<object> behaviorDocs = new List<object>();
Dictionary<string, object> behaviorDoc = new Dictionary<string, object>();
Dictionary<string, object> behaviorDocFields = new Dictionary<string, object>()
{
{"item_id", item_id},
{"sdk_type", "opensearch_sdk"},
{"sdk_version", "<sdk_version>"}, // Nomor versi SDK OpenSearch yang Anda gunakan.
{"trace_id", "ALIBABA"}, // Digunakan untuk mengidentifikasi penyedia layanan yang dipanggil.
{"trace_info", ops_request_misc},
{"bhv_type", bhv_type},
{"item_type", "item"},
{"rn", request_id},
{"biz_id", "<biz_id>"}, // ID numerik yang digunakan oleh ponsel atau aplikasi client untuk membedakan antar layanan. Bidang ini dapat digunakan untuk mengaitkan aplikasi dengan aplikasi di OpenSearch atau instans di AIRec.
{"reach_time", reach_time},
{"user_id", user_id}
};
behaviorDoc.Add("cmd", "ADD");
behaviorDoc.Add("fields", behaviorDocFields);
behaviorDocs.Add(behaviorDoc);
try
{
behaviorBulk(openSearch, appName, appName, behaviorDocs, header, runtime);
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
}
}Untuk informasi selengkapnya, lihat Push collected data.