我在python中创建了一个Deployment Manager模板,它在运行时生成资源名称,以便在google云平台上创建具有相同模板的多个部署。成功部署后,我需要通过输出公开Web服务器的外部IP地址。我在我的python模板中添加了以下内容:
def GenerateConfig(context):
outputs = []
resources = [
{
} ]
outputs.append({'name': name,
'value': value})
return {'resources': resources, 'outputs': outputs}
问题是,输出没有显示在控制台上,但是,我可以在部署布局中看到它。
答案 0 :(得分:0)
您显示的配置似乎适合我,我认为没有理由不在控制台中显示它。也许你可以考虑这里解释的类似实现
答案 1 :(得分:0)
我花了一点时间才弄清楚这一点。为了将输出显示在控制台上,您需要在模式文件中包含输出。因此,如果您的模板名为template.py
并且看起来像:
from lib.helper import Helper
def GenerateConfig(context):
outputs = []
resources = [
{
"name": "resource-1",
"type": "resource.py"
}
]
outputs.append({'name': "myField",
'value': "$(ref.resource-1.someValue)"})
outputs.append({'name': "myOtherField",
'value': "$(ref.resource-1.someOtherValue)"})
return {'resources': resources, 'outputs': outputs}
您将拥有一个名为template.py.schema
的架构文件,其内容为:
imports:
- path: "lib/helper.py"
- path: "templates/resource.py"
name: "resource.py"
outputs:
myField:
myOtherField:
已经很晚了,但我希望这对某人有帮助!
奖金提示:,当使用Python文件作为模板时,您必须使用架构文件来指定包含文件(甚至是库!),如上例所示。