我正在尝试在Amazon EC2上创建2个linux实例,我正在脚本中启动一个实例
import sys
import boto3
instance_id = "i-03e7f6391a0f523ee"
action = 'ON'
ec2 = boto3.client('ec2')
if action == 'ON':
response = ec2.start_instances(InstanceIds=[instance_id], DryRun=False)
x2=boto3.resource('ec2')
instance=x2.Instance(instance_id)
foo=instance.wait_until_running('self',Filters=[{'Name':'instance-state-name','Values':['running']}])
print ("instance is now running")
else:
response = ec2.stop_instances(InstanceIds=[instance_id], DryRun=False)
print(response)
ec2 = boto3.resource('ec2', region_name="ap-south-1")
ami-ImageId="ami-00b6a8a2bd28daf19"
#creating instances
ec2.create_instances(ImageId=ami-ImageId,MinCount=1,MaxCount=2,KeyName="datastructutre key",InstanceType="t2.micro")
#using filter to retrive instance status
instances = ec2.instances.filter(Filters=[{'Name': 'instance-state-name', 'Values': ['running']}])
for instance in instances:
print(instance.id, instance.instance_type)
#Checking health status of instances
for status in ec2.meta.client.describe_instance_status()['InstanceStatuses']:
print(status)
但是这行
ami-ImageId="ami-00b6a8a2bd28daf19"
给我错误而不是双引号,我也尝试过单引号
ami-ImageId='ami-00b6a8a2bd28daf19'
但在两种情况下错误都是相同的,错误是
Syntax error: can't assign to operator
以这种方式分配ami-id有什么错误?这是分配给变量的普通字符串。
答案 0 :(得分:1)
问题不在分配中。在变量名中。 -
中的ami-ImageId
是运算符。使用其他变量名称,例如ami_ImageId
答案 1 :(得分:0)
表达式“ ami-ImageId”是ami和ImageId变量的减法,但不是正确的单个变量名称。例如,使用ami_ImageId正确的名称。