Метод list_datasets () ничего не делает в AWS Lambda - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь получить список наборов данных из BigQuery внутри лямбда-связи AWS.Но при выполнении метода client.list_datasets() он ничего не делает, и лямбда-тайм-аут истекает.

Мой код выглядит следующим образом:

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__)

Вывод первого оператора печати:

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

Но второй вывод дляdataset.__dict__ не печатается.Или зацикливание объекта HTTPIterator не выполняется.

Кстати, код отлично работает на локальном компьютере.

1 Ответ

0 голосов
/ 25 апреля 2019

Эта проблема была вызвана AWS VPC, который я использовал в лямбда-функции.VPC заблокировал запросы к внешнему API (в моем случае BigQuery API).

Настройка подсети VPC и шлюза NAT для предоставления лямбда-функции Интернету (0.0.0.0/0) решила проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...