簡體   English   中英

Lambda SNS不打印消息

[英]Lambda SNS Not Printing Message

我是 Lambda 和 AWS 的新手,但我想做的是制作一個 function 來檢查特定條件下的構建器標簽並返回操作說明。 該代碼在控制台中成功,但它通過電子郵件發送 sns 消息,但是,它不是我期待的 output,它只是“無”。 output 將是多行實例,邏輯在它們上面運行

import boto3  

import collections    

import datetime    

import time    

import sys

import json

import logging

from botocore.exceptions import ClientError

sns = boto3.client('sns', 'us-east-1')

ec = boto3.client('ec2', 'us-east-1')    

ec2 = boto3.resource('ec2', 'us-east-1')    

SNS_TOPIC_ARN = 'arn'

AWS_REGION = 'us-east-1'

 

def lambda_handler(event, context):          

    instance_ids = []

    reservations = ec.describe_instances().get('Reservations', [])
    
    buildertag = [{

        "Key": "builder",

        "Value": "unknown"

    }]

   

    for reservation in reservations:

        for instance in reservation['Instances']:

            tags = {}

            for tag in instance['Tags']:

                tags[tag['Key']] = tag['Value']

   

            # Checks if builder tag exist and adds if it doesn't #

            if not 'builder' in tags:

                print(instance['InstanceId'] + " does not have builder tag. Adding 'builder' tag with value of 'unknown'.")

                ec.create_tags(Resources=[instance["InstanceId"]], Tags=buildertag)

     

                missingtag = print(instance['InstanceId'] + " does not have builder tag. Adding 'builder' tag with value of 'unknown'.")

                               
                sns = boto3.client('sns')

                sns.publish(

                    TopicArn = 'arn',

                    Subject = 'Incorrect Tags Dectected',

                    Message = str(missingtag),
                
                )

            # Checks for unknown tag value and print output #                                        

            elif tags['builder'] in ['Unknown', 'unknown']:

                print(instance['InstanceId'] + " has unknown for it's builder tag value.")  

                 # Checks for null tag value and print output #                                        

            elif tags['builder'] in ['']:

                print(instance['InstanceId'] + " has no value for builder tag.")  

                ec.create_tags(Resources=[instance["InstanceId"]], Tags=buildertag)

 
            # Checks for builder tags equal to approved values and print output #                                        

            elif tags['builder'] in ['x', 'y', 'z', 'a', 'b']:

                print(instance['InstanceId'] + " has an approved builder tag value.")  

                
 

                

            # Checks for builder tags equal to unapproved values and print output #                                        

            elif tags['builder'] not in ['x', 'y', 'z', 'a', 'b']:

                print(instance['InstanceId'] + " has a incorrect builder tag value.")

您沒有從lambda_handler返回任何內容,因此 output 只是None 您必須將return語句添加到您的代碼中,其中包含您想要從 lambda 到 output 的實際返回值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM