您如何以编程方式在Google Deployment Manager中导入文件

时间:2019-10-09 00:59:52

标签: google-cloud-platform google-deployment-manager

我正在看这个使用Deployment Manager部署云功能的示例: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 

每次有一个新文件时都必须添加它。 Deployment Manager也不支持通配符。

如何以编程方式导入文件?

这是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 个答案:

答案 0 :(得分:1)

您必须打开globbing,这样配置文件现在可以在导入路径中使用全局模式:

  

gcloud配置设置为deployment_manager / glob_imports为真

examples处可以添加整个文件夹:

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

# Helper classes
- path: helper/*.py

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

完整文档可在here中找到。