Моя цель - автоматизировать некоторые процессы AWS с помощью PowerShell.
Один из шагов - выполнить скрипт ps1 на компьютере EC2 Windows из удаленного местоположения (в моем случае S3) .
Проблема в том, что скрипт должен запускаться с обязательными параметрами. CLI выбрасывает всякий раз, когда команда содержит пробел:
aws ssm send-command --region us-west-2 --targets Key=tag:T,Values=V --document-name "AWS-RunRemoteScript" --parameters '{\"sourceType\":[\"S3\"],\"sourceInfo\":[\"{\\\"path\\\":\\\"https://bucketName.s3-us-west-2.amazonaws.com/folder/Install.ps1\\\"}\"],\"commandLine\":[\".\\Install.ps1 -Param1 value\"]}'
возвращает
aws : usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
At line:1 char:1
+ aws ssm send-command --region us-west-2 --targets Key=tag:T,Values=V ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (usage: aws [opt....] [parameters]:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
To see help text, you can run:
aws help
aws <command> help
aws <command> <subcommand> help
Unknown options: -Param1, value"]}
, в то время как без -Param1 value
работает нормально. Даже добавление пробела в конце «commandLine» приводит к проблеме
... \"commandLine\":[\".\\Install.ps1 \"]}'
приводит к ... Unknown options: "]}
Я подозреваю, что это какая-то проблема синтаксиса / экранирования PowerShell, потому что та же самая Команда (с правильным экранированием) работает на bash консоли.
Ссылаясь на официальную документацию , она должна работать на bash оболочке, но я не смог найти ни одного рабочего примера из powershell ....