相关疑难解决方法(0)

AWS Lambda:无法从具有VPC访问权限的Lambda函数访问SQS队列

我有一个Lambda函数,需要使用它的URL从SQS队列中读取消息.然后,它需要将该数据插入到在VPC内的服务器上运行的Cassandra.

我能够从我的Lambda函数访问Cassandra服务器,使用它的私有IP并正确配置安全组.

但是,我无法从SQS队列中读取消息.当我将Lambda函数的配置更改为No VPC,然后我能够从SQS队列中读取消息.但是,使用VPC设置时,它只会超时.

我怎么能克服这个?我已检查我的Lambda函数的安全组是否具有对所有IP地址的完全出站访问权限.

aws-lambda

15
推荐指数
3
解决办法
8602
查看次数

AWS Lambda 与 SQS 的连接超时

我正在处理一项涉及在 VPC 内运行的Lambda 函数 的任务。

此函数应该将消息推送到SQS,并且 lambda 执行角色具有策略:添加了AWSLambdaSQSQueueExecutionRoleAWSLambdaVPCAccessExecutionRole

拉姆达函数:

# Create SQS client
sqs = boto3.client('sqs')

queue_url = 'https://sqs.ap-east-1a.amazonaws.com/073x08xx43xx37/xyz-queue'

# Send message to SQS queue
response = sqs.send_message(
    QueueUrl=queue_url,
    DelaySeconds=10,
    MessageAttributes={
        'Title': {
            'DataType': 'String',
            'StringValue': 'Tes1'
        },
        'Author': {
            'DataType': 'String',
            'StringValue': 'Test2'
        },
        'WeeksOn': {
            'DataType': 'Number',
            'StringValue': '1'
        }
    },
    MessageBody=(
        'Testing'
     )
)

print(response['MessageId'])
Run Code Online (Sandbox Code Playgroud)

测试执行结果如下:

{
  "errorMessage": "2020-07-24T12:12:15.924Z f8e794fc-59ba-43bd-8fee-57f417fa50c9 Task timed out after 3.00 seconds"
}
Run Code Online (Sandbox Code Playgroud)

我将超时从基本设置增加到 5 …

amazon-sqs amazon-web-services amazon-vpc boto3 aws-lambda

0
推荐指数
2
解决办法
1450
查看次数