Dodawanie & grup zmiennych użycia

| usługi Azure DevOps Services Azure DevOps Server 2020 | Usługa Azure DevOps Server 2019 | TFS 2018

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.

Grupy zmiennych są zasobami chronionymi. Możesz dodać zatwierdzenia i kontrole do tych zmiennych i ustawić uprawnienia potoku.

Uwaga

W programie Microsoft Team Foundation Server (TFS) 2018 i poprzednich wersjach potoki kompilacji i wydania są nazywane definicjami, uruchomienia są nazywane kompilacjami, połączenia usługi są nazywane punktami końcowymi usługi, etapami są nazywane środowiskami, a zadania są nazywane fazami.

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 niezgrupowanych:

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żna również odwoływać się do grupy zmiennych w szablonie. W szablonie variables.ymlgrupa my-variable-group jest przywołyowana. Grupa zmiennych zawiera zmienną o nazwie myhello.

# variables.yml
variables:
- group: my-variable-group

W tym potoku jest uwzględniona zmienna $(myhello) z grupy my-variable-group zmiennych i variables.yml jest przywołyowana.

# 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 nazwasz grupę zmiennych tylko 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. Wybierzpozycję Grupy zmiennychbiblioteki>, a następnie wybierz grupę zmiennych, których dotyczy pytanie, 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 utwórz kompilację w kolejce. Zostanie wyświetlony błąd autoryzacji zasobów i akcja "Autoryzuj zasoby" w błędzie. 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 oczekiwano tej grupy, wyłącz ustawienie Zezwalaj na dostęp do wszystkich potoków .

Kompilacje YAML nie są dostępne w programie TFS.

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 należy przekazać je 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

  • akcja: 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 udostępnieniu tokenu kontynuacji.
  • nazwa-grupy: nazwa grupy zmiennych. Akceptowane są symbole wieloznaczne, 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 nie zostało skonfigurowane jako domyślne lub odebrane 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 nie zostało skonfigurowane jako domyślne lub odebrane przy użyciu polecenia git config.
  • query-order: 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 nie zostało skonfigurowane jako domyślne lub odebrane 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 nie zostało skonfigurowane jako domyślne lub odebrane przy użyciu polecenia git config.

Przykład

Poniższe polecenie pokazuje szczegóły 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 nie zostało skonfigurowane jako domyślne lub odebrane 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 nie zostało skonfigurowane jako domyślne lub odebrane przy użyciu polecenia git config.
  • Tak: opcjonalnie. Nie wyświetla monitu 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 create . 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 nie zostało skonfigurowane jako domyślne lub odebrane 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 nie zostało skonfigurowane jako domyślne lub odebrane przy użyciu polecenia git config.
  • wpis tajny: opcjonalnie. Wskazuje, czy wartość zmiennej jest wpisem tajnym. Akceptowane wartości to false i true.
  • wartość: wymagana dla zmiennej niebędącej wpisem tajnym. Wartość zmiennej. W przypadku zmiennych tajnych, jeśli parametr wartości nie jest podany, jest wybierany ze zmiennej środowiskowej z prefiksem AZURE_DEVOPS_EXT_PIPELINE_VAR_ lub użytkownik jest monitowany o wprowadzenie go za pośrednictwem standardowych danych wejściowych. Na przykład zmienną o nazwie MySecret można wprowadzić 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ę requires-login 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 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 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: opcjonalne. 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 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 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. Akceptowane wartości to false i true.
  • wpis tajny: opcjonalne. Wskazuje, czy wartość zmiennej jest przechowywana w tajemnicy. Akceptowane wartości to false i true.
  • value: aktualizuje 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 konsoli nieinterakcyjnych można ją wybrać z zmiennej środowiskowej z prefiksem AZURE_DEVOPS_EXT_PIPELINE_VAR_. Na przykład zmienną o nazwie MySecret można wprowadzić 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 usuniętej 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 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 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.

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.

    Screenshot of variable group with Azure key vault integration.

  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 pobieraniem 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ż ustawić uprawnienia ręcznie w witrynie Azure Portal:

    1. Otwórz pozycję Ustawienia dla magazynu, a następnie wybierz pozycję Zasady> dostępuDodaj nowe.
    2. Wybierz pozycję Wybierz jednostkę główną, 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 na tę grupę 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 do grupy zmiennych, a nie wartości wpisów tajnych. Najnowsza wartość wpisu tajnego pobrana z magazynu jest używana w przebiegu potoku połączonym z grupą zmiennych.

  • Wszelkie zmiany wprowadzone w istniejących wpisach tajnych w magazynie kluczy są automatycznie dostępne dla wszystkich potoków używanych w grupie zmiennych.

  • Po dodaniu lub usunięciu nowych wpisów tajnych z magazynu skojarzone grupy zmiennych nie są automatycznie aktualizowane. Wpisy tajne zawarte w grupie zmiennych muszą zostać 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 grupy zmiennych usługi Azure Pipelines obsługuje mapowanie tylko wpisów tajnych z magazynu kluczy platformy Azure. Klucze kryptograficzne i certyfikaty nie są obsługiwane.

Rozwijanie zmiennych w grupie

Po ustawieniu zmiennej w grupie i użyciu 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.

Język YAML nie jest obsługiwany w programie TFS.