为了账号安全,请及时绑定邮箱和手机立即绑定

并非所有 Python 代码都在 AWS Lambda 函数中执行

并非所有 Python 代码都在 AWS Lambda 函数中执行

天涯尽头无女友 2023-09-05 20:30:47
我有一个简单的 lambda 函数,它打印一个事件,然后尝试将一行插入数据库。它运行时没有错误,但不执行所有代码。event被打印,但该行永远不会被插入到表中。任何事情,甚至是我放在后面的打印语句都connection不会被执行。我猜测连接有问题,但据我所知,我无法判断问题出在哪里。某处还有更多日志吗?在 CloudWatch 中,我看到最后显示“任务在 3.00 秒后超时”import boto3import psycopg2s3 = boto3.client('s3')def insert_data(event=None, context=None):    print(event)    connection = psycopg2.connect(user="xxxx", password="xxxx",                                  host="xxxx", port="xx",                                  database="xxxx")    cursor = connection.cursor()    postgres_insert_query = "INSERT INTO dronedata (name,lat,long,other) VALUES ('img2','54','43','from lambda')"    cursor.execute(postgres_insert_query)    connection.commit()    count = cursor.rowcount    print(count, "Record inserted successfully into mobile table")
查看完整描述

2 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

典型的安全设置是:

  • AWS Lambda 函数 ( Lambda-SG) 上的安全组允许所有出站访问(无需入站规则)

  • 数据库(EC2 实例或 Amazon RDS)上的安全组 ( DB-SG),允许在适当端口上进行入站访问Lambda-SG

也就是说,DB-SG应该在其入站规则中具体引用Lambda-SG


查看完整回答
反对 回复 2023-09-05
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

是的,您必须将默认超时从 3 秒增加到更多:

超时 – Lambda 允许函数在停止之前运行的时间量。默认值为3 秒。允许的最大值为 900 秒。

https://img3.sycdn.imooc.com/64f71fbd0001431d04840335.jpg

查看完整回答
反对 回复 2023-09-05
  • 2 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信