Dodawanie i używanie grup zmiennych
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Grupy zmiennych przechowują wartości i wpisy tajne, które można przekazać do potoku YAML lub udostępnić w wielu potokach. Grupy zmiennych można udostępniać i używać w wielu potokach w tym samym projekcie.
Zmienne tajne w grupach Zmiennych są zasobami chronionymi. Możesz dodawać kombinacje zatwierdzeń, kontroli i uprawnień potoku, aby ograniczyć dostęp do zmiennych tajnych w grupie zmiennych. Dostęp do zmiennych innych niż tajne nie jest ograniczony przez zatwierdzenia, kontrole i uprawnienia potoku.
Tworzenie grupy zmiennych
Nie można tworzyć grup zmiennych w języku YAML, ale można ich używać zgodnie z opisem w temacie Używanie grupy zmiennych.
Używanie grupy zmiennych
Aby użyć zmiennej z grupy zmiennych, dodaj odwołanie do grupy w pliku YAML:
variables:
- group: my-variable-group
Następnie zmienne z grupy zmiennych mogą być używane w pliku YAML.
Jeśli używasz zarówno zmiennych, jak i grup zmiennych, użyj name
/value
składni dla poszczególnych zmiennych, które nie są grupowane:
variables:
- group: my-variable-group
- name: my-bare-variable
value: 'value of my-bare-variable'
Aby odwołać się do grupy zmiennych, użyj składni makr lub wyrażenia środowiska uruchomieniowego. W poniższym przykładzie grupa my-variable-group
ma zmienną o nazwie myhello
.
variables:
- group: my-variable-group
- name: my-passed-variable
value: $[variables.myhello] # uses runtime expression
steps:
- script: echo $(myhello) # uses macro syntax
- script: echo $(my-passed-variable)
W tym samym potoku można odwoływać się do wielu grup zmiennych. Jeśli wiele grup zmiennych zawiera tę samą zmienną, grupa zmiennych uwzględniona ostatnio w pliku YAML ustawia wartość zmiennej.
variables:
- group: my-first-variable-group
- group: my-second-variable-group
Możesz również odwołać się do grupy zmiennych w szablonie. W szablonie variables.yml
grupa my-variable-group
jest przywołynięta. Grupa zmiennych zawiera zmienną o nazwie myhello
.
# variables.yml
variables:
- group: my-variable-group
W tym potoku dołączono zmienną $(myhello)
z grupy my-variable-group
zmiennych i variables.yml
odwołuje się do niej.
# azure-pipeline.yml
stages:
- stage: MyStage
variables:
- template: variables.yml
jobs:
- job: Test
steps:
- script: echo $(myhello)
Autoryzowanie grupy zmiennych
Aby pracować z grupą zmiennych, musisz autoryzować grupę. Jeśli nazwisz tylko grupę zmiennych w języku YAML, każda osoba, która może wypchnąć kod do repozytorium, może wyodrębnić zawartość wpisów tajnych w grupie zmiennych. Aby autoryzować grupę, użyj jednej z następujących technik:
Aby autoryzować dowolny potok do korzystania z grupy zmiennych, przejdź do usługi Azure Pipelines. Może to być dobra opcja, jeśli nie masz żadnych wpisów tajnych w grupie. Wybierz pozycję Grupy zmiennych biblioteki>, a następnie wybierz grupę zmiennych, o których mowa, i włącz ustawienie Zezwalaj na dostęp do wszystkich potoków.
Aby autoryzować grupę zmiennych dla określonego potoku, otwórz potok, wybierz pozycję Edytuj, a następnie ręcznie dodaj kompilację do kolejki. Zostanie wyświetlony błąd autoryzacji zasobu i akcja "Autoryzuj zasoby" w przypadku błędu. Wybierz tę akcję, aby jawnie dodać potok jako autoryzowanego użytkownika grupy zmiennych.
Uwaga
Jeśli dodasz grupę zmiennych do potoku i nie otrzymasz błędu autoryzacji zasobów w kompilacji, gdy jest to oczekiwane, wyłącz ustawienie Zezwalaj na dostęp do wszystkich potoków .
Uzyskaj dostęp do wartości zmiennych w połączonej grupie zmiennych w taki sam sposób, jak zmienne zdefiniowane w samym potoku.
Aby na przykład uzyskać dostęp do wartości zmiennej o nazwie customer w grupie zmiennych połączonej z potokiem, użyj $(customer)
parametru zadania lub skryptu. Nie można jednak uzyskać dostępu do zmiennych wpisów tajnych (zaszyfrowanych zmiennych i zmiennych magazynu kluczy) bezpośrednio w skryptach — zamiast tego muszą one być przekazywane jako argumenty do zadania. Aby uzyskać więcej informacji, zobacz wpisy tajne
Zmiany wprowadzone w grupie zmiennych są automatycznie dostępne dla wszystkich definicji lub etapów, z którymi grupa zmiennych jest połączona.
Wyświetlanie listy grup zmiennych
Użyj interfejsu wiersza polecenia, aby wyświetlić listę grup zmiennych dla przebiegów potoków za pomocą polecenia az pipelines variable-group list . Jeśli rozszerzenie usługi Azure DevOps dla interfejsu wiersza polecenia jest dla Ciebie nowe, zobacz Wprowadzenie do interfejsu wiersza polecenia usługi Azure DevOps.
az pipelines variable-group list [--action {manage, none, use}]
[--continuation-token]
[--group-name]
[--org]
[--project]
[--query-order {Asc, Desc}]
[--top]
Parametry opcjonalne
- action: określa akcję, którą można wykonać w grupach zmiennych. Akceptowane wartości są zarządzane, żadne i używane.
- token-kontynuacji: wyświetla listę grup zmiennych po podaniu tokenu kontynuacji.
- nazwa-grupy: nazwa grupy zmiennych. Symbole wieloznaczne są akceptowane, takie jak
new-var*
. - org: Adres URL organizacji usługi Azure DevOps. Skonfiguruj domyślną organizację przy użyciu polecenia
az devops configure -d organization=ORG_URL
. Wymagane, jeśli wartość domyślna nie jest skonfigurowana lub została wybrana przy użyciu poleceniagit config
. Przykład:--org https://dev.azure.com/MyOrganizationName/
. - projekt: nazwa lub identyfikator projektu. Skonfiguruj projekt domyślny przy użyciu polecenia
az devops configure -d project=NAME_OR_ID
. Wymagane, jeśli wartość domyślna nie jest skonfigurowana lub została wybrana przy użyciu poleceniagit config
. - kolejność zapytań: wyświetla wyniki w kolejności rosnącej lub malejącej (domyślnej). Akceptowane wartości to Asc i Desc.
- top: liczba grup zmiennych do wyświetlenia.
Przykład
Poniższe polecenie wyświetla listę trzech pierwszych grup zmiennych w kolejności rosnącej i zwraca wyniki w formacie tabeli.
az pipelines variable-group list --top 3 --query-order Asc --output table
ID Name Type Number of Variables
---- ----------------- ------ ---------------------
1 myvariables Vsts 2
2 newvariables Vsts 4
3 new-app-variables Vsts 3
Pokaż szczegóły dla grupy zmiennych
Wyświetl szczegóły grupy zmiennych w projekcie za pomocą polecenia az pipelines variable-group show . Jeśli rozszerzenie usługi Azure DevOps dla interfejsu wiersza polecenia jest dla Ciebie nowe, zobacz Wprowadzenie do interfejsu wiersza polecenia usługi Azure DevOps.
az pipelines variable-group show --group-id
[--org]
[--project]
Parametry
- group-id: wymagane. Identyfikator grupy zmiennych. Aby znaleźć identyfikator grupy zmiennych, zobacz Wyświetlanie listy grup zmiennych.
- org: Adres URL organizacji usługi Azure DevOps. Skonfiguruj domyślną organizację przy użyciu polecenia
az devops configure -d organization=ORG_URL
. Wymagane, jeśli wartość domyślna nie jest skonfigurowana lub została wybrana przy użyciu poleceniagit config
. Przykład:--org https://dev.azure.com/MyOrganizationName/
. - projekt: nazwa lub identyfikator projektu. Skonfiguruj projekt domyślny przy użyciu polecenia
az devops configure -d project=NAME_OR_ID
. Wymagane, jeśli wartość domyślna nie jest skonfigurowana lub została wybrana przy użyciu poleceniagit config
.
Przykład
Poniższe polecenie wyświetla szczegóły dla grupy zmiennych o identyfikatorze 4 i zwraca wyniki w formacie YAML.
az pipelines variable-group show --group-id 4 --output yaml
authorized: false
description: Variables for my new app
id: 4
name: MyNewAppVariables
providerData: null
type: Vsts
variables:
app-location:
isSecret: null
value: Head_Office
app-name:
isSecret: null
value: Fabrikam
Usuwanie grupy zmiennych
Usuń grupę zmiennych w projekcie za pomocą polecenia az pipelines variable-group delete . Jeśli rozszerzenie usługi Azure DevOps dla interfejsu wiersza polecenia jest dla Ciebie nowe, zobacz Wprowadzenie do interfejsu wiersza polecenia usługi Azure DevOps.
az pipelines variable-group delete --group-id
[--org]
[--project]
[--yes]
Parametry
- group-id: wymagane. Identyfikator grupy zmiennych. Aby znaleźć identyfikator grupy zmiennych, zobacz Wyświetlanie listy grup zmiennych.
- org: Adres URL organizacji usługi Azure DevOps. Skonfiguruj domyślną organizację przy użyciu polecenia
az devops configure -d organization=ORG_URL
. Wymagane, jeśli wartość domyślna nie jest skonfigurowana lub została wybrana przy użyciu poleceniagit config
. Przykład:--org https://dev.azure.com/MyOrganizationName/
. - projekt: nazwa lub identyfikator projektu. Skonfiguruj projekt domyślny przy użyciu polecenia
az devops configure -d project=NAME_OR_ID
. Wymagane, jeśli wartość domyślna nie jest skonfigurowana lub została wybrana przy użyciu poleceniagit config
. - Tak: opcjonalne. Nie monituje o potwierdzenie.
Przykład
Następujące polecenie usuwa grupę zmiennych o identyfikatorze 1 i nie wyświetla monitu o potwierdzenie.
az pipelines variable-group delete --group-id 1 --yes
Deleted variable group successfully.
Dodawanie zmiennych do grupy zmiennych
Za pomocą interfejsu wiersza polecenia usługi Azure DevOps można dodać zmienną do grupy zmiennych w potoku za pomocą polecenia az pipelines variable-group variable-group. Jeśli rozszerzenie usługi Azure DevOps dla interfejsu wiersza polecenia jest dla Ciebie nowe, zobacz Wprowadzenie do interfejsu wiersza polecenia usługi Azure DevOps.
az pipelines variable-group variable create --group-id
--name
[--org]
[--project]
[--secret {false, true}]
[--value]
Parametry
- group-id: wymagane. Identyfikator grupy zmiennych. Aby znaleźć identyfikator grupy zmiennych, zobacz Wyświetlanie listy grup zmiennych.
- name: Wymagane. Nazwa dodawanej zmiennej.
- org: Adres URL organizacji usługi Azure DevOps. Skonfiguruj domyślną organizację przy użyciu polecenia
az devops configure -d organization=ORG_URL
. Wymagane, jeśli wartość domyślna nie jest skonfigurowana lub została wybrana przy użyciu poleceniagit config
. Przykład:--org https://dev.azure.com/MyOrganizationName/
. - projekt: nazwa lub identyfikator projektu. Skonfiguruj projekt domyślny przy użyciu polecenia
az devops configure -d project=NAME_OR_ID
. Wymagane, jeśli wartość domyślna nie jest skonfigurowana lub została wybrana przy użyciu poleceniagit config
. - wpis tajny: opcjonalnie. Wskazuje, czy wartość zmiennej jest wpisem tajnym. Zaakceptowane wartości to false i true.
- wartość: wymagana dla zmiennej innej niż wpis tajny. Wartość zmiennej. W przypadku zmiennych tajnych, jeśli parametr wartości nie jest podany, jest wybierany ze zmiennej środowiskowej poprzedzonej prefiksem
AZURE_DEVOPS_EXT_PIPELINE_VAR_
lub zostanie wyświetlony monit o wprowadzenie go za pośrednictwem standardowych danych wejściowych. Na przykład zmienna o nazwie MySecret może być wprowadzana przy użyciu zmiennej środowiskowejAZURE_DEVOPS_EXT_PIPELINE_VAR_MySecret
.
Przykład
Następujące polecenie tworzy zmienną w grupie zmiennych o identyfikatorze 4. Nowa zmienna ma nazwę wymaga logowania i ma wartość True, a wynik jest wyświetlany w formacie tabeli.
az pipelines variable-group variable create --group-id 4 --name requires-login --value True --output table
Name Is Secret Value
-------------- ----------- -------
requires-login False True
Wyświetlanie listy zmiennych w grupie zmiennych
Zmienne można wyświetlić w grupie zmiennych za pomocą polecenia az pipelines variable-group list . Jeśli rozszerzenie usługi Azure DevOps dla interfejsu wiersza polecenia jest dla Ciebie nowe, zobacz Wprowadzenie do interfejsu wiersza polecenia usługi Azure DevOps.
az pipelines variable-group variable list --group-id
[--org]
[--project]
Parametry
- group-id: wymagane. Identyfikator grupy zmiennych. Aby znaleźć identyfikator grupy zmiennych, zobacz Wyświetlanie listy grup zmiennych.
- org: Adres URL organizacji usługi Azure DevOps. Skonfiguruj domyślną organizację przy użyciu polecenia
az devops configure -d organization=ORG_URL
. Wymagane, jeśli wartość domyślna nie jest skonfigurowana lub została wybrana przy użyciu poleceniagit config
. Przykład:--org https://dev.azure.com/MyOrganizationName/
. - projekt: nazwa lub identyfikator projektu. Skonfiguruj projekt domyślny przy użyciu polecenia
az devops configure -d project=NAME_OR_ID
. Wymagane, jeśli wartość domyślna nie jest skonfigurowana lub została wybrana przy użyciu poleceniagit config
.
Przykład
Poniższe polecenie wyświetla listę wszystkich zmiennych w grupie zmiennych o identyfikatorze 4 i pokazuje wynik w formacie tabeli.
az pipelines variable-group variable list --group-id 4 --output table
Name Is Secret Value
-------------- ----------- -----------
app-location False Head_Office
app-name False Fabrikam
requires-login False True
Aktualizowanie zmiennych w grupie zmiennych
Zaktualizuj zmienną w grupie zmiennych za pomocą polecenia az pipelines variable-group update . Jeśli rozszerzenie usługi Azure DevOps dla interfejsu wiersza polecenia jest dla Ciebie nowe, zobacz Wprowadzenie do interfejsu wiersza polecenia usługi Azure DevOps.
az pipelines variable-group variable update --group-id
--name
[--new-name]
[--org]
[--project]
[--prompt-value {false, true}]
[--secret {false, true}]
[--value]
Parametry
- group-id: wymagane. Identyfikator grupy zmiennych. Aby znaleźć identyfikator grupy zmiennych, zobacz Wyświetlanie listy grup zmiennych.
- name: Wymagane. Nazwa dodawanej zmiennej.
- nowa nazwa: opcjonalnie. Określ, aby zmienić nazwę zmiennej.
- org: Adres URL organizacji usługi Azure DevOps. Skonfiguruj domyślną organizację przy użyciu polecenia
az devops configure -d organization=ORG_URL
. Wymagane, jeśli wartość domyślna nie jest skonfigurowana lub została wybrana przy użyciu poleceniagit config
. Przykład:--org https://dev.azure.com/MyOrganizationName/
. - projekt: nazwa lub identyfikator projektu. Skonfiguruj projekt domyślny przy użyciu polecenia
az devops configure -d project=NAME_OR_ID
. Wymagane, jeśli wartość domyślna nie jest skonfigurowana lub została wybrana przy użyciu poleceniagit config
. - prompt-value: ustaw wartość true , aby zaktualizować wartość zmiennej tajnej przy użyciu zmiennej środowiskowej lub monitu za pośrednictwem standardowych danych wejściowych. Zaakceptowane wartości to false i true.
- wpis tajny: opcjonalnie. Wskazuje, czy wartość zmiennej jest przechowywana w tajemnicy. Zaakceptowane wartości to false i true.
- value: Aktualizacje wartość zmiennej. W przypadku zmiennych tajnych użyj parametru prompt-value , aby wyświetlić monit o wprowadzenie go za pośrednictwem standardowych danych wejściowych. W przypadku konsol nieinterakcyjnych można go wybrać z zmiennej środowiskowej poprzedzonej prefiksem
AZURE_DEVOPS_EXT_PIPELINE_VAR_
. Na przykład zmienna o nazwie MySecret może być wprowadzana przy użyciu zmiennej środowiskowejAZURE_DEVOPS_EXT_PIPELINE_VAR_MySecret
.
Przykład
Następujące polecenie aktualizuje zmienną wymaga logowania z nową wartością False w grupie zmiennych o identyfikatorze 4. Określa, że zmienna jest wpisem tajnym i pokazuje wynik w formacie YAML. Zwróć uwagę, że dane wyjściowe pokazują wartość null zamiast wartości False, ponieważ jest to ukryta wartość wpisu tajnego.
az pipelines variable-group variable update --group-id 4 --name requires-login --value False --secret true --output yaml
requires-login:
isSecret: true
value: null
Usuwanie zmiennych z grupy zmiennych
Usuń zmienną z grupy zmiennych za pomocą polecenia az pipelines variable-group delete . Jeśli rozszerzenie usługi Azure DevOps dla interfejsu wiersza polecenia jest dla Ciebie nowe, zobacz Wprowadzenie do interfejsu wiersza polecenia usługi Azure DevOps.
az pipelines variable-group variable delete --group-id
--name
[--org]
[--project]
[--yes]
Parametry
- group-id: wymagane. Identyfikator grupy zmiennych. Aby znaleźć identyfikator grupy zmiennych, zobacz Wyświetlanie listy grup zmiennych.
- name: Wymagane. Nazwa zmiennej, którą usuwasz.
- org: Adres URL organizacji usługi Azure DevOps. Skonfiguruj domyślną organizację przy użyciu polecenia
az devops configure -d organization=ORG_URL
. Wymagane, jeśli wartość domyślna nie jest skonfigurowana lub została wybrana przy użyciu poleceniagit config
. Przykład:--org https://dev.azure.com/MyOrganizationName/
. - projekt: nazwa lub identyfikator projektu. Skonfiguruj projekt domyślny przy użyciu polecenia
az devops configure -d project=NAME_OR_ID
. Wymagane, jeśli wartość domyślna nie jest skonfigurowana lub została wybrana przy użyciu poleceniagit config
. - Tak: opcjonalne. Nie monituje o potwierdzenie.
Przykład
Następujące polecenie usuwa zmienną wymaga logowania z grupy zmiennych o identyfikatorze 4 i monituje o potwierdzenie.
az pipelines variable-group variable delete --group-id 4 --name requires-login
Are you sure you want to delete this variable? (y/n): y
Deleted variable 'requires-login' successfully.
Łączenie wpisów tajnych z magazynu kluczy platformy Azure
Uwaga
Magazyny kluczy korzystające z kontroli dostępu opartej na rolach platformy Azure (Azure RBAC) nie są obsługiwane.
Połącz istniejący magazyn kluczy platformy Azure z grupą zmiennych i zamapuj wpisy tajne selektywnego magazynu na grupę zmiennych.
Na stronie Grupy zmiennych włącz opcję Połącz wpisy tajne z magazynu kluczy platformy Azure jako zmienne. Będziesz potrzebować istniejącego magazynu kluczy zawierającego wpisy tajne. Utwórz magazyn kluczy przy użyciu witryny Azure Portal.
Określ punkt końcowy subskrypcji platformy Azure i nazwę magazynu zawierającego wpisy tajne.
Upewnij się, że połączenie usługi platformy Azure ma co najmniej uprawnienia do zarządzania uzyskiwaniem i wyświetlaniem listy w magazynie dla wpisów tajnych. Włącz usługę Azure Pipelines, aby ustawić te uprawnienia, wybierając pozycję Autoryzuj obok nazwy magazynu. Możesz też ręcznie ustawić uprawnienia w witrynie Azure Portal:
- Otwórz Ustawienia dla magazynu, a następnie wybierz pozycję Zasady>dostępu Dodaj nowe.
- Wybierz pozycję Wybierz jednostkę, a następnie wybierz jednostkę usługi dla konta klienta.
- Wybierz pozycję Uprawnienia wpisu tajnego i upewnij się, że opcje Pobierz i Lista mają znaczniki wyboru.
- Wybierz przycisk OK , aby zapisać zmiany.
Na stronie Grupy zmiennych wybierz pozycję + Dodaj, aby wybrać określone wpisy tajne z magazynu do mapowania do tej grupy zmiennych.
Zarządzanie wpisami tajnymi magazynu kluczy
Zapoznaj się z poniższą listą przydatnych wskazówek dotyczących zarządzania wpisami tajnymi.
Tylko nazwy wpisów tajnych są mapowane na grupę zmiennych, a nie wartości wpisów tajnych. Najnowsza wartość wpisu tajnego pobrana z magazynu jest używana w przebiegu potoku połączonego z grupą zmiennych.
Wszelkie zmiany wprowadzone w istniejących wpisach tajnych w magazynie kluczy są automatycznie dostępne dla wszystkich potoków używanych przez grupę zmiennych.
Po dodaniu lub usunięciu nowych wpisów tajnych z magazynu skojarzone grupy zmiennych nie zostaną automatycznie zaktualizowane. Wpisy tajne zawarte w grupie zmiennych muszą być jawnie zaktualizowane, aby potoki korzystające z grupy zmiennych były wykonywane poprawnie.
Usługa Azure Key Vault obsługuje przechowywanie kluczy kryptograficznych i wpisów tajnych oraz zarządzanie nimi na platformie Azure. Obecnie integracja grup zmiennych usługi Azure Pipelines obsługuje mapowanie tylko wpisów tajnych z usługi Azure Key Vault. Klucze kryptograficzne i certyfikaty nie są obsługiwane.
Rozwijanie zmiennych w grupie
Jeśli ustawisz zmienną w grupie i użyjesz jej w pliku YAML, jest ona równa innym zdefiniowanym zmiennym w pliku YAML. Aby uzyskać więcej informacji na temat pierwszeństwa zmiennych, zobacz Zmienne.
Powiązane artykuły
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla