Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 在EC2执行之前记录API网关事件_Amazon Web Services_Amazon Ec2_Boto3 - Fatal编程技术网

Amazon web services 在EC2执行之前记录API网关事件

Amazon web services 在EC2执行之前记录API网关事件,amazon-web-services,amazon-ec2,boto3,Amazon Web Services,Amazon Ec2,Boto3,我们正在与AWS合作,希望将所有从API网关传入的http请求全部记录到EC2框中,即不截断为1024字节。正如我们所知,API网关的日志记录是不可配置的,我们的下一个想法是在API网关和EC2之间放置一个lambda,它将拦截请求,将它们记录到S3,然后将请求转发到EC2 我的问题有两个: 如何手动向EC2实例提交API网关“事件”?我已经阅读了boto3文档,但似乎没有一种开箱即用的好方法 这是一种完整记录请求的逻辑方法,还是我们缺少lambda->ec2之间的内置连接器,或者是一般的请求记

我们正在与AWS合作,希望将所有从API网关传入的http请求全部记录到EC2框中,即不截断为1024字节。正如我们所知,API网关的日志记录是不可配置的,我们的下一个想法是在API网关和EC2之间放置一个lambda,它将拦截请求,将它们记录到S3,然后将请求转发到EC2

我的问题有两个:

如何手动向EC2实例提交API网关“事件”?我已经阅读了boto3文档,但似乎没有一种开箱即用的好方法

这是一种完整记录请求的逻辑方法,还是我们缺少lambda->ec2之间的内置连接器,或者是一般的请求记录

def lambda_handler(event, context):
  #pass event to the ec2
  #log event (done)
  #return response 


您可以为API网关启用CloudWatch日志记录。通过启用,您可以在cloud watch中找到请求的日志

创建一个IAM角色,该角色为API网关授予向cloud watch写入日志的权限 将IAM角色设置为API 设置所需的日志级别信息/错误 您还可以选择记录完整的请求/响应 要启用访问日志,还需要创建日志组并提供arn。 详细步骤可在以下参考资料中找到

希望这有帮助

参考:

我很想知道为什么您决定将API网关日志写入EC2。如果您成功地启用了iTunes,您可以配置API网关将日志写入cloud watch,我们在中遇到了记录的问题。无论选择1kb的选项,请求主体都会被截断。我们不可能将呼叫分步到1KB以下。感谢您的关注!抱歉,我现在明白了。