Udostępnij za pośrednictwem


Jak tworzyć zadania elastyczne i zarządzać nimi

Dotyczy: Azure SQL Database

Ten artykuł zawiera kroki wymagane do tworzenia, konfigurowania zadań elastycznych i zarządzania nimi dla usługi Azure SQL Database. Wiele z tych kroków można wykonać w witrynie Azure Portal i przy użyciu języka T-SQL, programu PowerShell i interfejsu API REST. Zadania elastyczne umożliwiają uruchamianie jednego lub większej liczby skryptów języka Transact-SQL (T-SQL) równolegle w wielu bazach danych. Aby uzyskać więcej informacji, dowiedz się więcej na temat pojęć automatyzacji zadań w usłudze Azure SQL Database lub przeczytaj więcej na temat zadań elastycznych w usłudze Azure SQL Database.

Tworzenie i konfigurowanie agenta zadań elastycznych

  1. Utwórz lub zidentyfikuj pustą bazę danych S1 lub wyższą usługę Azure SQL Database przy użyciu modelu zakupu jednostek DTU. Ta baza danych powinna znajdować się na tym samym serwerze co agent zadań. Ta baza danych jest używana jako baza danych zadań podczas tworzenia elastycznego agenta zadań. Pojedynczą bazę danych można utworzyć za pomocą witryny Azure Portal, interfejsu wiersza polecenia platformy Azure, interfejsu wiersza polecenia platformy Azure (sql up) lub programu PowerShell.

  2. Utwórz agenta zadań elastycznych w witrynie Azure Portal lub za pomocą programu PowerShell.

    Instrukcje tworzenia agenta zadań elastycznych w witrynie Azure Portal są następujące:

    1. W witrynie Azure Portal wyszukaj pozycję Agenci zadań elastycznych. Wybierz pozycję Utwórz , aby rozpocząć aprowizowanie nowego zasobu agenta zadań elastycznych. Możesz też skorzystać z tego linku, aby utworzyć agenta zadań elastycznych w witrynie Azure Portal.
    2. Podaj nazwę agenta zadań elastycznych.
    3. Wybierz subskrypcję i grupę zasobów dla agenta. W razie potrzeby utwórz nową grupę zasobów. Zadanie elastyczne może dotyczyć baz danych w innych grupach zasobów, subskrypcjach, nawet w innych regionach świadczenia usługi Azure.
    4. Wybierz serwer logiczny usługi Azure SQL Database, aby był serwerem agenta zadań elastycznych.
    5. Wybierz bazę danych zadań na serwerze logicznym, aby być bazą danych agenta zadań elastycznych. Pewna weryfikacja gwarantuje, że baza danych jest odpowiednia.
    6. W obszarze Warstwa usługi wybierz pozycję JA 100.
    7. Wybierz pozycję Dalej: Tożsamość.
    8. Istnieją dwie metody uwierzytelniania agenta zadania do serwerów docelowych/baz danych, uwierzytelniania firmy Microsoft Entra z tożsamością zarządzaną przypisaną przez użytkownika (UMI) lub poświadczeniami o zakresie bazy danych.
      1. Utwórz interfejs użytkownika poza procesem aprowizacji agenta zadań elastycznych lub użyj istniejącego interfejsu użytkownika. Wybierz pozycję Dodaj tożsamość zarządzaną przypisaną przez użytkownika. Wybierz pozycję UMI. Wybierz Dodaj.
      2. Aby użyć poświadczeń o zakresie bazy danych, zobacz kroki opisane w dalszej części tego samouczka.
    9. Wybierz pozycję Dalej: tagi.
    10. Rozważ użycie tagów platformy Azure. Na przykład tag "Właściciel" lub "CreatedBy", aby zidentyfikować, kto utworzył zasób, oraz tag Środowisko w celu określenia, czy ten zasób znajduje się w środowisku produkcyjnym, programistycznym itp. Aby uzyskać więcej informacji, zobacz Develop your naming and tagging strategy for Azure resources (Opracowywanie strategii nazewnictwa i tagowania zasobów platformy Azure).
    11. Wybierz pozycję Przejrzyj i utwórz.
    12. Zweryfikuj wybór nowego agenta zadań elastycznych na stronie Przeglądanie i tworzenie , a następnie wybierz pozycję Utwórz.
    13. Aby uwierzytelnić się na serwerach docelowych/bazach danych, wymagane są dalsze kroki. Wykonaj kroki opisane w poniższych sekcjach tego artykułu samouczka.

Tworzenie uwierzytelniania agenta zadań

Agent zadań elastycznych musi mieć możliwość uwierzytelniania na każdym serwerze docelowym lub bazie danych. W tej sekcji omówiono kroki niezbędne dla agenta zadań elastycznych w celu uwierzytelniania na serwerach/bazach danych w grupach docelowych.

Istnieją dwie opcje uwierzytelniania agenta zadań elastycznych dla elementów docelowych:

Używanie uwierzytelniania entra firmy Microsoft z tożsamością zarządzaną przypisaną przez użytkownika (UMI)

Użyj uwierzytelniania microsoft Entra (dawniej Azure Active Directory) z tożsamością zarządzaną przypisaną przez użytkownika. Jest to zalecana metoda uwierzytelniania.

  1. Włącz uwierzytelnianie firmy Microsoft Entra (dawniej Azure Active Directory) na wszystkich docelowych serwerach logicznych zadań/bazach danych oraz na serwerze logicznym danych wyjściowych zadania.
  2. Utwórz tożsamość zarządzaną przypisaną przez użytkownika lub użyj już istniejącej usługi UMI.
  3. Przypisz interfejs użytkownika do utworzonego agenta zadań elastycznych.
    • Zaleca się przypisanie interfejsu użytkownika podczas tworzenia agenta zadań elastycznych, zobacz kroki opisane w temacie Tworzenie i konfigurowanie agenta zadań elastycznych. Podczas tworzenia agenta zadań w witrynie Azure Portal na karcie Tożsamość przypisz do agenta zadań elastycznych.
    • Aby zaktualizować istniejącego agenta zadań elastycznych do używania interfejsu użytkownika, na stronie witryny Azure Portal dla agenta zadań elastycznych przejdź do pozycji Tożsamość w menu Zabezpieczenia w menu zasobów. Wybierz i przypisz interfejs użytkownika do agenta zadań elastycznych.
    • Podczas tworzenia lub aktualizowania agenta zadań elastycznych za pomocą New-AzSqlElasticJobAgent poleceń cmdlet programu PowerShell użyj Set-AzSqlElasticJobAgent parametrów: -IdentityType UserAssigned -IdentityID <identity resource path>. Na przykład: .
      $parameters = @{
          Name = '<job agent name>'
          ResourceGroupName = '<Resource_Group_Name>'
          IdentityType = 'UserAssigned'
          IdentityID = '/subscriptions/fa58cf66-caaf-4ba9-875d-f1234/resourceGroups/<resource group name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<UMI name here>'
      }
      Set-AzSqlElasticJobAgent @parameters
      
    • Interfejs API REST może również służyć do tworzenia lub aktualizowania agenta zadań elastycznych.
  4. Utwórz grupę docelową i dodaj elementy docelowe dla zadań. Zdefiniuj grupę docelową i obiekty docelowe (bazy danych, dla których chcesz uruchomić zadanie) przy użyciu programu PowerShell lub zdefiniuj grupę docelową i obiekty docelowe przy użyciu języka T-SQL.
  5. W każdym z serwerów docelowych/baz danych utwórz zawartego użytkownika zamapowanego na poświadczenia OMI lub w zakresie bazy danych przy użyciu języka T-SQL lub programu PowerShell:
    1. Utwórz uwierzytelnianie zadania za pomocą języka T-SQL.
    2. Utwórz uwierzytelnianie zadania za pomocą programu PowerShell.
  6. W wyjściowej bazie danych utwórz i przypisz uprawnienia do użytkownika zadania UMI. Połącz się z wyjściową bazą danych i uruchom następujący przykładowy skrypt dla użytkownika o nazwie jobuserUMI:
    CREATE USER [jobuserUMI] FROM EXTERNAL PROVIDER; 
    GO 
    
  7. Jeśli parametry wyjściowe są określone w wywołaniu w the @output_table_name argumentelemecie sp_add_jobstep , poświadczenia UMI agenta zadania lub poświadczenia o zakresie bazy danych muszą mieć uprawnienia do tworzenia tabeli i wstawiania danych do tej tabeli wyjściowej.
    GRANT CREATE TABLE TO [job_user];
    GRANT SELECT,INSERT,UPDATE,DELETE ON [dbo].[output_table_name] TO job_user;
    
  8. W każdym z serwerów docelowych/baz danych przyznaj użytkownikowi bazy danych wymagane uprawnienia do wykonywania skryptów zadań. Te uprawnienia różnią się w zależności od wymagań zapytania T-SQL.

Używanie poświadczeń o zakresie bazy danych

Do uwierzytelniania można użyć poświadczeń o zakresie bazy danych w bazie danych zadań i w każdym serwerze docelowym/bazie danych. W przeszłości poświadczenia o zakresie bazy danych były jedyną opcją dostępną w przypadku zadań elastycznych.

Uwaga

Jeśli do agenta zadań przypisano interfejs użytkownika, uwierzytelnianie SQL nie będzie używane do łączenia się ze swoimi elementami docelowymi. Agent zadań będzie używać uwierzytelniania microsoft Entra z interfejsem użytkownika do łączenia się ze wszystkimi docelowymi bazami danych.

  1. Utwórz poświadczenia o zakresie bazy danych w bazie danych zadań.
    1. Tworzenie poświadczeń o zakresie bazy danych przy użyciu programu PowerShell
    2. Użyj języka T-SQL, aby utworzyć poświadczenia o zakresie bazy danych.
  2. Zdefiniuj grupę docelową (bazy danych, dla których chcesz uruchomić zadanie) przy użyciu programu PowerShell lub zdefiniuj obiekty docelowe przy użyciu języka T-SQL.
  3. Utwórz identyfikator logowania/użytkownika agenta zadania w każdej docelowej bazie danych, w której zostanie uruchomione zadanie. Nazwa logowania/użytkownik na każdym serwerze docelowym/bazie danych musi mieć taką samą nazwę jak tożsamość poświadczeń o zakresie bazy danych dla użytkownika zadania oraz to samo hasło co poświadczenia w zakresie bazy danych dla użytkownika zadania.
    1. Użyj programu PowerShell, aby dodać poświadczenia i użytkownika do każdej docelowej bazy danych.
    2. Aby uzyskać więcej informacji na temat dodawania użytkowników, zobacz Autoryzowanie dostępu do serwera i bazy danych przy użyciu identyfikatorów logowania i kont użytkowników.
  4. W wyjściowej bazie danych utwórz i przypisz uprawnienia do użytkownika zadania.
    1. Połącz się z bazą master danych serwera logicznego, który hostuje wyjściową bazę danych. Jeśli jeszcze nie istnieje, utwórz uwierzytelnione logowanie SQL o takiej samej nazwie jak tożsamość poświadczenia o zakresie bazy danych dla użytkownika zadania i to samo hasło co poświadczenia w zakresie bazy danych dla użytkownika zadania.
      CREATE LOGIN [job_user] WITH PASSWORD '<same_password_as_database-scoped_credential>'
      GO 
      
    2. Połącz się z wyjściową bazą danych i uruchom następujący przykładowy skrypt dla użytkownika o nazwie job_user:
      CREATE USER [job_user] FROM LOGIN [job_user]; 
      GO 
      
    3. Jeśli parametry wyjściowe są określone w wywołaniu sp_add_jobstep w argumencie @output_table_name , poświadczenia UMI agenta zadań lub poświadczeń o zakresie bazy danych muszą mieć uprawnienia do tworzenia tabeli i wstawiania danych do tej tabeli wyjściowej.
      GRANT CREATE TABLE TO [job_user];
      GRANT SELECT,INSERT,UPDATE,DELETE ON [dbo].[output_table_name] TO job_user;
      
  5. W każdym z serwerów docelowych/baz danych przyznaj użytkownikowi bazy danych wymagane uprawnienia do wykonywania skryptów zadań. Te uprawnienia różnią się w zależności od wymagań zapytania T-SQL.

Tworzenie i uruchamianie zadań oraz zarządzanie nimi

  1. Użyj programu PowerShell, aby utworzyć zadanie lub utworzyć zadanie przy użyciu języka T-SQL.
  2. Dodaj kroki do każdego zadania elastycznego. Dla każdego kroku zadania należy wybrać grupę docelową. Użyj programu PowerShell, aby dodać kroki zadania lub użyć języka T-SQL, aby dodać kroki zadania.
  3. Użyj programu PowerShell, aby uruchomić zadanie lub użyć języka T-SQL do uruchomienia zadania.
  4. Monitorowanie stanu wykonywania zadania przy użyciu witryny Azure Portal, monitorowanie zadań za pomocą programu PowerShell lub monitorowanie zadań za pomocą języka T-SQL.

Konfigurowanie prywatnego punktu końcowego zadań elastycznych usługi Azure SQL

Każdy serwer docelowy można uzyskać za pośrednictwem prywatnego punktu końcowego zarządzanego przez usługę, utworzonego i zarządzanego przez firmę Microsoft oraz wyłącznie do użytku z zadaniami elastycznymi. Utworzenie prywatnego punktu końcowego zadań elastycznych powoduje utworzenie łącza prywatnego między zadaniem elastycznym a serwerem docelowym. Po skonfigurowaniu cała komunikacja między agentem zadań elastycznych a serwerem docelowym odbywa się za pośrednictwem prywatnego punktu końcowego.

Konfiguracja jest łatwa. Aby umożliwić tę komunikację, należy utworzyć prywatny punkt końcowy dla każdego żądanego serwera docelowego i serwera wyjściowego zadania.

  1. W menu nawigacji agenta zadań elastycznych w obszarze Zabezpieczenia wybierz pozycję Prywatne punkty końcowe.
  2. Wybierz pozycję Dodaj serwer i utwórz prywatny punkt końcowy.
  3. Zostanie otwarte okno Tworzenie prywatnego punktu końcowego .
    1. Możesz wybrać serwer docelowy z dowolnej subskrypcji, w dowolnym miejscu na platformie Azure.
    2. Wybierz docelowy serwer logiczny usługi Azure SQL Database w tej subskrypcji.
    3. Podaj nazwę prywatnego punktu końcowego.
  4. Wybierz pozycję Utwórz prywatny punkt końcowy. Wdrożenie potrwa kilka chwil. Wkrótce stan połączenia na stronie Prywatne punkty końcowe będzie wyświetlany jako Oczekujące.
  5. W witrynie Azure Portal przejdź do docelowego serwera logicznego usługi Azure SQL Database.
  6. Jako administrator tego docelowego serwera logicznego usługi Azure SQL Database w menu nawigacji serwera SQL w obszarze Zabezpieczenia wybierz pozycję Sieć.
  7. Wybierz pozycję Dostęp prywatny.
  8. Zatwierdź oczekujące żądanie prywatnego punktu końcowego.
  9. Stan połączenia na stronie Prywatne punkty końcowe będzie zawierać wartość Zatwierdzone. Teraz każda komunikacja między agentem zadań a wszystkimi bazami danych lub elastycznymi pulami w tym docelowym serwerze logicznym usługi Azure SQL Database będzie przechodzić przez prywatny punkt końcowy zarządzany przez usługę.
  10. Jako administrator tego docelowego serwera logicznego usługi Azure SQL Database w menu nawigacji serwera SQL w obszarze Zabezpieczenia wybierz pozycję Sieć. Nie jest konieczne włączenie dostępu publicznego do celów zadań elastycznych.

Konfigurowanie alertów agenta zadań za pomocą usługi Azure Monitor

Skonfiguruj alerty usługi Azure Monitor dla zasobu agenta zadań elastycznych, aby otrzymywać powiadomienia o stanie wykonywania zadania. Można na przykład otrzymywać powiadomienia o niepowodzeniu/powodzeniu zadania za pośrednictwem grup akcji skonfigurowanych przez użytkownika.

Alerty agenta zadań elastycznych można tworzyć przy użyciu witryny Azure Portal, programu PowerShell lub interfejsu API REST.

Tworzenie alertów agenta zadań przy użyciu witryny Azure Portal

Tworzenie reguł alertów usługi Azure Monitor za pomocą witryny Azure Portal, interfejsu wiersza polecenia platformy Azure, programu PowerShell i interfejsu API REST. Reguły alertów dla zadań elastycznych działają podobnie jak w przypadku innych reguł alertów, takich jak dla usługi Azure SQL Database.

Aby przejść do witryny Azure Portal:

  1. W menu zasobów witryny Azure Portal dla agenta zadań elastycznych przejdź do menu Monitorowanie i wybierz pozycję Alerty.
  2. W obszarze Konfigurowanie reguł alertów w tym wierszu polecenia zasobu wybierz pozycję Utwórz regułę alertu.
  3. Na stronie Tworzenie reguły alertu zostanie otwarta strona Wybierz sygnał. Wybierz metryki zadań elastycznych Wykonania zadań elastycznych zakończone niepowodzeniem, Wykonania zadań elastycznych zakończone powodzeniem lub Przekroczono limit czasu wykonywania zadań elastycznych. Zrzut ekranu z witryny Azure Portal przedstawiający stronę Tworzenie reguły alertu.
  4. W obszarze Logika alertu pozostaw wartość domyślną Wartość Progowa, Typ agregacji, Operator i Jednostka .
  5. Ustaw wartość progu na 0. Pozostaw inne ustawienia jako domyślne.
  6. Wybierz pozycję Dalej: Akcje.
  7. Wybierz pozycję Utwórz grupę akcji lub wybierz istniejącą grupę akcji.
    1. Utwórz grupy akcji alertów usługi Azure Monitor w witrynie Azure Portal, aby ustawić ustawienia powiadomień, na przykład dla administratorów poczty e-mail lub deweloperów awarii.
    2. Przetestuj grupę akcji Alert.
  8. Wybierz pozycję Dalej: Szczegóły.
  9. Podaj subskrypcję i grupę zasobów jako szczegóły projektu.
  10. Podaj szczegóły reguły alertu dla komunikacji alertów. Podaj nazwę reguły alertu.
  11. Wybierz pozycję Tagi i podaj metadane, takie jak CreatedBy lub Environment dla tego alertu.
  12. Wybierz pozycję Przejrzyj i utwórz. Wybierz pozycję Utwórz. Wyświetlenie reguły alertu w witrynie Azure Portal może potrwać kilka minut.
  13. Opcjonalnie utwórz reguły przetwarzania alertów usługi Azure Monitor przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub programu PowerShell. Użyj reguł przetwarzania alertów, aby zdecydować, co się stanie po wyzwoleniu alertu, na przykład pomijanie powiadomień lub stosowanie określonych akcji do niektórych typów alertów.

Skalowanie agenta zadania

Domyślnie agenci zadań są tworzeni w ja100, co pozwala na współbieżne wykonywanie maksymalnie 100 zadań elastycznych. Inicjowanie zmiany poziomu usługi jest operacją asynchroniczną, a nowy poziom usługi zostanie udostępniony po krótkim opóźnieniu aprowizacji.

Jeśli potrzebujesz więcej niż 100 współbieżnych wykonań agentów zadań elastycznych, dostępne są wyższe poziomy usług, zobacz Współbieżne warstwy pojemności. Obecnie można zmienić poziom usługi agenta zadania za pośrednictwem witryny Azure Portal, programu PowerShell lub interfejsu API REST.

Przekroczenie poziomu usługi z równoczesnymi zadaniami spowoduje utworzenie opóźnień kolejkowania przed rozpoczęciem zadań podrzędnych przekraczających limit zadań współbieżnych na poziomie usługi.

Skalowanie agenta zadań elastycznych przy użyciu witryny Azure Portal

  1. Przejdź do strony Agent zadań elastycznych w witrynie Azure Portal.
  2. Wybierz pozycję Warstwa cenowa lub wybierz pozycję Skaluj w górę/w dół z menu kontekstowego.
  3. Wybierz nową warstwę usługi z listy rozwijanej Warstwa usługi.
  4. Przejrzyj kartę kosztu.
  5. Wybierz Aktualizuj.

Skalowanie agenta zadań elastycznych przy użyciu programu PowerShell

Opcjonalny -ServiceObjective parametr dla Set-AzSqlElasticJobAgent programu może służyć do określenia nowego celu usługi. Na przykład:

$parameters = @{
    Name = '<job agent name>'
    ResourceGroupName = '<Resource_Group_Name>'
    ServiceObjective = 'JA200'
}
Set-AzSqlElasticJobAgent @parameters

Skalowanie agenta zadań elastycznych przy użyciu interfejsu API REST

Do skalowania agenta zadania agenta zadania można użyć interfejsu API REST. Na przykład:

{ 
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/group1/providers/Microsoft.Sql/servers/server1/jobAgents/agent1", 
"name": "agent1", 
"type": "Microsoft.Sql/servers/jobAgents", 
"location": "southeastasia", 
"sku": {
"name": "JA100  ", 
"capacity": 100 
}, 
"properties": {  
"databaseId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/group1/providers/Microsoft.Sql/servers/server1/databases/db1"
}  
}