尝试使用python lambda函数上的boto连接到S3存储桶时超时

时间:2016-11-17 23:27:58

标签: python boto aws-lambda boto3

我试图编写一个相当简单的AWS lambda函数,该函数在S3存储桶上接收创建事件,对数据库交叉引用该文件,如果发现该文件属于某种类型,则复制它到另一个桶。通过配置我的VPC并为lambda函数中使用的角色分配适当的权限,我可以轻松导出包含pymysql的部署文件,并允许我与数据库通信。我真正挂断的地方就是与S3沟通。在超时之前,以下代码将一直运行直到打印"base s3 connection successful"。它超时我是否将超时阈值设置为30秒或5分钟。

我尝试过手动创建连接,以及依赖lambda环境提供的环境变量并获得相同的结果。我的问题与使用boto而不是boto3有关吗?

我该如何解决这个问题?

干杯,

亚伦

from __future__ import print_function

import os
import json
import urllib
import boto3

import boto
from boto.s3.key import Key
import pymysql

print(os.environ)

import credentials
CRM_HOST = credentials.CRM_HOST
CRM_USER = credentials.CRM_USER
CRM_PASS = credentials.CRM_PASS
AWS_ACCESS_KEY_ID = credentials.AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY = credentials.AWS_SECRET_ACCESS_KEY

try:
    conn = pymysql.connect(host=CRM_HOST, user=CRM_USER,\
        passwd=CRM_PASS, db='oro_crm')
    print('SQL connection successful')
except Exception, e:
    print('SQL connection failed')
    print(str(e))

try:
    # s3 = boto.connect_s3(aws_access_key_id=AWS_ACCESS_KEY_ID,\
    #     aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
    s3 = boto.connect_s3()
    print('base S3 connection successful')
    src = s3.get_bucket('s3-crm-dev')
    print('got ocr source bucket')
    dst = s3.get_bucket('s3-crm-input')
    print('got ocr input bucket')
    out_dst = s3.get_bucket('s3-crm-output')
    print('got ocr output bucket')

0 个答案:

没有答案