lambda_function ': unindent не соответствует ни одному внешнему отступу - PullRequest
0 голосов
/ 19 октября 2018

В приведенном ниже фрагменте кода появляется ошибка запуска экземпляра EC2 в лямбда-функции с помощью обработчика lambda_function.start_handler

import boto3
   region = 'us-east-2'
   instances = ['i-04b301372b916390f']
   def start_handler(event, context):
    ec2 =boto3.client('ec2',region_name=region)
    ec2.start_instances(InstanceIds=instances)
    print('started your instances: ') + 
    str(instances)

Ошибка получения ниже:

Syntax error in module 'lambda_function': unindent does not match any outer indentation level (lambda_function.py, line 8)

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Отступы важны в Python, так как нет фигурных скобок, чтобы сохранить код вместе.Код после объявления определения должен иметь отступ в 4 пробела:

import boto3
region = 'us-east-2'
instances = ['i-04b301372b916390f']
def start_handler(event, context):
    ec2 =boto3.client('ec2',region_name=region)
    ec2.start_instances(InstanceIds=instances)
    print('started your instances: ' + str(instances))

Еще одно предложение: указывайте экземпляры и регион в качестве аргумента, потому что теперь вы полагаетесь на наличие глобальной переменной.

def start_handler(event, context, instances, region):
    ec2 =boto3.client('ec2',region_name=region)
    ec2.start_instances(InstanceIds=instances)
    print('started your instances: ' + str(instances))

РЕДАКТИРОВАТЬ И, как упомянуто ALTR, поместите str (экземпляры) в ту же строку, что и print( ... +, и в скобках печати. ​​

0 голосов
/ 19 октября 2018

Поместите строку (экземпляры) в 7-ю строку после +, а не в следующую строку

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