Запустите python коды из облачной корзины Google для запуска с файлом CSV из другой корзины - PullRequest
1 голос
/ 06 февраля 2020

У меня есть несколько сценариев python, которые обрабатывают файлы CSV, отправленные в облачное хранилище, и загружают выходной файл в другое хранилище. 1. init .py (основной файл) 2. google_client.py (считывает входной файл и загружает выходной файл) 3. DP_Workflow.py (передает файл в рабочий процесс DP для создания выходного файла)

Это хорошо работает локально, но я пытаюсь найти способы загрузить это в корзину и запускать его для файла CSV всякий раз, когда загружается в другое ведро. Есть ли способ вызвать эти файлы сразу?

1 Ответ

4 голосов
/ 06 февраля 2020

Вы должны создать облачную функцию, эта облачная функция будет запускаться всякий раз, когда CSV-файл загружается в ваш контейнер. Чтобы развернуть облачную функцию, которая отвечает на новый файл в корзине, вы можете использовать следующую команду:

gcloud functions deploy YOUR_FUNCTION \
  --entrypoint=handler \
  --runtime=python37 \
  --trigger-resource=YOUR_TRIGGER_BUCKET_NAME \
  --trigger-event=google.storage.object.finalize

Затем переименуйте ваш init.py в main.py (google logi c) и поместите в этот файл в качестве точки входа добавляется следующее:

def handler(data, context):
    bucket = data['bucket']
    file = data['name']
    .... 
    # whatever processing you want here

Структура вашего каталога:

  • main.py
  • needs.txt
  • google_client .py
  • DP_Workflow.py
...