Aws-cli: خطأ في تحليل المعلمة '--targets': المتوقع: '=' ، المستلم: '' 'للإدخال:' {"Key": "tag: Name"، "Values": ["LDAPHost_env-sandbox"]} '

تم إنشاؤها على ٤ يناير ٢٠١٨  ·  3تعليقات  ·  مصدر: aws/aws-cli

أنا أستخدم AWS EC2 SSM لإجراء نشر آلي من خط أنابيب بناء Jenkins. يتم توفير وثيقة SSM لتشغيل برنامج نصي في وثيقة SSM. يشكل خط أنابيب جينكينز الأمر التالي:

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 CLI: 1.11.122.0
بايثون: 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 ، بينما عادةً عندما تقوم بتشغيل الأمر بشكل تفاعلي ، ستقوم shell بإزالة علامات الاقتباس الفردية قبل تمريرها إلى 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 ، بينما عادةً عندما تقوم بتشغيل الأمر بشكل تفاعلي ، ستقوم shell بإزالة علامات الاقتباس الفردية قبل تمريرها إلى Python.

إذا استمر ظهور المشكلة ، فالرجاء نشر سجلات تصحيح الأخطاء باستخدام سطر "إدخال الوسيطات إلى CLI" وسألقي نظرة أخرى.

شكرا. هذا حل المشكلة.

نفس المشكلة ، هذا قديم -

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات