2017-10-31 6 views
1

SendCommand操作を呼び出すときにエラーが(InvalidInstanceId)を発生したが、AWS EC2インスタンスで私はコマンドを実行するためのpythonから実行しているコードInvalidInstanceId:以下

import boto3 
ec2 = boto3.client('ssm',region_name='us-east-1',aws_access_key_id='xxxxxxxxxxxxxxx',aws_secret_access_key='xxxxxxxxx') 
a = ec2.send_command(InstanceIds=ids, DocumentName='AWS-RunShellScript', Comment='abcdabcd', Parameters={"commands":["ifconfig"]}) 

ですが、それは以下のエラーに

を与えています
InvalidInstanceId: An error occurred (InvalidInstanceId) when calling the SendCommand operation: 
+0

'ids'はEC2インスタンスIDの有効なリストですか?エラーメッセージは、そうではないことを示しています。 –

+0

@マークB ...... IDは有効です....私はチェックしました – Teja

+0

'ids'はリストか単一の文字列ですか?それはそれがリストになることを期待しています。 –

答えて

2

次のシナリオでは、このエラーメッセージをもたらすことができる:

  • インスタンスIDがINVALありますidが
  • インスタンスが
  • インスタンスは、実行状態で、現在ではありません(コメント欄にあなたはそれがない確認した)別の領域にある(コメント欄にあなたはそれがない確認した)
  • インスタンスにはAWS SSM agentがインストールされていません。

あなたがAWS EC2/SSMコンソールにログインして、あなたが共有リソースSYSTEMS Managerでショーを管理しようとしていることを確認インスタンス(複数可)を作成する必要があり - 管理対象インスタンスリスト、それらが示すことa Pingのステータスオンライン。そうでない場合は、問題のインスタンスにコマンドを送信する前に修正する必要があります。

0

インスタンスにSSM setupが設定されていることを確認してください。 Linuxの場合、Amazon Linux AMIを使用するか、手動でインストールする必要があります。

ラン:

aws ssm describe-instance-information --output text 

あなたのインスタンスからのSSMエージェントのバージョンを確認します。そのインスタンスがそのリストにあることを確認してください。

も参照してください。SSM send command to EC2 instance Failed