Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.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
如何在Azure管道中使用each表达式连接bash脚本_Bash_Kubernetes_Azure Devops_Yaml_Azure Pipelines - Fatal编程技术网

如何在Azure管道中使用each表达式连接bash脚本

如何在Azure管道中使用each表达式连接bash脚本,bash,kubernetes,azure-devops,yaml,azure-pipelines,Bash,Kubernetes,Azure Devops,Yaml,Azure Pipelines,我有几个地方需要在不同阶段的部署期间定义一组K8s机密,因此我想将重复脚本提取到模板中: parameters: - name: secretName type: string default: "" - name: secrets type: object default: Foo: Bar steps: - task: Bash@3 displayName: Create generic secret ${

我有几个地方需要在不同阶段的部署期间定义一组K8s机密,因此我想将重复脚本提取到模板中:

parameters:
  - name: secretName
    type: string
    default: ""
  - name: secrets
    type: object
    default:
      Foo: Bar

steps:
  - task: Bash@3
    displayName: Create generic secret ${{ parameters.secretName }}
    inputs:
      targetType: inline
      script: |
        echo "Creating generic secret ${{ parameters.secretName }}"
        microk8s kubectl delete secret ${{ parameters.secretName }}
        microk8s kubectl create secret generic ${{ parameters.secretName }} ${{ each secret in parameters.secrets }}: --from-literal=${{ secretKey }}="${{ secret.value }}" 
我想多次这样称呼它,为每个阶段的部署创建所有必要的秘密

-作业:创建机密
游泳池:
名称:$(池名称)
步骤:
-模板:“模板/模板创建机密.yml”
参数:
secretName:“testSecret”
秘密:
用户名:$(临时用户)
密码:$(登台密码)
foo:$(巴)
它应该简单地执行一个与此类似的脚本:

kubectl创建机密通用secretName\
--from literal=username=user1\
--from literal=password=pass1\
--…等等
根据我目前的方法,我收到了错误:

/代码/BuildScripts/Templates/template-create-secret.yml(第18行, Col:15):在此上下文中不允许使用指令“each”。 嵌入到中的表达式不支持指令 一串。仅当整个值为 表情

如何迭代object类型的参数并使用其键和值为bash构建字符串?另一种方法是简单地为每个秘密使用一个键值对,并创建多个秘密,我希望避免这种情况。根据doc:,我们可以知道我们需要在脚本之前使用“each”关键字,这是帮助您了解更多有关密码的doc。以下是演示脚本:

parameters:
- name: listOfStrings
  type: object
  default:
  - one
  - two

steps:
- ${{ each value in parameters.listOfStrings }}:
  - script: echo ${{ value }}

不幸的是,这没有回答我的问题。