2

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

job-deploy.yml@templates:预期的映射结束

我的问题在哪里?

按照模板调用:

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 }}
4

1 回答 1

6

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 }}
于 2020-12-17T08:56:49.170 回答