Notatka
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).
Wskazówka
Aby uzyskać kompleksowy przewodnik dotyczący tworzenia środowisk i zarządzania nimi w interfejsie wiersza polecenia dla deweloperów platformy Azure, zobacz Praca ze środowiskami w interfejsie wiersza polecenia dla deweloperów platformy Azure.
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 azdpunktó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 azdhakami , 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 azdazd provisionzapisuje 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 | 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
.envwartości z szablonu do struktury kodu aplikacji, na przykład Node.js lub .NET. - Zapisz wartości w
.envzmiennych środowiskowych systemowych.
Wskazówka
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 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
azdwartoś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 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 / Notatka
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)
}
}