У меня есть экземпляры ec2 с тегами RDP, Test и т. Д.
Я создал функцию для подключения WinRM в зависимости от тега:
function PSconnector($IP){
# code to get instance tag
#....
if ($instance_tag -match 'RDP') {
$user = "foo"
$pass = "bar"
}
else{
# donwload config
#....
$config = Get-Content .\$config_name| Out-String | ConvertFrom-Json
$user = $config.Server.ServerUser
$pass = $config.Server.ServerPassword
}
# running echo to check only
echo $user
echo $pass
#
return ($user, $pass)
}
Когда я это называю:
$creds = PSconnector($ip)
$creds
Для RDP - все нормально. Но для другого:
{
"AcceptRanges": "bytes",
"LastModified": "Fri, 11 Jan 2019 09:56:53 GMT",
"ContentLength": 2919,
"ETag": "\"1f5ace2cfc81ba53ffde4b0e66cb65da\"",
"ContentType": "application/json",
"Metadata": {}
}
foobar
barfoo
В то же время эхо в функции показывает правильные значения, только без json:
foobar
barfoo
EDIT1
Конфиг загружен с помощью aws cli
aws s3api get-object --bucket $bucket --key $key/$config_name $config_name
EDIT2
Если вместо этого я использую Get-S3Object
, результат aws cli
будет аналогичным:
ETag : "1f5ace2cfc81ba53ffde4b0e66cb65da"
BucketName : jenkins-configuration-files
Key : __json.config___
LastModified : 1/11/2019 11:56:53 AM
Owner : Amazon.S3.Model.Owner
Size : 2919
StorageClass : STANDARD
foobar
barfoo
Где проблема?