Parsing de parsing ao usar o AWS SSM send-command from Terraform

2

Estou usando o comando send do AWS SSM para executar um script do PowerShell em uma instância do AWS.

A seguinte commanad funciona bem em um shell de comando, mas quando chamada no Terraform recebe um erro.

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

quando chamado no Terraform usando:

provisioner "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" }

O erro retornado é:

exit status 255. Output: usage: aws [options] [ ...] [parameters] To see help text, you can run:

aws help aws help aws help

Unknown options: test'

Então, eu não sei se Terraform está analisando a string da maneira que a AWS precisa. O que posso fazer para formatar corretamente esta string no Terraform?

    
por Brian Walsh 12.05.2016 / 16:29

1 resposta

0

Tente duplicar os comandos, por exemplo:

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

Aqui está o exemplo com o loop:

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}"'

Ou o oposto, por exemplo

--parameters commands="'While ($i -le 100) {$i; $i += 1}'"
    
por 19.02.2018 / 18:18