Környezeti változók beállítása tárolópéldányokban
A tárolópéldányok környezeti változóinak beállítása lehetővé teszi a tárolóban futó alkalmazás vagy szkript dinamikus konfigurálását. Ez hasonló a --env
parancssori argumentumhoz a következőhöz: docker run
.
Ha környezeti változókat szeretne beállítani egy tárolóban, adja meg őket egy tárolópéldány létrehozásakor. Ez a cikk példákat mutat be a környezeti változók beállítására, amikor egy tárolót az Azure CLI-vel, Azure PowerShell és a Azure Portal indít el.
Ha például a Microsoft aci-wordcount tárolórendszerképét futtatja, a viselkedését a következő környezeti változók megadásával módosíthatja:
NumWords: Az STDOUT-nak küldött szavak száma.
MinLength: A szavakban szereplő karakterek számának minimális száma. A nagyobb szám figyelmen kívül hagyja az olyan gyakori szavakat, mint az "of" és a "the".
Ha környezeti változóként kell titkos kulcsokat átadnia, Azure Container Instances támogatja a windowsos és a Linux-tárolók biztonságos értékeit is.
Megjegyzés
Javasoljuk, hogy az Azure Az PowerShell-modult használja az Azure-ral való kommunikációhoz. Az első lépésekhez tekintse meg az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.
Azure CLI-példa
Az aci-wordcount tároló alapértelmezett kimenetének megtekintéséhez először futtassa az az container create paranccsal (nincs megadva környezeti változó):
az container create \
--resource-group myResourceGroup \
--name mycontainer1 \
--image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
--restart-policy OnFailure
A kimenet módosításához indítsa el a második tárolót a --environment-variables
hozzáadott argumentummal, és adja meg a NumWords és a MinLength változók értékeit. (Ez a példa feltételezi, hogy a parancssori felületet Bash-rendszerhéjban vagy Azure Cloud Shell futtatja. Ha a Windows parancssorát használja, adja meg a változókat dupla idézőjelekkel, például --environment-variables "NumWords"="5" "MinLength"="8"
.)
az container create \
--resource-group myResourceGroup \
--name mycontainer2 \
--image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
--restart-policy OnFailure \
--environment-variables 'NumWords'='5' 'MinLength'='8'
Ha mindkét tároló állapota Leállítva állapotúként jelenik meg (az az container show használatával ellenőrizze az állapotot), a kimenet megtekintéséhez az az container logs (az container logs ) állapotban jelenítse meg a naplókat.
az container logs --resource-group myResourceGroup --name mycontainer1
az container logs --resource-group myResourceGroup --name mycontainer2
A tárolók kimenetei bemutatják, hogyan módosította a második tároló szkriptjének viselkedését a környezeti változók beállításával.
mycontainer1
[('the', 990),
('and', 702),
('of', 628),
('to', 610),
('I', 544),
('you', 495),
('a', 453),
('my', 441),
('in', 399),
('HAMLET', 386)]
mycontainer2
[('CLAUDIUS', 120),
('POLONIUS', 113),
('GERTRUDE', 82),
('ROSENCRANTZ', 69),
('GUILDENSTERN', 54)]
Azure PowerShell példa
A Környezeti változók beállítása a PowerShellben hasonló a parancssori felülethez, de a parancssori -EnvironmentVariable
argumentumot használja.
Először indítsa el az aci-wordcount tárolót az alapértelmezett konfigurációban ezzel a New-AzContainerGroup paranccsal:
New-AzContainerGroup `
-ResourceGroupName myResourceGroup `
-Name mycontainer1 `
-Image mcr.microsoft.com/azuredocs/aci-wordcount:latest
Most futtassa a következő New-AzContainerGroup parancsot. Ez megadja a NumWords és a MinLength környezeti változókat egy tömbváltozó feltöltése után: envVars
$envVars = @(
New-AzContainerInstanceEnvironmentVariableObject -Name "NumWords" -Value "5"
New-AzContainerInstanceEnvironmentVariableObject -Name "MinLength" -Value "8"
)
$containerGroup = New-AzContainerGroup -ResourceGroupName "myResourceGroup" `
-Name "mycontainer2" `
-Image "mcr.microsoft.com/azuredocs/aci-wordcount:latest" `
-RestartPolicy "OnFailure" `
-Container @(
New-AzContainerGroupContainer -Name "mycontainer2" `
-EnvironmentVariable $envVars
)
Ha mindkét tároló állapota leállt (az állapot ellenőrzéséhez használja a Get-AzContainerInstanceLog parancsot), kérje le a naplókat a Get-AzContainerInstanceLog paranccsal.
Get-AzContainerInstanceLog -ResourceGroupName myResourceGroup -ContainerGroupName mycontainer1
Get-AzContainerInstanceLog -ResourceGroupName myResourceGroup -ContainerGroupName mycontainer2
Az egyes tárolók kimenete bemutatja, hogyan módosította a tároló által futtatott szkriptet környezeti változók beállításával.
PS Azure:\> Get-AzContainerInstanceLog -ResourceGroupName myResourceGroup -ContainerGroupName mycontainer1
[('the', 990),
('and', 702),
('of', 628),
('to', 610),
('I', 544),
('you', 495),
('a', 453),
('my', 441),
('in', 399),
('HAMLET', 386)]
Azure:\
PS Azure:\> Get-AzContainerInstanceLog -ResourceGroupName myResourceGroup -ContainerGroupName mycontainer2
[('CLAUDIUS', 120),
('POLONIUS', 113),
('GERTRUDE', 82),
('ROSENCRANTZ', 69),
('GUILDENSTERN', 54)]
Azure:\
Azure Portal példa
Ha környezeti változókat szeretne beállítani, amikor elindít egy tárolót a Azure Portal, adja meg őket a Speciális lapon a tároló létrehozásakor.
- A Speciális lapon állítsa az Újraindítási szabályzatotSikertelenre
- A Környezeti változók területen adja meg
NumWords
az első változó értékét5
, majd adja megMinLength
a második változó értékét8
. - Válassza a Felülvizsgálat + létrehozás lehetőséget a tároló ellenőrzéséhez és üzembe helyezéséhez.
A tároló naplóinak megtekintéséhez a Beállítások területen válassza a Tárolók, majd a Naplók lehetőséget. Az előző CLI- és PowerShell-szakaszokban látható kimenethez hasonlóan láthatja, hogyan módosították a szkript viselkedését a környezeti változók. Csak öt szó jelenik meg, amelyek mindegyike legalább nyolc karakter hosszúságú.
Biztonságos értékek
A biztonságos értékekkel rendelkező objektumok bizalmas információkat, például jelszavakat vagy kulcsokat tárolnak az alkalmazáshoz. A környezeti változók biztonságos értékeinek használata biztonságosabb és rugalmasabb, mint a tároló lemezképében. Egy másik lehetőség a titkos kötetek használata, amely a Titkos kötet csatlakoztatása Azure Container Instances című cikkben található.
A biztonságos értékeket tartalmazó környezeti változók nem láthatók a tároló tulajdonságaiban – az értékeik csak a tárolóból érhetők el. A Azure Portal vagy az Azure CLI-ben megtekintett tárolótulajdonságok például csak egy biztonságos változó nevét jelenítik meg, az értékét nem.
Állítson be egy biztonságos környezeti változót úgy, hogy a secureValue
tulajdonságot adja meg a változó típusának normál value
értéke helyett. Az alábbi YAML-ben definiált két változó a két változótípust mutatja be.
YAML-üzembe helyezés
Hozzon létre egy secure-env.yaml
fájlt az alábbi kódrészlettel.
apiVersion: 2019-12-01
location: eastus
name: securetest
properties:
containers:
- name: mycontainer
properties:
environmentVariables:
- name: 'NOTSECRET'
value: 'my-exposed-value'
- name: 'SECRET'
secureValue: 'my-secret-value'
image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
ports: []
resources:
requests:
cpu: 1.0
memoryInGB: 1.5
osType: Linux
restartPolicy: Always
tags: null
type: Microsoft.ContainerInstance/containerGroups
Futtassa a következő parancsot a tárolócsoport YAML-lel való üzembe helyezéséhez (szükség szerint módosítsa az erőforráscsoport nevét):
az container create --resource-group myResourceGroup --file secure-env.yaml
Környezeti változók ellenőrzése
Futtassa az az container show parancsot a tároló környezeti változóinak lekérdezéséhez:
az container show --resource-group myResourceGroup --name securetest --query 'containers[].environmentVariables'
A JSON-válasz a nem biztonságos környezeti változó kulcsát és értékét is megjeleníti, de csak a biztonságos környezeti változó nevét:
[
[
{
"name": "NOTSECRET",
"secureValue": null,
"value": "my-exposed-value"
},
{
"name": "SECRET",
"secureValue": null,
"value": null
}
]
]
Az az container exec paranccsal, amely lehetővé teszi egy parancs futtatását egy futó tárolóban, ellenőrizheti, hogy a biztonságos környezeti változó be van-e állítva. Futtassa a következő parancsot egy interaktív bash-munkamenet elindításához a tárolóban:
az container exec --resource-group myResourceGroup --name securetest --exec-command "/bin/sh"
Miután megnyitott egy interaktív rendszerhéjat a tárolóban, hozzáférhet a SECRET
változó értékéhez:
root@caas-ef3ee231482549629ac8a40c0d3807fd-3881559887-5374l:/# echo $SECRET
my-secret-value
Következő lépések
A feladatalapú forgatókönyvek, például a több tárolóval rendelkező nagy adathalmaz kötegelt feldolgozása, kihasználhatják az egyéni környezeti változókat futásidőben. A feladatalapú tárolók futtatásával kapcsolatos további információkért lásd: Tárolóalapú tevékenységek futtatása újraindítási szabályzatokkal.