создание экземпляра amazon ec2 не может быть связано с ошибкой оператора boto3 - PullRequest
0 голосов
/ 25 августа 2018

Я пытаюсь создать 2 экземпляра linux на amazon ec2, есть один экземпляр, который я запускаю в скрипте

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 всюда?Это обычная строка, присваиваемая переменной.

Ответы [ 2 ]

0 голосов
/ 25 августа 2018

Выражение «ami-ImageId» является вычитанием переменных ami и ImageId, но не является правильным именем одной переменной. Например, используйте правильное имя ami_ImageId.

0 голосов
/ 25 августа 2018

Проблема не в назначении.Это в имени переменной.- in ami-ImageId является оператором.Используйте другое имя переменной, например ami_ImageId

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...