Aws-cli: Erreur lors de l'analyse du paramètre '--targets' : attendu : '=', reçu : ''' pour l'entrée : '{"Key":"tag:Name","Values":["LDAPHost_env-sandbox"]}'

Créé le 4 janv. 2018  ·  3Commentaires  ·  Source: aws/aws-cli

J'utilise AWS EC2 SSM pour effectuer un déploiement automatisé à partir du pipeline de build Jenkins. Un document SSM pour exécuter un script shell est fourni dans le document SSM. Le pipeline Jenkins forme la commande suivante :

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

Message d'erreur:

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

Configuration:
Système d'exploitation : Ubuntu 16.04.2 LTS
CLI AWS : 1.11.122
Python : 2.7.12
Linux : 4.4.0-1044-aws
botocore : 1.5.85

closing-soon

Commentaire le plus utile

Cela ressemble à un problème de citation avec Jenkins. Lorsque j'exécute votre commande directement dans le terminal, je n'obtiens pas cette erreur:

$ 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:

Pour déboguer ce problème, exécutez la commande avec --debug et vous verrez la chaîne exacte que la CLI reçoit :

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']

Je suppose que ce que vous verrez, c'est que le guillemet simple est transmis à la CLI, alors que normalement, lorsque vous exécutez la commande de manière interactive, votre shell supprimera les guillemets simples avant de le transmettre à python.

Si vous rencontrez toujours le problème, veuillez publier vos journaux de débogage avec la ligne "Arguments entrés dans la CLI" et j'y jetterai un autre coup d'œil.

Tous les 3 commentaires

Cela ressemble à un problème de citation avec Jenkins. Lorsque j'exécute votre commande directement dans le terminal, je n'obtiens pas cette erreur:

$ 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:

Pour déboguer ce problème, exécutez la commande avec --debug et vous verrez la chaîne exacte que la CLI reçoit :

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']

Je suppose que ce que vous verrez, c'est que le guillemet simple est transmis à la CLI, alors que normalement, lorsque vous exécutez la commande de manière interactive, votre shell supprimera les guillemets simples avant de le transmettre à python.

Si vous rencontrez toujours le problème, veuillez publier vos journaux de débogage avec la ligne "Arguments entrés dans la CLI" et j'y jetterai un autre coup d'œil.

Merci. Cela a résolu le problème.

Même problème, c'est obsolète -

Cette page vous a été utile?
0 / 5 - 0 notes