Как отправить данные JSON с помощью powershell из S3 в экземпляр Neptune? - PullRequest
0 голосов
/ 18 января 2019

У меня есть файл черепахи, который я хочу отправить с сервера S3 в экземпляр Neptune на powershell. Ниже приведена команда, которую я использую

Invoke-RestMethod -Uri http://edwardspoc.civwhymjvz19.us-east-1.neptune.amazonaws.com:8182 -ContentType application/json  -body '
{ 
  "source" : "s3://cedwardsneptune/ATC.ttl", 
  "format" : "turtle",  
  "iamRoleArn" : "arn:aws:s3:::cedwardsneptune", 
  "region" : "us-east-1", 
  "failOnError" : "FALSE",
  "parserConfiguration" : {
  "namedGraphUri" : "http://purl.bioontology.org/ontology/ATC"
  }
}'

Это дает мне следующую ошибку

Invoke-RestMethod: Невозможно отправить тело содержимого с этим типом глагола.

Я внес небольшие изменения, но, похоже, ничего не работает. Любая помощь приветствуется!

1 Ответ

0 голосов
/ 18 января 2019

Ошибка, если вы говорите, что пытаетесь отправить ТЕЛО, когда ваш REQUEST VERB не позволяет этого.

В основном вы делаете GET и пытаетесь отправить тело. Когда GET глаголу не разрешено отправлять части тела. Вероятно, вам нужно использовать метод POST (см. Документацию по конкретному веб-сервису)

Для этого я рекомендую вам следующий формат:

$Cred = Get-Credential (If you could have)
$Url = "http://edwardspoc.civwhymjvz19.us-east-1.neptune.amazonaws.com:8182"
$Body = '{ 
 "source" : "s3://cedwardsneptune/ATC.ttl", 
  "format" : "turtle",  
  "iamRoleArn" : "arn:aws:s3:::cedwardsneptune", 
  "region" : "us-east-1", 
  "failOnError" : "FALSE",
  "parserConfiguration" : {
  "namedGraphUri" : "http://purl.bioontology.org/ontology/ATC"
  }
}'



Invoke-RestMethod -Method 'Post' -Uri $url -Credential $Cred -ContentType $contentType -Body $body -ContentType 'application/json' -OutFile output.csv

(*) Конечно -OutFile не является обязательным

А что касается JSON Существует командлет ConvertFrom-JSON, который вы можете использовать обычно, когда вам нужно проанализировать вывод (это JSON).

p.e:

Invoke-RestMethod -Method 'Post' -Uri $url -Credential $Cred -Body $body | 
ConvertFrom-JSON | Select field1, field2, field3

Если вы ожидаете, что выход (json) будет иметь поля field1, field2, field3

...