Время работы облачных функций при вызове внешнего HTTP с запросом POST - PullRequest
0 голосов
/ 21 марта 2020

У меня есть функция Google Cloud, и в рамках этого я вызвал два внешних API (или URL-адреса), используя библиотеку Python requests, одну requests.get и другую requests.post. Обратите внимание, что эти API протестированы и работают с использованием Postman.

requests.get загружает файл MP3 и работает в облачных функциях, поскольку я смог увидеть загруженный файл в облачном хранилище:

download_url = "https://some.url.com/music.mp3"
resp = requests.get(download_url)
[get the resp.content, put to storage bucket]

Помимо хранения в облачном хранилище, я также отправляю этот mp3-файл в Google Cloud Speech-to-Text API и получаю расшифрованный текст, который я хочу опубликовать на другом URL.

[transcribe the audio using Speech-to-Text API, get the transcibed text]
data = { "download_url": download_url, "transcription": transcribed_text }
upload_api = https://another.url.com/api"
resp = requests.post(upload_api, data = data)

Аналогично, транскрипция работает, потому что я печатаю / регистрирую текст, который отображается в консоли «Просмотр журналов» облачных функций. Однако в requests.post я получаю тайм-аут, также согласно журналам.

requests.post(upload_api, data = data, timeout=120)

enter image description here

enter image description here

Я даже удлиняю настройку тайм-аута, но это все равно происходит. Что может быть объяснением этого? Есть ли какая-то конфигурация Google Cloud, которую я пропускаю, чтобы установить где-то, что может быть причиной этого?

1 Ответ

1 голос
/ 24 марта 2020

Это потому, что облачные функции GCP имеют 1-минутный тайм-аут, для исправления необходимо объявить лимит времени ожидания при создании вашей функции

, если вы используете команды CLI Gcloud для развертывания своей функции, вам нужно Чтобы добавить флаг --timeout

, например,

gcloud functions deploy FUNCTION_NAME --timeout=TIMEOUT FLAGS

, если вы используете консоль GCP (веб-интерфейс), вам необходимо выполнить действия, указанные в этой ссылке

...