Значение переменной Powershell для кластера эластичного поиска - PullRequest
0 голосов
/ 30 октября 2018

Я хочу проиндексировать данные из 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...