Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services jinja内部AWS云形成的内在功能_Amazon Web Services_Jinja2_Amazon Cloudformation - Fatal编程技术网

Amazon web services jinja内部AWS云形成的内在功能

Amazon web services jinja内部AWS云形成的内在功能,amazon-web-services,jinja2,amazon-cloudformation,Amazon Web Services,Jinja2,Amazon Cloudformation,我有一个用于AWS云形成的jinja宏,我试图计算一个jinja表达式,该表达式也有一个内在的云形成函数,如: {{ ${Ref: MyParam}.capitalize() }} 基本上,我希望访问MyParam参数,然后将第一个字母大写,但jinja不会计算参数。它给出: jinja2.exceptions.TemplateSyntaxError 如何实现这一点?是Python的模板语言。这意味着您可以在CloudFormation配置yaml/json文件中使用它,以获得一些基本逻辑,对

我有一个用于AWS云形成的jinja宏,我试图计算一个jinja表达式,该表达式也有一个内在的云形成函数,如:

{{ ${Ref: MyParam}.capitalize() }}
基本上,我希望访问MyParam参数,然后将第一个字母大写,但jinja不会计算参数。它给出:

jinja2.exceptions.TemplateSyntaxError

如何实现这一点?

是Python的模板语言。这意味着您可以在CloudFormation配置yaml/json文件中使用它,以获得一些基本逻辑,对于重复的组件尤其有用

有一个限制,您不能在Jinja中计算AWS内在函数。换句话说,Jinja首先执行,然后Jinja构建的任何内容都作为普通的yml/json传递给CloudFormation

在您的示例中:
{{${Ref:MyParam}.capitalize()}

${Ref:MyParam}
对Jinja没有任何意义,也就是说,您没有想要大写的参数值。首先构建Jinja模板,然后在部署时CloudFormation知道MyParam是什么,因此它从参数中获取其值并替换配置中的占位符