2016-12-12 1 views
1

AWS Lambda에서 Python API를 사용하여 SQS 메시지에 쓰려고하는데 시간 제한을 시도하지만 (1 분 동안 실행했지만 성공 없음). 역할에 대해 SQS 전체 액세스 권한을 구성했습니다. 함수 로그가 올바른 위치에 있다는 것을 알 수 있지만 마지막 줄에는AWS로 메시지 보내기 Lambda Python API 시간 초과

Starting new HTTPS connection (1): eu-west-1.queue.amazonaws.com 

이 있습니다. AWS 콘솔에서 테스트 클라이언트를 사용하여 테스트하고 있습니다.

핸들러 코드는 다음과 같습니다

import boto3 
import logging 
import os 

logger = logging.getLogger() 
logger.setLevel(logging.DEBUG) 

QUEUE_NAME = os.getenv("QUEUE_NAME") 
SQS = boto3.client("sqs") 

def getQueueURL(): 
    """Retrieve the URL for the configured queue name""" 
    q = SQS.get_queue_url(QueueName=QUEUE_NAME).get('QueueUrl') 
    logger.debug("Queue URL is %s", QUEUE_URL) 
    return q 

def record(event, context): 
    """The lambda handler""" 
    logger.debug("Recording with event %s", event) 
    data = event.get('data') 
    try: 
     logger.debug("Recording %s", data) 
     u = getQueueURL() 
     logging.debug("Got queue URL %s", u) 
     resp = SQS.send_message(QueueUrl=u, MessageBody=data) 
     logger.debug("Send result: %s", resp) 
    except Exception as e: 
     raise Exception("Could not record link! %s" % e) 

이 큐의 URL을 검색에 항상 시간 제한에 보인다. 왜 그런데 실제로 어떻게 대기열에 쓸 수 있는지 어떻게 방지 할 수 있습니까?

+1

람다 함수를 VPC에 넣었습니까? –

+1

정확히 작동 한 것은 무엇입니까? VPC에는 역할이 없으므로 내가 한 말을 확신하지 못합니다. –

+0

람다 함수에 대한 VPC 할당을 제거했습니다. 혼란을 드려 죄송합니다. –

답변

0

이 기능을 VPC 및 관련 서브넷에 할당하여 외부 리소스에 액세스하지 못하게했습니다. 이 문제를 해결하면 내 문제가 해결되었습니다.