Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Ve výchozím nastavení azd up se zobrazí výzva ke třem věcem: název prostředí, předplatné a umístění. Skutečné projekty ale často potřebují další vstup, například typ prostředí, vlastník projektu nebo název týmu. Tento článek popisuje tři přístupy pro přidávání vlastních výzev, od nejjednodušších po nejflexibilnější. Ve stejné šabloně můžete kombinovat a shodovat všechny tři přístupy.
Možnost 1: Seznam výběru s dekorátorem @allowed
Nejjednodušší způsob, jak přidat vlastní výzvu, je použít dekorátor @allowed u parametru Bicep. Když azd narazí na parametr s @allowed hodnotami a není zadána žádná hodnota, zobrazí se interaktivní seznam volený podobný vestavěným předplatným a výběrům umístění.
Přidejte do souboru dekorovaný parametr infra/main.bicep :
@description('The environment type')
@allowed([
'dev'
'staging'
'prod'
])
param environmentType string
Při spuštění azd upazd automaticky zobrazí seznam výběru pro tento parametr. Uživatel se může pohybovat pomocí kláves se šipkami a zadáním filtru, stejně jako výběr předplatného.
Není nutná žádná další konfigurace. Přidejte parametr do souboru Bicep a azd zpracuje zbytek.
Návod
Pomocí dekorátoru @metadataazd.default zvýrazněte výchozí výběr:
@allowed(['dev', 'staging', 'prod'])
@metadata({
azd: {
default: 'dev'
}
})
param environmentType string
Další možnosti dekorátoru najdete v tématu Work with Azure Developer CLI metadata for Bicep input parameters.
Možnost 2: Zadání volného textu
Pokud potřebujete otevřený vstup místo pevného seznamu, deklarujte parametr bez výchozí hodnoty. Když azd dojde k požadovanému parametru, který nemá výchozí hodnotu a nemá žádnou main.parameters.jsonhodnotu, vyzve uživatele k zadání volného textu.
Přidejte do souboru parametr infra/main.bicep :
@description('Who owns this project')
param projectOwner string
Při spuštění azd upuživatel zadá hodnotu a stiskne Enter.
Možnost 3: Háky pro vlastní logiku
Dekorátory Bicep pokrývají většinu scénářů, ale někdy potřebujete větší flexibilitu, jako jsou dynamické seznamy z rozhraní API, podmíněné dotazy, ověření nebo vlastní uživatelské rozhraní podobné nabídce. V těchto případech pomocí preprovision háku spusťte vlastní skript před azd provision.
Pochopte tok
Přístup pomocí háku funguje následujícím řetězcem.
- Hook skript se spustí a vyzve uživatele pomocí vlastních nabídek, ověřovacích kroků nebo jiné logiky.
- Skript ukládá hodnoty pomocí
azd env set VARIABLE_NAME value. - Hodnoty se uchovávají v
.azure/<env>/.envsouboru . -
main.parameters.jsonodkazuje na hodnoty jako${VARIABLE_NAME}. - Bicep je během zřizování přijímá jako běžné parametry.
Vytvoření skriptu háku
Vytvořte skript hooku, který uživatele vyzve a uloží výsledek. Následující příklady zahrnují idempotentní ochranu, která přeskočí výzvu při opětovném spuštění, pokud je hodnota již nastavená, a default případ, který zpracovává neplatný vstup.
Vytvořte hooks/preprovision.ps1 soubor:
Write-Host "========================================"
Write-Host " Custom Pre-Provision Configuration"
Write-Host "========================================"
# Skip prompt if value is already set
$existingTeam = $null
$output = azd env get-value CUSTOM_TEAM_NAME 2>&1
if ($LASTEXITCODE -eq 0 -and $output) {
$existingTeam = $output.Trim()
}
if ($existingTeam) {
Write-Host "Team name is already set to: $existingTeam"
exit 0
}
Write-Host "Available teams:"
Write-Host " 1) platform-engineering"
Write-Host " 2) app-development"
Write-Host " 3) data-science"
Write-Host " 4) devops"
Write-Host " 5) Enter custom value"
$choice = Read-Host "Select a team (1-5)"
$teamName = switch ($choice) {
"1" { "platform-engineering" }
"2" { "app-development" }
"3" { "data-science" }
"4" { "devops" }
"5" { Read-Host "Enter custom team name" }
default {
Write-Error "Invalid selection: $choice"
exit 1
}
}
# Store in azd environment
azd env set CUSTOM_TEAM_NAME $teamName
Write-Host "Team name set to: $teamName"
Mapování proměnné na parametr Bicep
Ve main.parameters.json souboru odkazujte na proměnnou prostředí:
{
"parameters": {
"customTeamName": {
"value": "${CUSTOM_TEAM_NAME}"
}
}
}
V souboru main.bicep deklarujte parametr s výchozím nastavením, aby se azd k němu nezobrazila znovu výzva:
@description('Team name - set by preprovision hook')
param customTeamName string = ''
Povolení háku
Přidejte do svého azure.yamlzařízení konfiguraci háku:
hooks:
preprovision:
windows:
shell: pwsh
run: hooks/preprovision.ps1
interactive: true
posix:
shell: sh
run: hooks/preprovision.sh
interactive: true
Nastavení interactive: true vytvoří vazbu skriptu na konzolu, aby mohl číst vstup uživatele. Další informace o konfiguraci háku najdete v tématu Přiřaďte pracovní postupy rozhraní příkazového řádku Azure Developer CLI pomocí příkazů a hooků událostí.
Volba správného přístupu
| Scénář | Přístup |
|---|---|
| Vyberte z pevného seznamu hodnot. |
@allowed dekorátor (možnost 1) |
| Shromážděte zadání volného textu. | Parametr bez výchozího nastavení (možnost 2) |
| Dynamické seznamy, volání rozhraní API nebo podmíněná logika | Hook skript (možnost 3) |
| Přeskočte všechny výzvy v CI/CD. | Předpřipravené hodnoty (viz následující část) |
Přeskočit výzvy v CI/CD
Všechny tři možnosti podporují neinteraktivní režim. Před spuštěním azd a předáním --no-prompt přednastavených hodnot:
# Set hook values
azd env set CUSTOM_TEAM_NAME "platform-engineering"
# Set Bicep parameter values
azd env config set infra.parameters.environmentType "prod"
azd env config set infra.parameters.projectOwner "ci-bot"
# Run with no prompts
azd up --subscription <subscription-id> --location eastus --no-prompt
Pokud chybí požadovaná hodnota, azd hlásí přesně ten parametr, který chybí, a zobrazí azd env config set příkaz potřebný k jeho opravě.
Související obsah
- Práce s metadaty Azure Developer CLI pro vstupní parametry Bicep
- Přiřaďte pracovní postupy rozhraní příkazového řádku pro vývojáře Azure pomocí příkazů a háků událostí
- Práce s proměnnými prostředí rozhraní příkazového řádku Azure Developer CLI
- parametry a dekorátory Bicep
- Ukázkové úložiště: azd-custom-parameters