Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł zawiera odpowiedzi na często zadawane pytania dotyczące pracy ze zmiennymi środowiskowymi i interfejsem wiersza polecenia dla deweloperów platformy Azure (azd
).
Jakie są różnice między zmiennymi azd
środowiskowymi a zmiennymi środowiskowymi systemu?
azd
zmienne środowiskowe są przechowywane w .env
pliku w .azure/<environment name>
katalogu projektu i są oddzielone od zmiennych środowiskowych systemu/systemu operacyjnego. azd
zmienne środowiskowe konfigurują zadania aprowizacji i wdrażania szablonu i są dostępne przy użyciu poleceń, takich jak azd env
lub azd env get-values
.
Zmienne środowiskowe systemu nie są bezpośrednio dostępne za pośrednictwem poleceń i powinny być zarządzane za pomocą azd
niestandardowej powłoki lub skryptów programu PowerShell, zazwyczaj przy użyciu azd
punktów zaczepienia.
Czy polecenia mogą azd
bezpośrednio odczytywać i zapisywać zmienne środowiskowe systemu?
Nie, azd
polecenia nie mogą odczytywać ani zapisywać zmiennych środowiskowych systemu. Polecenia, takie jak azd env set
lub azd env get-values
działające na wartościach przechowywanych w pliku szablonu .env
dla określonego azd
środowiska. azd
środowiska są zarządzane przy użyciu podfolderów w .azure/<environment name>
katalogu szablonu projektu, co umożliwia szablonowi posiadanie wielu środowisk. Podfoldery środowiska przechowują pliki konfiguracji, takie jak .env
opis środowiska.
Użyj niestandardowej powłoki lub skryptów programu PowerShell z azd
hakami , aby odczytywać lub zapisywać zmienne środowiskowe na poziomie systemu.
Jaka jest relacja między zmiennymi wyjściowymi ustawionymi w main.bicep
pliku i azd
zmiennych środowiskowych?
Zmienne wyjściowe ustawione w main.bicep
pliku są automatycznie przechowywane w .env
pliku szablonu azd
. Rozważ następujące zmienne wyjściowe w main.bicep
pliku infrastruktury szablonu:
output API_BASE_URL string = api.outputs.SERVICE_API_URI
output REACT_APP_WEB_BASE_URL string = web.outputs.SERVICE_WEB_URI
Po pomyślnym wykonaniu azd up
operacji lub azd
azd provision
zapisuje te dwie zmienne .env
w pliku w .azure/<environment name>
katalogu projektu:
API_BASE_URL="<example-api-url>"
output REACT_APP_WEB_BASE_URL="<example-app-url>"
Następnie możesz uzyskać dostęp do tych zmiennych z .env
pliku przy użyciu polecenia azd env get-values
.
Które zmienne środowiskowe są domyślnie ustawiane w .env
pliku?
Następujące zmienne środowiskowe są domyślnie ustawiane w .env
pliku:
Nazwa/nazwisko | opis | Przykładowe wartości | Gdy jest dostępny |
---|---|---|---|
AZURE_ENV_NAME |
Nazwa używanego środowiska. | todo-app-dev |
Po utworzeniu środowiska (na przykład po uruchomieniu azd init lub azd env new). |
AZURE_LOCATION |
Lokalizacja środowiska w użyciu. | eastus2 |
Bezpośrednio przed zainicjowaniem obsługi administracyjnej środowiska po raz pierwszy. |
AZURE_PRINCIPAL_ID |
Uruchomiona jednostka użytkownika/usługi. | 925cff12-ffff-4e9f-9580-8c06239dcaa4 |
Określana automatycznie podczas aprowizacji (efemeryczna). |
AZURE_SUBSCRIPTION_ID |
Subskrypcja docelowa. | 925cff12-ffff-4e9f-9580-8c06239dcaa4 |
Bezpośrednio przed zainicjowaniem obsługi administracyjnej środowiska po raz pierwszy. |
SERVICE_<service>_IMAGE_NAME |
Pełna nazwa obrazu kontenera opublikowanego w usłudze Azure Container Registry dla usług app services kontenera. | todoapp/web-dev:azdev-deploy-1664988805 |
Po pomyślnym opublikowaniu containerapp obrazu |
Jakie jest zalecane podejście do pobierania azd
.env
zmiennych środowiskowych z pliku? Dlaczego muszę to zrobić?
Pobierz azd
zmienne środowiskowe przy użyciu azd env get-values
polecenia .
azd env get-values
Typowe przyczyny uzyskiwania dostępu azd
do zmiennych środowiskowych obejmują następujące elementy:
- Wykonaj dodatkową konfigurację w skryptach punktów zaczepienia.
- Uwidaczniaj
.env
wartości z szablonu do struktury kodu aplikacji, na przykład Node.js lub .NET. - Zapisz wartości w
.env
zmiennych środowiskowych systemowych.
Napiwek
Należy zachować ostrożność podczas ustawiania systemowych zmiennych środowiskowych, ponieważ mogą powodować konflikty z innymi szablonami, które współużytkują te same nazwy zmiennych środowiskowych.
Jak mogę ręcznie ustawić nową azd
zmienną środowiskową?
Ustaw dodatkowe azd
zmienne środowiskowe przy użyciu azd env set
polecenia , podając klucz i wartość zmiennej.
Typowe przyczyny ustawiania azd
zmiennych środowiskowych obejmują następujące elementy:
- Uzyskaj dostęp do informacji o zasobach platformy Azure utworzonych podczas aprowizacji, które są potrzebne podczas wdrażania.
- Zastąpij lub zmień domyślne
azd
wartości zmiennych środowiskowych. - Podaj dodatkowe niestandardowe wartości konfiguracji do użycia w aprowizacji, wdrażaniu lub skryptach niestandardowych.
azd env set MY_KEY MyValue
Jak mogę kopiować lub zapisywać azd
zmienne środowiskowe jako zmienne środowiskowe systemu?
W niektórych scenariuszach możesz skopiować azd
zmienne środowiskowe do innego pliku środowiskowego lub do środowiska systemowego do użycia przez struktury językowe. Na przykład możesz użyć adresów URL punktów końcowych z aprowizowania usług platformy Azure w celu nawiązania połączenia z tymi usługami w kodzie aplikacji. Użyj skryptów niestandardowych, aby pobrać azd
zmienne środowiskowe, a następnie ustawić je jako zmienne środowiskowe systemu. Te skrypty są często uruchamiane jako haki podczas azd
cyklu życia, jak pokazano w poniższym przykładzie:
Uwaga
Należy zachować ostrożność podczas kopiowania azd
zmiennych środowiskowych do systemu lokalnego lub innych środowisk operacyjnych. Zmienne środowiskowe systemu z pasującymi nazwami można pobierać azd
i powodować konflikty między różnymi azd
szablonami lub różnymi azd
środowiskami.
postprovision:
windows:
shell: pwsh
run: ./scripts/map-env-vars.ps1
interactive: false
continueOnError: false
posix:
shell: sh
run: ./scripts/map-env-vars.sh
interactive: false
continueOnError: false
Przywołyny skrypt powłoki dla systemu Linux pobiera azd
zmienne środowiskowe i eksportuje je jako zmienne środowiskowe systemu:
echo "Loading azd .env file from current environment..."
while IFS='=' read -r key value; do
value=$(echo "$value" | sed 's/^"//' | sed 's/"$//')
export "$key=$value"
done <<EOF
$(azd env get-values)
EOF
Przywołyny skrypt programu PowerShell dla systemu Windows pobiera azd
zmienne środowiskowe i eksportuje je jako zmienne środowiskowe systemu:
Write-Host "Loading azd .env file from current environment"
foreach ($line in (& azd env get-values)) {
if ($line -match "([^=]+)=(.*)") {
$key = $matches[1]
$value = $matches[2] -replace '^"|"$'
[Environment]::SetEnvironmentVariable($key, $value)
}
}