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 Lerneinheit 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:
- Die Pipelinekonfiguration kann leichter wiederverwendet werden.
- Sie können die Pipeline als Code definieren, sodass Sie Pipelineänderungen im Zeitverlauf nachverfolgen können.
- Der Code bleibt sauber und strukturiert.
Verschieben von Parametern in eine YAML-Datei
Sie können erzwingen, dass eine Pipeline von einer bestimmten Vorlage aus erweitert wird, um die Sicherheit zu erhöhen.
Im folgenden Beispiel definiert die Datei „parameters.yml“ den Parameter „buildSteps“, der anschließend 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 eigenen Repository oder in einem anderen 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 Datei parameters.yml
:
# 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
vom Typ stepList
ist. In diesem Fall wird die Pipeline fortgesetzt. Andernfalls 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 aus einer Vorlage eine erforderliche Vorlagengenehmigung hinzufügen.
Probieren Sie es aus!
Erstellen Sie eine Pipeline mithilfe von Parametern aus einer YAML-Vorlagendatei, die eine Web-App basierend auf der von Benutzer*innen gewählten Umgebung in verschiedenen Regionen bereitstellt.
Weitere Informationen zu Parametern und Vorlagen finden Sie hier: