list_datasets()方法在AWS Lambda中不执行任何操作

问题描述 投票:0回答:1

我试图从AWS lambda中获取BigQuery的数据集列表。但是,在执行client.list_datasets()方法时,它什么也没做,lambda超时了。

我的代码如下:

from google.cloud.bigquery import Client
from google.oauth2.service_account import Credentials

credentials = Credentials.from_service_account_info(
            service_account_dict)

client = Client(
            project=service_account_dict.get("project_id"),
            credentials=credentials
        )

datasets = client.list_datasets()
print(datasets)

for dataset in datasets:
    print("dataset info", dataset.__dict__)

第一个print语句的输出是:

<google.api_core.page_iterator.HTTPIterator object at 0x7fbae4975550>

但是,dataset.__dict__的第二张照片没有打印出来。或者,不执行循环遍历HTTPIterator对象。

顺便说一句,代码在本地机器上运行得非常好。

python-3.x amazon-web-services google-cloud-platform aws-lambda google-bigquery
1个回答
0
投票

我在lambda函数中使用的AWS VPC导致了这个问题。 VPC阻止了对外部API的请求(在我的案例中是BigQuery API)。

配置VPC子网和NAT网关以将lambda函数公开到Internet(0.0.0.0/0)解决了该问题。

© www.soinside.com 2019 - 2024. All rights reserved.