Verschieben von Parametern in eine YAML-Datei
In Azure Pipelines können Sie YAML-Dateien verwenden, um die Konfiguration Ihrer Pipeline als Code zu definieren. Parameter in YAML-Dateien helfen Ihnen, die Pipeline wiederzuverwenden und den Code sauber zu halten. In dieser Lektion erfahren Sie, wie Sie Parameter in eine YAML-Datei verschieben.
Gründe für die Verwendung von Parametern in YAML-Dateien
Vorteile der Verwendung von Parametern in YAML-Dateien:
- Sie hilft bei der Wiederverwendung der Pipelinekonfiguration.
- Sie können die Pipeline als Code definieren, sodass Sie Pipelineänderungen im Laufe der Zeit nachverfolgen können.
- Es hält den Code sauber und organisiert.
Verschieben von Parametern in eine YAML-Datei
Sie können erzwingen, dass eine Pipeline aus einer bestimmten Vorlage erweitert wird, um die Sicherheit zu erhöhen.
Im folgenden Beispiel definiert die Datei parameters.yml die Parameter buildSteps, die dann in der Pipeline azure-pipelines.yml verwendet wird. Wenn in parameters.yml ein BuildStep mit einem Skriptschritt übergeben wird, wird er abgelehnt, und der Pipelinebuild schlägt fehl.
Erstellen Sie eine Datei namens parameters.yml in Ihrem Repository oder ein anderes Repository, das für Ihre Vorlagen spezifisch ist.
Definieren Sie Ihre Parameter in dieser Datei mithilfe der YAML-Syntax:
# File: parameters.yml
parameters:
- name: buildSteps # the name of the parameter is buildSteps
type: stepList # data type is StepList
default: [] # default value of buildSteps
stages:
- stage: secure_buildstage
pool:
vmImage: windows-latest
jobs:
- job: secure_buildjob
steps:
- script: echo This happens before code
displayName: 'Base: Pre-build'
- script: echo Building
displayName: 'Base: Build'
- ${{ each step in parameters.buildSteps }}:
- ${{ each pair in step }}:
${{ if ne(pair.value, 'CmdLine@2') }}:
${{ pair.key }}: ${{ pair.value }}
${{ if eq(pair.value, 'CmdLine@2') }}:
# Step is rejected by raising a YAML syntax error: Unexpected value 'CmdLine@2'
'${{ pair.value }}': error
- script: echo This happens after code
displayName: 'Base: Signing'
Erstellen Sie eine Datei mit dem Namen azure-pipelines.yml, und verweisen Sie auf die parameters.yml Datei:
# File: azure-pipelines.yml
trigger:
- main
extends:
template: parameters.yml
parameters:
buildSteps:
- bash: echo Test #Passes
displayName: succeed
- bash: echo "Test"
displayName: succeed
# Step is rejected by raising a YAML syntax error: Unexpected value 'CmdLine@2'
- task: CmdLine@2
inputs:
script: echo "Script Test"
# Step is rejected by raising a YAML syntax error: Unexpected value 'CmdLine@2'
- script: echo "Script Test"
Hier sehen Sie, dass die Pipeline aus der Vorlage parameters.yml erweitert wird. Der Parameter buildSteps wird an die Vorlage übergeben. Die Vorlage überprüft, ob der Wert des Parameters buildSteps ein stepList Typ ist. In diesem Fall wird die Pipeline fortgesetzt. Wenn dies nicht der Fall ist, schlägt die Pipeline fehl.
Versuchen Sie, die Pipeline auszuführen. Sie sollten folgenden Fehler erhalten:

Sie können die Sicherheit erhöhen, indem Sie beim Erweitern von einer Vorlage eine erforderliche Vorlagengenehmigung hinzufügen.
Sich selbst herausfordern
Erstellen Sie eine Pipeline mithilfe von Parametern aus einer YAML-Vorlagendatei, die eine Web-App basierend auf der Wahl der Umgebung eines Benutzers in verschiedenen Regionen bereitstellt.
Weitere Informationen zu Parametern und Vorlagen finden Sie unter: