Batch kueri
Azure Monitor Log Analytics API mendukung kueri pembuatan batch bersama-sama. Kueri batch saat ini memerlukan autentikasi Microsoft Entra.
Format permintaan
Untuk membuat batch kueri, gunakan titik akhir API, tambahkan $batch di akhir URL: https://api.loganalytics.azure.com/v1/$batch
.
Jika tidak ada metode yang disertakan, pembuatan batch default ke metode GET. Pada permintaan GET, API mengabaikan parameter isi dari objek permintaan.
Permintaan batch mencakup header reguler untuk operasi lain:
Content-Type: application/json
Authorization: Bearer <user token>
Isi permintaan adalah array objek yang berisi properti berikut:
id
headers
body
method
path
workspace
Contoh:
POST https://api.loganalytics.azure.com/v1/$batch
Content-Type: application/json
Authorization: Bearer <user token>
Cache-Control: no-cache
{
"requests":
[
{
"id": "1",
"headers": {
"Content-Type": "application/json"
},
"body": {
"query": "AzureActivity | summarize count()",
"timespan": "PT1H"
},
"method": "POST",
"path": "/query",
"workspace": "workspace-1"
},
{
"id": "2",
"headers": {
"Content-Type": "application/json"
},
"body": {
"query": "ApplicationInsights | limit 10",
"timespan": "PT1H"
},
"method": "POST",
"path": "/fakePath",
"workspace": "workspace-2"
}
]
}
Format respons
Format respons adalah array objek yang serupa. Setiap objek berisi:
- ID
- Kode status HTTP dari kueri tertentu
- Isi respons yang dikembalikan untuk kueri tersebut.
Jika kueri tidak berhasil dikembalikan, isi respons berisi pesan kesalahan. Pesan kesalahan hanya berlaku untuk kueri individual dalam batch; batch itu sendiri mengembalikan kode status independen dari nilai pengembalian anggotanya. Batch berhasil dikembalikan jika batchnya adalah:
- Dibentuk dengan baik dan diformat dengan benar
- Terautentikasi
- Berwenang
Batch berhasil dikembalikan bahkan ketika hasil kueri anggotanya mungkin merupakan campuran keberhasilan dan kegagalan.
Contoh:
{
"responses":
[
{
"id": "2",
"status": 404,
"body": {
"error": {
"message": "The requested path does not exist",
"code": "PathNotFoundError"
}
}
},
{
"id": "1",
"status": 200,
"body": {
"tables": [
{
"name": "PrimaryResult",
"columns": [
{
"name": "Count",
"type": "long"
}
],
"rows": [
[
7240
]
]
}
]
}
}
]
}
Perilaku dan kesalahan
Urutan respons di dalam objek yang dikembalikan tidak terkait dengan urutan dalam permintaan. Waktu yang diperlukan menentukan setiap kueri individual untuk diselesaikan. Gunakan ID untuk memetakan objek respons kueri ke permintaan asli. Jangan berasumsi bahwa respons kueri berurutan.
Seluruh permintaan batch hanya gagal jika:
- Format JSON dari payload luar tidak valid.
- Autentikasi gagal: Pengguna tidak memberikan token autentikasi, atau token tidak valid.
- Objek permintaan individual dalam batch tidak memiliki properti yang diperlukan, atau ada ID duplikat.
Dalam kondisi ini, bentuk respons berbeda dari kontainer normal. Objek yang terkandung dalam objek batch mungkin masing-masing gagal atau berhasil secara independen, lihat contoh kesalahan berikut.
Contoh kesalahan
Daftar ini adalah daftar yang tidak ada contoh kemungkinan kesalahan dan maknanya.
400 - Permintaan salah format. Objek permintaan luar tidak valid JSON.
{ "error": { "message": "The request had some invalid properties", "code": "BadArgumentError", "innererror": { "code": "QueryValidationError", "message": "Failed parsing the query", "details": [ { "code": "InvalidJsonBody", "message": "Unexpected end of JSON input", "target": null } ] } } }
403 - Terlarang. Token yang disediakan tidak memiliki akses ke sumber daya yang coba Anda akses. Pastikan permintaan token Anda memiliki sumber daya yang benar, dan Anda telah memberikan izin untuk aplikasi Microsoft Entra Anda.
{ "error": { "message": "The provided authentication is not valid for this resource", "code": "InvalidTokenError", "innererror": { "code": "SignatureVerificationFailed", "message": "Could not validate the request" } } }
204 - Tidak Ditempatkan. Anda tidak memiliki data untuk ditarik oleh API di penyimpanan dukungan. Sebagai kesalahan 2xx, ini secara teknis permintaan yang berhasil. Namun, dalam batch, ada baiknya untuk mencatat kesalahannya.
{ "responses": [ { "id": "2", "status": 204, "body": { "error": { "code": "WorkspaceNotPlacedError" } } } ] }
404 - Tidak ditemukan. Jalur kueri tidak ada. Kesalahan ini juga dapat terjadi dalam batch jika Anda menentukan metode HTTP yang tidak valid dalam permintaan individu.
{ "responses": [ { "id": "1", "status": 404, "body": { "error": { "message": "The requested path does not exist", "code": "PathNotFoundError" } } } ] }
400 - Gagal menyelesaikan sumber daya. GUID yang mewakili ruang kerja tidak benar.
{ "responses": [ { "id": "1", "status": 400, "body": { "error": { "code": "FailedToResolveResource", "message": "Resource identity could not be resovled" } } } ] }