我已经注释掉了所有其他代码,并将其移至顶部。还是会出错,根本不知道为什么。我已确认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```
您的lambda是否在VPC子网内运行?在这种情况下,您必须有一个正确的网络设置。子网需要有一个通向公共互联网的网关,或者最好在VPC内部配置一个S3端点。除了路由设置之外,lambda的安全组还必须允许访问S3
相关问题 更多 >
编程相关推荐