如何解决:IOError-我的lambda函数(LogzIOCloudwatchShipper)中没有gzip压缩文件

时间:2019-05-27 09:22:30

标签: python amazon-web-services aws-lambda amazon-cloudwatch serverless

我已将无服务器回购应用程序部署到我的AWS账户。该应用程序是LogzioCLoudWatchShipper。我的意图是将cloudwatch事件设置为该lambda函数的触发器,然后将执行该lambda函数,从事件中提取日志数据,并将日志数据发送到logz.io。

当我在AWS控制台中测试lambda函数时,输出以下错误:“ errorType”:     “ IOError”,     “ errorMessage”:“不是压缩文件”

我已经成功部署了无服务器回购应用程序,并且可以在AWS控制台中看到lambda的代码。

我指定了一个具有以下布局的事件:

{"awslogs":{"data":"aGVsbG8gd29ybGQ=}}

此处是从事件中提取日志数据的功能。此函数是lambda函数的一部分。

def _extract_aws_logs_data(event):
# type: (dict) -> dict
try:
    logs_data_decoded = event['awslogs']['data'].decode('base64')
    logs_data_unzipped = gzip.GzipFile(fileobj=StringIO(logs_data_decoded)).read()
    logs_data_dict = json.loads(logs_data_unzipped)
    return logs_data_dict
except ValueError as e:
    logger.error("Got exception while loading json, message: {}".format(e))
    raise ValueError("Exception: json loads")

我还将事件添加到了我的serverless.yaml功能块中:

  handler: lambda_function.lambda_handler //From AWS console                                                                                                                                                                         
  events:                                                                                                                                                                                                          
    - cloudwatchEvent:                                                                                                                                                                                             
        event:                                                                                                                                                                                                     
          source:                                                                                                                                                                                                  
            - 'custom.servicename'                                                                                                                                                                                
          detail-type:                                                                                                                                                                                             
            - 'New_Event'                                                                                                                                                                                 
~

0 个答案:

没有答案