Azure yaml 管道 "Expected mapping end"

Azure yaml pipeline "Expected mapping end"

我想定义部署作业(通过模板),但是,运行 我的 azure 管道显示以下错误:

job-deploy.yml@templates: Expected mapping end

我的问题在哪里?

遵循名为的模板:

parameters:
- name: clientBaseName
  type: string
- name: environment
  type: string
- name: aks
  type: string
- name: helm
  type: string
  default: 'helm3'
  values: 
  - 'helm2'
  - 'helm3'

jobs:
- deployment: deploy_{{ parameters.environment }}
  displayName: 'Deploy a MyPlace client.'
  environment: approvals-demo-core
  strategy:
    runOnce:
      preDeploy:
        steps:
          - template: ../tasks/task-chart-setup.yml
            parameters:
              helm: ${{ parameters.helm }}
      deploy:
        steps:
        - template: ../tasks/task-chart-deploy.yml
          parameters:
            type: data
            namespace: ${{ parameters.clientBaseName }}-{{ parameters.environment }}
            charts: ./charts/data
            values: ./output/{{ parameters.environment }}/data.yaml
            aks: {{ parameters.aks }}

        - template: ../tasks/task-chart-deploy.yml
          parameters:
            type: services
            namespace: ${{ parameters.clientBaseName }}-{{ parameters.environment }}
            charts: ./charts/services
            values: ./output/{{ parameters.environment }}/services.yaml
            aks: {{ parameters.aks }}

        - template: ../tasks/task-chart-deploy.yml
          parameters:
            type: jobs
            namespace: ${{ parameters.clientBaseName }}-{{ parameters.environment }}
            charts: ./charts/jobs
            values: ./output/{{ parameters.environment }}/jobs.yaml
            aks: {{ parameters.aks }}

Expected mapping end通常是指yaml语法格式错误。您的 yaml 文件中的引用变量中缺少“$”。

您需要将 {{ parameters.environment }} 更改为 ${{ parameters.environment }}

parameters:
- name: clientBaseName
  type: string
- name: environment
  type: string
- name: aks
  type: string
- name: helm
  type: string
  default: 'helm3'
  values: 
  - 'helm2'
  - 'helm3'

jobs:
- deployment: deploy_${{ parameters.environment }}
  displayName: 'Deploy a MyPlace client.'
#  environment: approvals-demo-core
  strategy:
    runOnce:
      preDeploy:
        steps:
          - template: ../tasks/task-chart-setup.yml
            parameters:
              helm: ${{ parameters.helm }}
      deploy:
        steps:
        - template: ../tasks/task-chart-deploy.yml
          parameters:
            type: data
            namespace: ${{ parameters.clientBaseName }}-${{ parameters.environment }}
            charts: ./charts/data
            values: ./output/{{ parameters.environment }}/data.yaml
            aks: ${{ parameters.aks }}

        - template: ../tasks/task-chart-deploy.yml
          parameters:
            type: services
            namespace: ${{ parameters.clientBaseName }}-${{ parameters.environment }}
            charts: ./charts/services
            values: ./output/${{ parameters.environment }}/services.yaml
            aks: ${{ parameters.aks }}

        - template: ../tasks/task-chart-deploy.yml
          parameters:
            type: jobs
            namespace: ${{ parameters.clientBaseName }}-${{ parameters.environment }}
            charts: ./charts/jobs
            values: ./output/${{ parameters.environment }}/jobs.yaml
            aks: ${{ parameters.aks }}