在我的AWS Lambda(Python)脚本中,我有:
~ graypy_handler = graypy.GELFTcpHandler(settings.graylog_host, settings.graylog_port, localname=settings.graylog_app)
env_filter = LogFilter(settings, aws_request_id)
logging.basicConfig()
~ logger = logging.getLogger()
logger.addHandler(graypy_handler)
logger.addFilter(env_filter)
logger.setLevel(logging.DEBUG)
return logger
当我执行logger.info(“test”)时,我的lambda函数会将输出打印输出到Cloudwatch,但日志不会从外部发送。
是否有人设法将日志从lambda发送到外部资源,如Elasticsearch / Graylog?
在本地运行相同的代码,按预期记录。
答案 0 :(得分:0)
为了让您的Lambda函数登录到外部服务,它需要具有正确的安全权限。默认情况下,禁止出站网络访问。
这些权限和设置取决于部署日志服务的位置。
如果是外部服务,则需要配置VPC并确保lambda和您的日志服务都能够通过此网络进行通信。可能通过IGW。