Я хочу проиндексировать данные из PowerShell в Elasticsearch.
Данные из переменной:
$var1=Get-Process|Select-Object CPU | ConvertTo-Json
$ var1 output:
[
{
"CPU": 11.265625
},
{
"CPU": 0.09375
},
{
"CPU": 13.796875
},
{
"CPU": 0.109375
},
{
"CPU": 0.953125
},
{
"CPU": 624.65625
},
{
"CPU": 3.96875
},
{
"CPU": 0.046875
},
{
"CPU": 1.15625
},
{
"CPU": 0.125
},
{
"CPU": 0.625
},
{
"CPU": 0.65625
},
{
"CPU": 0.109375
}
]
Я пытаюсь загрузить данные командой:
Invoke-WebRequest -ContentType 'application/json' -Method POST `
-Uri 'http://localhost:9200/123456789/doc' `
-Body ([System.Text.Encoding]::UTF8.GetBytes($var1)) -UseBasicParsing
или
Invoke-WebRequest -ContentType 'application/json' -Method POST `
-Uri 'http://localhost:9200:9200/123456789/doc' `
-Body $var1 -UseBasicParsing
Я получаю сообщение об ошибке:
Invoke-WebRequest : {"error":{"root_cause":[{"type":"not_x_content_exception","reason":"not_x_content_exception: Compressor detection can only be called on some xcontent bytes or compressed xcontent
bytes"}],"type":"mapper_parsing_exception","reason":"failed to parse","caused_by":{"type":"not_x_content_exception","reason":"not_x_content_exception: Compressor detection can only be called on some xcontent bytes or compressed xcontent
bytes"}},"status":400}
At line:1 char:1
+ Invoke-WebRequest -ContentType 'application/json' -Method POST `
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
Кто-нибудь знает, как заставить его работать в среде PowerShell?
Моя версия Powershell:
PS C:\> $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 15063 1387
Я полагаю, это может быть связано с синтаксисом JSON.