The below is the code which i am running from python to execute commands in aws ec2 instance
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"]})
But it is giving the below error
InvalidInstanceId: An error occurred (InvalidInstanceId) when calling the SendCommand operation:
The following scenarios can result in this error message:
You need to login to the AWS EC2/SSM console and make sure the instance(s) you are trying manage show up in the SYSTEMS MANAGER SHARED RESOURCES - Managed Instances list, and that they show a Ping status of Online. If not, you need to fix that before trying to send commands to the instance(s) in question.
You should use one of the following two policies to make sure your aws ec2 instance can register itself with ssm: