Kompilowanie i wdrażanie projektów baz danych w usłudze GitHub Actions i usłudze Azure DevOps

Zakończone

Ponieważ bazy danych są integralną częścią większych rozwiązań, deweloperzy muszą znaleźć skuteczne sposoby zarządzania programowaniem baz danych podobnie jak w przypadku obsługi kodu aplikacji. To zadanie jest szczególnie trudne, ponieważ programowanie bazy danych jest ściśle powiązane z danymi przechowywanymi w bazie danych, dodając warstwy złożoności.

Na szczęście narzędzia takie jak GitHub Actions i Azure DevOps Services oferują niezawodne rozwiązania do zarządzania tymi złożonościami. Obie platformy obsługują wdrażanie pakietu DACPAC, co upraszcza proces wdrażania zmian bazy danych przez pakowanie ich do pakietu składnika aplikacji warstwy danych (DAC). Takie podejście nie tylko zapewnia spójność i niezawodność wdrożeń baz danych, ale także bezproblemowo integruje się z potokami ciągłej integracji i ciągłego wdrażania (CI/CD), co ułatwia deweloperom konserwowanie i aktualizowanie baz danych wraz z kodem aplikacji.

W przykładach w tej lekcji założono, że masz już następujące założenia:

  • Subskrypcja platformy Azure z uprawnieniami do tworzenia zasobów i zarządzania nimi.
  • Program Visual Studio Code zainstalowany z następującymi rozszerzeniami:
  • Konto usługi GitHub z prywatnym repozytorium GitHub utworzonym jako Właściciel.
  • Usługa Azure SQL Database skonfigurowana z włączoną funkcją Zezwalaj na dostęp do usług platformy Azure. Szybki start: tworzenie pojedynczej bazy danych usługi Azure SQL Database.

Nawiązywanie połączenia z usługą Azure SQL Database przy użyciu funkcji GitHub Actions

Za pomocą funkcji GitHub Actions możesz nawiązać połączenie z usługą Azure SQL Database i opublikować projekty SQL przy użyciu plików DACPAC.

Używanie funkcji GitHub actions do nawiązywania połączenia z usługą Azure SQL Database obejmuje trzy główne kroki.

  1. Sklonuj repozytorium GitHub w programie Visual Studio Code.
  2. Utwórz projekt bazy danych w programie Visual Studio Code.
  3. Skonfiguruj ciągłą integrację za pomocą funkcji GitHub Actions.

Sklonuj repozytorium GitHub

Możesz sklonować utworzone repozytorium GitHub, wykonując następujące kroki.

  1. W programie Visual Studio Code wybierz pozycję Widok>Paleta poleceń.
  2. W palecie poleceń wpisz Git: Clone, a następnie wybierz go.
  3. Wprowadź adres URL repozytorium i wybierz pozycję Klonuj.
  4. Wybierz lub utwórz folder do przechowywania plików repozytorium.

Tworzenie projektu bazy danych w programie Visual Studio Code

W programie Visual Studio Code skonfiguruj nowy projekt bazy danych i zapisz projekt w tym samym folderze, w którym sklonowane zostało repozytorium GitHub.

Aby uzyskać więcej informacji na temat tworzenia projektu bazy danych w programie Visual Studio Code, zobacz Programowanie programu SQL Server za pomocą programu Visual Studio Code.

Po utworzeniu projektu bazy danych dodaj kod, aby zmodyfikować usługę Azure SQL Database. Następnie zatwierdź je z powrotem do repozytorium GitHub, aby upewnić się, że są one śledzone i zintegrowane z systemem kontroli wersji.

Konfigurowanie ciągłej integracji z funkcją GitHub Actions

Aby skonfigurować ciągłą integrację za pomocą funkcji GitHub Actions, utwórz .yml plik w /.github/workflows/ ścieżce w repozytorium. Plik .yml zawiera dwie sekcje.

  1. Konfigurowanie uwierzytelniania
  2. Tworzenie przepływu pracy usługi GitHub

Konfigurowanie uwierzytelniania konfiguruje wpisy tajne usługi GitHub, a druga sekcja tworzy przepływ pracy funkcji GitHub Actions.

Uwierzytelnianie

