Question:
Here I have written a python program to start an instance that matches all the conditions. But The following error is displayed while executing the program.botocore.exceptions.ParamValidationError: Parameter validation failed:
.Below is my code:
Invalid type for parameter InstanceIds, value: i-012345678, type: <type 'str'>, valid types: <type 'list'>, <type 'tuple'>
1 2 3 4 5 6 7 8 9 |
import boto3 ec2=boto3.client('ec2',region_name='ap-south-1') a=ec2.describe_instances() for i in a['Reservations']: for x in i['Instances']: if x['InstanceId']=="i-12345678" and x['State'['Name']=='stopped': n = x['InstanceId'] ec2.start_instances(InstanceIds=n)` |
Answer:
The error itself is self-explanatory. You have to pass a list or tuple of instance ids rather than just string. You can see this in the docs
See the updated code below.
1 2 3 4 5 6 7 8 9 |
import boto3 ec2=boto3.client('ec2',region_name='ap-south-1') a=ec2.describe_instances() for i in a['Reservations']: for x in i['Instances']: if x['InstanceId']=="i-12345678" and x['State'['Name']=='stopped': n = x['InstanceId'] ec2.start_instances(InstanceIds=[n])` |