Aws-cli: パラメータの解析エラー '--targets':予期される: '='、受信される: '' '入力用:' {"Key": "tag:Name"、 "Values":["LDAPHost_env-sandbox"]} '

作成日 2018年01月04日  ·  3コメント  ·  ソース: aws/aws-cli

Jenkinsビルドパイプラインから自動デプロイを行うためにAWSEC2SSMを使用しています。シェルスクリプトを実行するための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"]}'

構成:
OS:Ubuntu 16.04.2 LTS
AWS CLI:1.11.122
Python:2.7.12
Linux:4.4.0-1044-aws
ボトコア:1.5.85

closing-soon

最も参考になるコメント

これは、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

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件

これは、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

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 評価