Назад | Перейти на главную страницу

Разбор параметров при использовании команды отправки AWS SSM из Terraform

Я использую команду отправки AWS SSM для запуска сценария PowerShell на экземпляре AWS.

Следующая команда отлично работает в командной оболочке, но при вызове в Terraform выдает ошибку.

aws ssm send-command --instance-ids $ {self.id} --document-name AWS-> RunPowerShellScript --parameters commands = 'C: \ Installers \ bootstrap_test.ps1> test'

при вызове в Terraform с использованием:

Provider "local-exec" {command = "aws ssm send-command --instance-ids $ {self.id} --document-name AWS-RunPowerShellScript --parameters commands = 'C: \ Installers \ bootstrap_test.ps1 test' --output-s3-bucket-name ellucian-ecrm-lab --output-s3-key-prefix bootstraplogs "}

Возвращенная ошибка:

статус выхода 255. Вывод: использование: aws [параметры] [...] [параметры] Чтобы увидеть текст справки, вы можете запустить:

aws помощь aws помощь aws помощь

Неизвестные варианты: test '

Поэтому я не думаю, что Terraform анализирует строку так, как это нужно AWS. что я могу сделать, чтобы правильно отформатировать эту строку в Terraform?

Попробуйте заключить команды в двойные кавычки, например:

... --parameters commands='"C:\Installers\bootstrap_test.ps1 > test"'

Вот пример с циклом:

aws ssm send-command --instance-ids "i-01234" --document-name "AWS-RunPowerShellScript" --query "Command.CommandId" --output text --parameters commands='"While ($i -le 100) {$i; $i += 1}"'

Или наоборот, например

--parameters commands="'While ($i -le 100) {$i; $i += 1}'"