Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Alapértelmezés szerint azd up három dolgot kér: a környezet nevét, előfizetését és helyét. A valós projektekhez azonban gyakran szükség van további bemenetre, például környezettípusra, projekttulajdonosra vagy csapatnévre. Ez a cikk az egyéni kérések hozzáadásának három módszerét ismerteti a legegyszerűbbtől a legrugalmasabbig. Ugyanabban a sablonban mindhárom megközelítést kombinálhatja és egyeztetheti.
1. lehetőség: Kijelölési lista a @allowed dekoratorral
Az egyéni prompt hozzáadásának legegyszerűbb módja a @allowed dekorátor használata egy Bicep paraméterén. Ha azd értékeket tartalmazó @allowed paraméterrel találkozik, és nincs megadva érték, a beépített előfizetéshez és helyválasztókhoz hasonló interaktív kijelölési listát jelenít meg.
Adja hozzá a kitüntetett paramétert a infra/main.bicep fájlhoz:
@description('The environment type')
@allowed([
'dev'
'staging'
'prod'
])
param environmentType string
Amikor futtatja a azd up, a azd automatikusan megjelenít egy választási listát ehhez a paraméterhez. A felhasználó a nyílbillentyűkkel navigálhat, és beírhatja a szűrést, akárcsak az előfizetésválasztó.
Nincs szükség további konfigurációra. Adja hozzá a paramétert a Bicep fájlhoz, és azd kezeli a többit.
Jótanács
Az alapértelmezett kijelölés kiemeléséhez használja a @metadata dekorátort a azd.default-vel.
@allowed(['dev', 'staging', 'prod'])
@metadata({
azd: {
default: 'dev'
}
})
param environmentType string
További dekoratőr-beállításokért lásd: Munka a Azure fejlesztői parancssori felület metaadataival Bicep bemeneti paraméterekhez.
2. lehetőség: Szabad szövegbevitel
Ha rögzített lista helyett nyílt végű bemenetre van szüksége, deklaráljon egy alapértelmezett értéket nem tartalmazó paramétert. Ha azd olyan kötelező paraméterrel találkozik, amelynek nincs alapértelmezett értéke, és nincs benne érték main.parameters.json, a program kéri a felhasználót a szabad szöveges bevitelre.
Adja hozzá a paramétert a fájlhoz infra/main.bicep :
@description('Who owns this project')
param projectOwner string
A futtatáskor azd upa felhasználó beír egy értéket, és lenyomja az Enter billentyűt.
3. lehetőség: Hookok egyéni logikához
Bicep dekorátorok a legtöbb forgatókönyvet lefedik, de néha nagyobb rugalmasságra van szükség, például API alapján generált dinamikus listákra, feltételes promptokra, érvényesítésre vagy egyéni menü stílusú felhasználói felületre. Ezekben az esetekben használjon egy preprovision hookot egy egyéni szkript futtatásához azd provision előtt.
A folyamat ismertetése
A horgos módszer a következő láncolaton keresztül működik:
- A horogszkript fut, és egyéni menükkel, érvényesítéssel vagy más logikával kéri a felhasználót.
- A szkript a
azd env set VARIABLE_NAME valuehasználatával tárolja az értékeket. - Az értékek megmaradnak a következőben
.azure/<env>/.env: . -
main.parameters.jsonaz értékekre a következőként hivatkozik${VARIABLE_NAME}: . - Az üzembe helyezés során a Bicep ezeket közönséges paraméterekként fogadja.
A horogszkript létrehozása
Hozzon létre egy horogszkriptet, amely kéri a felhasználót, és tárolja az eredményt. Az alábbi példák közé tartozik egy idempotencia-védő, amely kihagyja a kérést újrafuttatáskor, ha egy érték már be van állítva, és egy default olyan eset, amely érvénytelen bemenetet kezel.
hooks/preprovision.ps1 Fájl létrehozása:
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"
A változó leképezése Bicep paraméterre
A fájlban main.parameters.json hivatkozzon a környezeti változóra:
{
"parameters": {
"customTeamName": {
"value": "${CUSTOM_TEAM_NAME}"
}
}
}
main.bicep A fájlban deklarálja a paramétert alapértelmezettként, ezért azd nem kéri azt:
@description('Team name - set by preprovision hook')
param customTeamName string = ''
A horog engedélyezése
Adja hozzá a horogkonfigurációt a következőhöz azure.yaml:
hooks:
preprovision:
windows:
shell: pwsh
run: hooks/preprovision.ps1
interactive: true
posix:
shell: sh
run: hooks/preprovision.sh
interactive: true
A interactive: true beállítás a szkriptet a konzolhoz köti, hogy be tudja olvasni a felhasználói bemenetet. További információ a horogkonfigurációról: A Azure fejlesztői parancssori felület munkafolyamatainak beállítása parancs- és eseményhookok használatával.
Válassza ki a megfelelő megközelítést
| Scenario | Megközelítés |
|---|---|
| Válasszon egy rögzített értéklistából. |
@allowed dekoratőr (1. lehetőség) |
| Szabad szövegbevitel gyűjtése. | Alapértelmezett paraméter nélkül (2. lehetőség) |
| Dinamikus listák, API-hívások vagy feltételes logika. | Horogszkript (3. lehetőség) |
| Hagyja ki az összes felszólítást a CI/CD folyamatokban. | Előre beállított értékek (lásd a következő szakaszt) |
Parancssorok kihagyása a CI/CD-ben
Mindhárom lehetőség támogatja a nem interaktív módot. Előre állítsa be az értékeket a azd futtatása és a --no-prompt átadása előtt.
# 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
Ha hiányzik egy kötelező érték, pontosan jelzi, hogy melyik paraméter hiányzik, azd és megjeleníti a azd env config set javításhoz szükséges parancsot.
Kapcsolódó tartalom
- Az Azure fejlesztői parancssori felület metaadataival a Bicep bemeneti paraméterekhez való munkavégzés
- A Azure fejlesztői parancssori felület munkafolyamatainak beállítása parancs- és eseményhookok használatával
- Dolgozzon az Azure fejlesztői CLI környezeti változókkal
- Bicep paraméterek és jelölők
- Mintaadattár: azd-custom-parameters