AWS Lambda Python S3和boto3,不知道为什么会出现错误

2024-10-01 05:00:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经注释掉了所有其他代码,并将其移至顶部。还是会出错,根本不知道为什么。我已确认IAM的正确性此Lambda函数附带S3FullAccess。我已经在这上面呆了一段时间了,我在搜索中找到的所有东西都没有帮助:/I我的原始代码使用

import os
import pymysql
import json
import sys
import logging
import boto3
import zipfile
import tempfile

# logging.getLogger().setLevel(logging.INFO)
# logger = logging.getLogger()
# logger.setLevel(logging.INFO)

s3 = boto3.client('s3')

bucket = 'packages'
key = 'Packages/1005/v1005/1005.pkg'

def lambda_handler(event, context):
    try:
        data = s3.get_object(Bucket=bucket, Key=key)
        json_data = data['Body']

        return {
            'statusCode': '200',
            'body': str(type(json_data)),
        }

    except Exception as e:
        print(e)
        raise e

    sys.exit()

执行后,这里是我的结果,我将超时时间从默认值增加到20秒,以防超时:

{
  "errorMessage": "2020-03-10T03:49:45.400Z c51405a5-9eed-4167-8b6f-edf36beb9c15 Task timed out after 20.02 seconds"
}

Request ID:
"c51405a5-9eed-4167-8b6f-edf36beb9c15"

Function Logs:
START RequestId: c51405a5-9eed-4167-8b6f-edf36beb9c15 Version: $LATEST
END RequestId: c51405a5-9eed-4167-8b6f-edf36beb9c15
REPORT RequestId: c51405a5-9eed-4167-8b6f-edf36beb9c15  Duration: 20018.46 ms   Billed Duration: 20000 ms   Memory Size: 128 MB Max Memory Used: 81 MB  Init Duration: 382.35 ms    
2020-03-10T03:49:45.400Z c51405a5-9eed-4167-8b6f-edf36beb9c15 Task timed out after 20.02 seconds```

Tags: 代码importjsondatas3loggingsysboto3
1条回答
网友
1楼 · 发布于 2024-10-01 05:00:52

您的lambda是否在VPC子网内运行?在这种情况下,您必须有一个正确的网络设置。子网需要有一个通向公共互联网的网关,或者最好在VPC内部配置一个S3端点。除了路由设置之外,lambda的安全组还必须允许访问S3

相关问题 更多 >