私は、次のタスクがあります。エスケープgolangテンプレート
template error while templating string: unexpected '.'. String: {{.ImageName}}/{{.Name}}/{{.ID}}\n\n
"The conditional check 'log_options_base != \"\"' failed.
問題はで間違いです:残念ながら、私は次の問題を抱えている
- name: Set default log options for Splunk
set_fact:
log_options_base:
tag: "{{ '{{' }}.ImageName{{ '}}' }}/{{ '{{' }}.Name{{ '}}' }}/{{ '{{' }}.ID{{ '}}' }}"
splunk-token: "{{ splunk_token }}"
splunk-url: "{{ splunk_url }}"
splunk-format: "json"
splunk-index: "my-dx"
labels: "{{ env }}"
when:
- log_driver is defined
- log_driver == 'splunk'
- name: Set extendend log options for Splunk
set_fact:
log_options_ext: "{{ log_options_base | combine({ 'env': NODE_ENV }) }}"
when:
- log_options_base != ""
をgolangテンプレートが、私の場合はすでにエスケープされています。
異なるテンプレートデリミタを試してみることができるため、エスケープは必要ありません。 – jeevatkm
@jeevatkmあなたは詳しく教えていただけますか? – Mazzy
デフォルトでは、Goのテンプレート区切り文字は '{{}}'です。あなたはそれを変更するオプションがあります。例えば:[template.Delims](https://golang.org/pkg/text/template/#Template.Delims)を介して '[[]]'に。 – jeevatkm