我正在尝试读取文件夹中的JSON文件 . 使用import_json . 这是我的代码
{% set instance_id = grains['INSTANCE_ID'] %}
INSTANCE_ID Env Var:
environ.setenv:
- name: INSTANCE_ID
- value: {{ grains['INSTANCE_ID'] }}
- update_minion: True
{% import_json "/tmp/$INSTANCE_ID/conf.json" as config_properties %}
但是我收到了这个错误
Data failed to compile:
Rendering SLS 'base:cloud.steps.conf' failed: Jinja error: /tmp/$INSTANCE_ID/conf.json.
虽然当我手动插入INSTANCE_ID时,它按预期工作 .
我想要的是能够插入 $INSTANCE_ID
或直接插入谷物值 {{ grains['INSTANCE_ID'] }}
有人可以帮我这个吗?谢谢 .
1 回答
我想你正在尝试在上面的语句中评估变量
$INSTANCE_ID
. Jinja模板评估表达式语句中的变量 .在这种情况下,变量在第一行中设置,使用
set
因此,您可以在表达式中使用它以及字符串追加,例如
以上陈述应解决您的错误 .
另外,我建议使用变量来评估上面的字符串表达式的值,比如
并像这样使用它
希望这有帮助!
如果你希望直接使用
grains
字典,你可以使用这样的值