如何以编程方式在 Google 部署管理器中导入文件
How do you programmatically import files in Google 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])
您必须启用 globbing,这样配置文件现在可以在导入路径中使用 glob 模式:
gcloud config set deployment_manager/glob_imports True
这里是 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。
我正在看这个使用部署管理器部署云功能的示例: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])
您必须启用 globbing,这样配置文件现在可以在导入路径中使用 glob 模式:
gcloud config set deployment_manager/glob_imports True
这里是 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。