Как отправить данные JSON с помощью powershell из S3 в экземпляр Neptune?
У меня есть файл черепахи, который я хочу отправить с сервера 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 ответ
Вы ошиблись, сказав, что пытаетесь отправить ТЕЛО, когда ваш 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).
ре:
Invoke-RestMethod -Method 'Post' -Uri $url -Credential $Cred -Body $body |
ConvertFrom-JSON | Select field1, field2, field3
Если вы ожидаете вывод (json) с полями field1, field2, field3 в качестве полей