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.ymlgrupa 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 polecenia git 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 polecenia git 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 polecenia git 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 polecenia git 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 polecenia git 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 polecenia git 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 polecenia git 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 polecenia git 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 środowiskowej AZURE_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 polecenia git 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 polecenia git 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 polecenia git 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 polecenia git 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 środowiskowej AZURE_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 polecenia git 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 polecenia git 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.

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.

  1. 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.

    Zrzut ekranu przedstawiający grupę zmiennych z integracją usługi Azure Key Vault.

  2. 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:

    1. Otwórz Ustawienia dla magazynu, a następnie wybierz pozycję Zasady>dostępu Dodaj nowe.
    2. Wybierz pozycję Wybierz jednostkę, a następnie wybierz jednostkę usługi dla konta klienta.
    3. Wybierz pozycję Uprawnienia wpisu tajnego i upewnij się, że opcje Pobierz i Lista mają znaczniki wyboru.
    4. Wybierz przycisk OK , aby zapisać zmiany.
  3. 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.