Функция Lamda для получения тега экземпляра и публикации в SNS - PullRequest
0 голосов
/ 24 сентября 2018

Я пишу лямбда-функцию, чтобы получить идентификатор экземпляра из cloudwatch недавно запущенного экземпляра aws и проверить группу тегов, а если тега нет, опубликовать в теме sns, но я получаю сообщение об ошибке ниже

Синтаксическая ошибка в модуле 'lambda_function': неожиданный отступ (lambda_function.py, строка 5)

Вот моя обновленная лямбда-функция

import boto3
SNS_TOPIC_ARN = 'arn:aws:sns:us-east-1:xxxxx:xxxx'
CODES = ['ttl', 'GGG', 'BRB', 'YLO']
def lambda_handler(event, context):
user = record['userIdentity']['userName']
        region = record['awsRegion']
        ec2 = boto3.resource('ec2', region_name = 'ap-south-1')
    # Extract Instance ID from event
    instance_id = event['detail']['instance-id']
    instance_object = ec2.Instance(instance['instanceId'])
    try:
        tags = {}
        for tag in instance_object.tags:
            tags[tag['Key']] = tag['Value']
        if('Code' not in tags or tags['Code'] not in CODES):
            sns.publish(TopicArn=SNS_TOPIC_ARN, Message=report(instance, user, region))
    except Exception as e:
        print(e)
        raise e

1 Ответ

0 голосов
/ 24 сентября 2018

Похоже, вам не хватает выражения try:

import boto3
SNS_TOPIC_ARN = 'arn:aws:sns:us-east-1:xxxxx:xxxx'
CODES = ['ttl', 'GGG', 'BRB', 'YLO']
def lambda_handler(event, context):

    # Extract Instance ID from event
    instance_id = event['detail']['instance-id']
    instance_object = ec2.Instance(instance['instanceId'])
    try:
        tags = {}
        for tag in instance_object.tags:
            tags[tag['Key']] = tag['Value']
        if('Code' not in tags or tags['Code'] not in CODES):
            sns.publish(TopicArn=SNS_TOPIC_ARN, Message=report(instance, user, region))
    except Exception as e:
        print(e)
        raise e
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...