Как программно импортировать файлы в Google Deployment Manager - PullRequest
0 голосов
/ 09 октября 2019

Я смотрю на этот пример, который использует диспетчер развертывания для развертывания облачной функции: https://github.com/GoogleCloudPlatform/deploymentmanager-samples/tree/master/examples/v2/cloud_functions

Одна из вещей, которая делает это громоздким и не очень удобным, это то, что он требует явного импорта КАЖДОГО файла вфункция:

imports:
- path: cloud_function.py
# The function code will be defined for the files in function/
- path: function/index.js
- path: function/package.json 

Нельзя допускать добавления к этому каждый раз, когда появляется новый файл. Диспетчер развертывания также не поддерживает подстановочные знаки.

Как программно импортировать файлы?

Это часть cloud_function.py, которая ссылается на импортированные файлы, я пытался просто использовать строку, но кажется, что импорт на самом деле где-то копирует файлы? Как мне сделать это программно, чтобы мне не нужно было явно определять каждый отдельный файл?

  files = ["function/index.js","function/package.json"] # this does not work if these files have not been declared via "import"
  #for imp in ctx.imports:
  for imp in files:
    if imp.startswith(ctx.properties['codeLocation']):
      zip_file.writestr(imp[len(ctx.properties['codeLocation']):],
                        ctx.imports[imp])

1 Ответ

1 голос
/ 10 октября 2019

Вы должны включить globbing , таким образом, файлы конфигурации теперь могут использовать шаблоны glob в путях импорта:

gcloud config set deploy_manager / glob_imports True

Вот примеры , где можно добавить целые папки:

imports:
- path: templates/simple_frontend.py
  name: simple_frontend.py

# Helper classes
- path: helper/*.py

# Configuration files
- path: configs/*.yaml
- path: configs/*/*.yaml

Полная документация может быть найдена здесь .

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