首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何排查和解决lambda函数问题?

如何排查和解决lambda函数问题?
EN

Stack Overflow用户
提问于 2019-12-24 15:53:49
回答 3查看 102关注 0票数 0

代码语言:javascript
复制
import sys
import botocore
import boto3
from botocore.exceptions import ClientError
def lambda_handler(event, context):
    # TODO implement
    rds = boto3.client('rds')
    lambdaFunc = boto3.client('lambda')
    print 'Trying to get Environment variable'
    try:
        funcResponse = lambdaFunc.get_function_configuration(
            FunctionName='RDSInstanceStart'
        )
        #print (funcResponse)
        DBinstance = funcResponse['Environment']['Variables']['DBInstanceName']
        print 'Starting RDS service for DBInstance : ' + DBinstance
    except ClientError as e:
        print(e)    
    try:
        response = rds.start_db_instance(
            DBInstanceIdentifier=DBinstance
        )
        print 'Success :: ' 
        return response
    except ClientError as e:
        print(e)    
    return
    {
        'message' : "Script execution completed. See Cloudwatch logs for complete output"
    } 

我有一个正在运行的rds实例。每天我都使用lambda表达式启动和停止AWS的RDS实例(db.t2.micro (MSSQL Server))。它以前工作得很好,但没想到今天我遇到了这个问题。其中我的rds实例不是由lambda表达式自动启动的。我看了一个错误日志,但没有问题,它通常看起来像是每天的日志。我无法排除故障并解决问题。有谁能告诉我这个问题吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-12-26 16:21:33

仅供参考,简写为:

代码语言:javascript
复制
import boto3
import os

def lambda_handler(event, context):
    rds_client = boto3.client('rds')
    response = rds.start_db_instance(DBInstanceIdentifier=os.environ['DBInstanceName'])
    print response
票数 0
EN

Stack Overflow用户

发布于 2019-12-24 16:52:19

您可以在cloudwatch或aws lambda->监控cloud watch中的->视图日志中查看每个lambda调用的日志。这将打开一个页面,其中包含每个lambda调用的日志。如果没有日志。这意味着lambda没有被调用。您可以检查分配给lambda的角色和策略是否正确。

票数 0
EN

Stack Overflow用户

发布于 2019-12-25 18:10:35

您应该打印用于启动db的api的响应(ex- start-db-instance)。响应将打印到CloudWatch日志。

https://docs.aws.amazon.com/cli/latest/reference/rds/start-db-instance.html

为了以后的自动化,您可能想要在Lambda的CloudWatch日志上创建一个度量过滤器,使用特定的关键字,例如-

"\"DBInstanceStatus\":\“正在启动\”“

也会创建一个警报,并设置阈值< 1,如果在日志中找不到关键字,指标将不推送任何值(您可以在高级选项下自定义此设置),警报将进入INSUFFICIENT_DATA,您可以使用SNS为INSUFFICIENT_DATA设置通知。

您可以稍微调整告警,将丢失的数据视为Bad,然后当指标过滤器与传入日志不匹配时,告警将转换为告警状态。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59465598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档