Aws-cli: Ошибка разбора параметра --targets: ожидается: '=', получено: ''' для ввода: '{"Key":"tag:Name","Values":["LDAPHost_env-sandbox"]}'

Созданный на 4 янв. 2018  ·  3Комментарии  ·  Источник: aws/aws-cli

Я использую AWS EC2 SSM для автоматического развертывания из конвейера сборки Jenkins. Документ SSM для запуска сценария оболочки предоставляется в документе SSM. Конвейер jenkins формирует следующую команду:

aws ssm send-command --document-name "Testdeployment" --targets '{"Key":"tag:Name","Values":["LDAPHost_env-sandbox"]}' --max-concurrency "1" --max-errors "1" --parameters '{"bucketName":["s3://testBucket"],"workingDirectory":["/tmp/"],"releaseName":["sandbox-v1"]}' --timeout-seconds 3600 --output-s3-bucket-name "testBucket" --output-s3-key-prefix "sandbox-v1/test/ssm/log" --region eu-west-1

Сообщение об ошибке:

Error parsing parameter '--targets': Expected: '=', received: ''' for input:
'{"Key":"tag:Name","Values":["LDAPHost_env-sandbox"]}'

Конфигурация:
ОС: Ubuntu 16.04.2 LTS
Интерфейс командной строки AWS: 1.11.122
Питон: 2.7.12
Linux: 4.4.0-1044-aws
ботокор: 1.5.85

closing-soon

Самый полезный комментарий

Это похоже на проблему цитирования с Дженкинсом. Когда я запускаю вашу команду прямо в терминале, я не получаю эту ошибку:

$ aws ssm send-command --document-name "Testdeployment" --targets '{"Key":"tag:Name","Values":["LDAPHost_env-sandbox"]}' --max-concurrency "1" --max-errors "1" --parameters '{"bucketName":["s3://testBucket"],"workingDirectory":["/tmp/"],"releaseName":["sandbox-v1"]}' --timeout-seconds 3600 --output-s3-bucket-name "testBucket" --output-s3-key-prefix "sandbox-v1/test/ssm/log" --region eu-west-1

An error occurred (InvalidDocument) when calling the SendCommand operation:

Чтобы отладить эту проблему, запустите команду с --debug , и вы увидите точную строку, которую получает CLI:

2018-01-04 13:27:37,186 - MainThread - awscli.clidriver - DEBUG - CLI version: aws-cli/1.14.18 Python/2.7.14 Darwin/16.7.0 botocore/1.8.22
2018-01-04 13:27:37,186 - MainThread - awscli.clidriver - DEBUG - Arguments entered to CLI: ['ssm', 'send-command', '--document-name', 'Testdeployment', '--targets', '{"Key":"tag:Name","Values":["LDAPHost_env-sandbox"]}', '--max-concurrency', '1', '--max-errors', '1', '--parameters', '{"bucketName":["s3://testBucket"],"workingDirectory":["/tmp/"],"releaseName":["sandbox-v1"]}', '--timeout-seconds', '3600', '--output-s3-bucket-name', 'testBucket', '--output-s3-key-prefix', 'sandbox-v1/test/ssm/log', '--region', 'eu-west-1', '--debug']

Я подозреваю, что вы увидите, что одинарная кавычка передается в CLI, тогда как обычно, когда вы запускаете команду в интерактивном режиме, ваша оболочка удаляет одинарные кавычки перед передачей их в python.

Если вы все еще видите проблему, опубликуйте свои журналы отладки со строкой «Аргументы, введенные в CLI», и я посмотрю еще раз.

Все 3 Комментарий

Это похоже на проблему цитирования с Дженкинсом. Когда я запускаю вашу команду прямо в терминале, я не получаю эту ошибку:

$ aws ssm send-command --document-name "Testdeployment" --targets '{"Key":"tag:Name","Values":["LDAPHost_env-sandbox"]}' --max-concurrency "1" --max-errors "1" --parameters '{"bucketName":["s3://testBucket"],"workingDirectory":["/tmp/"],"releaseName":["sandbox-v1"]}' --timeout-seconds 3600 --output-s3-bucket-name "testBucket" --output-s3-key-prefix "sandbox-v1/test/ssm/log" --region eu-west-1

An error occurred (InvalidDocument) when calling the SendCommand operation:

Чтобы отладить эту проблему, запустите команду с --debug , и вы увидите точную строку, которую получает CLI:

2018-01-04 13:27:37,186 - MainThread - awscli.clidriver - DEBUG - CLI version: aws-cli/1.14.18 Python/2.7.14 Darwin/16.7.0 botocore/1.8.22
2018-01-04 13:27:37,186 - MainThread - awscli.clidriver - DEBUG - Arguments entered to CLI: ['ssm', 'send-command', '--document-name', 'Testdeployment', '--targets', '{"Key":"tag:Name","Values":["LDAPHost_env-sandbox"]}', '--max-concurrency', '1', '--max-errors', '1', '--parameters', '{"bucketName":["s3://testBucket"],"workingDirectory":["/tmp/"],"releaseName":["sandbox-v1"]}', '--timeout-seconds', '3600', '--output-s3-bucket-name', 'testBucket', '--output-s3-key-prefix', 'sandbox-v1/test/ssm/log', '--region', 'eu-west-1', '--debug']

Я подозреваю, что вы увидите, что одинарная кавычка передается в CLI, тогда как обычно, когда вы запускаете команду в интерактивном режиме, ваша оболочка удаляет одинарные кавычки перед передачей их в python.

Если вы все еще видите проблему, опубликуйте свои журналы отладки со строкой «Аргументы, введенные в CLI», и я посмотрю еще раз.

Спасибо. Это решило проблему.

Та же проблема, это устарело -

Была ли эта страница полезной?
0 / 5 - 0 рейтинги