Najpierw należy utworzyć jednostkę usługi za pomocą az ad sp create-for-rbac polecenia w interfejsie wiersza polecenia platformy Azure. Użyj usługi Azure Cloud Shell w witrynie Azure Portal, aby uruchomić następujący kod interfejsu wiersza polecenia platformy Azure. Zastąp symbole zastępcze swoim identyfikatorem subskrypcji, nazwą grupy zasobów i nazwą aplikacji.

az ad sp create-for-rbac --name "myML" --role contributor --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> --json-auth

Dane wyjściowe są obiektem JSON z poświadczeniami przypisania roli. Zapisz plik podczas zapisywania go jako wpisu tajnego usługi GitHub.

Po drugie utwórz parametry połączenia SQL. Można to skopiować z witryny Azure Portal. W usłudze Azure SQL Database otwórz pozycję Ustawienia>Parametry połączenia.

Zrzut ekranu przedstawiający ustawienia połączenia usługi Azure SQL Database.

Skopiuj ADO.NET parametry połączenia, a następnie zastąp wartości symboli zastępczych dla bazy danych i hasła. Parametry połączenia wygląda podobnie do następującego:

Server=tcp:my-sql-server.database.windows.net,1433;Initial Catalog={your-database};Persist Security Info=False;User ID={admin-name};Password={your-password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

Ta parametry połączenia będzie również przechowywana jako wpis tajny usługi GitHub.

W repozytorium GitHub dodajesz wpisy tajne w obszarze > —> Utwórz nowe wpisy tajne o nazwie AZURE_CREDENTIALS w celu przechowywania tekstu JSON i AZURE_SQL_CONNECTION_STRING przechowywania parametry połączenia.

Teraz możesz przystąpić do tworzenia przepływu pracy.

Uwaga

W środowisku produkcyjnym rozważ użycie tożsamości zarządzanych dla akcji usługi GitHub w celu uzyskania dostępu do bazy danych zamiast uwierzytelniania SQL. Aby uzyskać więcej informacji, zobacz Tożsamości zarządzane w usłudze Microsoft Entra for Azure SQL.

Tworzenie przepływu pracy usługi GitHub

W repozytorium GitHub wybierz pozycję Akcje i samodzielnie skonfiguruj przepływ pracy. Zostanie otwarty pusty plik main.yml .

Teraz możesz skompilować plik YAML. Aby uzyskać szczegółową składnię i wskazówki, zapoznaj się z tematem Workflow for GitHub Actions (Przepływ pracy dla funkcji GitHub Actions). Na przykład nazwa: tag określa nazwę przepływu pracy, a wartość on określa zdarzenia wyzwalające przepływ pracy do uruchomienia.

Napiwek

Przewodnik Szybki start dla funkcji GitHub Actions umożliwia rozpoczęcie pracy z dodatkowymi funkcjami akcji usługi GitHub.

Wdrażanie usługi Azure SQL Database za pomocą usług Azure DevOps Services

Aktualizacje można również wdrożyć w usłudze Azure SQL Database przy użyciu usług Azure DevOps Services. Aby rozpocząć pracę, musisz mieć konto usługi Azure DevOps Services, system kontroli wersji (taki jak azure Repos lub GitHub) i program Visual Studio Code z zainstalowanym rozszerzeniem usługi SQL Database.

Usługa Azure DevOps Services obejmuje usługę Azure Pipelines, która automatycznie kompiluje, testuje i wdraża kod. Za pomocą usługi Azure Pipelines można obsługiwać ciągłą integrację i ciągłe wdrażanie (CI/CD) modyfikacji usługi Azure SQL Database w projekcie. Dzięki tej integracji zmiany bazy danych są spójnie i niezawodnie stosowane.

Usługa Azure Pipelines jest bezproblemowo zintegrowana z różnymi systemami kontroli wersji, w tym z usługami GitHub i Azure Repos. Usługa Azure Pipelines umożliwia uruchamianie skryptów SQL w ramach potoku przy użyciu skryptów programu Azure PowerShell w celu tworzenia i usuwania reguł zapory na platformie Azure, co zapewnia bezpieczne i wydajne zarządzanie bazami danych.

Aby uzyskać więcej informacji na temat opcji wdrażania usługi Azure SQL Database, zobacz Wdrażanie bazy danych Azure SQL Database w dokumentacji usługi Azure DevOps Services.