Share via


Azure Functions gebruiken om rekenresources te beheren voor uw toegewezen SQL-pool (voorheen SQL DW) in Azure Synapse Analytics

In deze zelfstudie wordt Gebruikgemaakt van Azure Functions voor het beheren van rekenresources voor een toegewezen SQL-pool (voorheen SQL DW) in Azure Synapse Analytics.

Als u een Azure Function-app wilt gebruiken met een toegewezen SQL-pool (voorheen SQL DW), moet u een Service Principal-account maken. Het service-principal-account heeft inzendertoegang nodig onder hetzelfde abonnement als uw toegewezen SQL-pool (voorheen SQL DW)-exemplaar.

Schalen op basis van timer implementeren met een Azure Resource Manager-sjabloon

Voor het implementeren van de sjabloon hebt u de volgende informatie nodig:

  • De naam van de resourcegroep waarin uw toegewezen SQL-pool (voorheen SQL DW) zich bevindt
  • De naam van de server waarin uw toegewezen SQL-pool (voorheen SQL DW) zich bevindt
  • Naam van uw toegewezen SQL-pool (voorheen SQL DW)-exemplaar
  • Tenant-id (directory-id) van uw Microsoft Entra-id
  • Abonnements-id
  • Toepassings-id van de service-principal
  • Geheime sleutel van de service-principal

Nadat u de voorgaande informatie hebt, implementeert u deze sjabloon:

Image showing a button labeled

Zodra u de sjabloon hebt geïmplementeerd, vindt u drie nieuwe resources: een gratis Azure-app Service-plan, een functie-app-abonnement op basis van verbruik en een opslagaccount waarmee de logboekregistratie en de wachtrij voor bewerkingen worden verwerkt. Lees ook de overige secties om te zien hoe u de geïmplementeerde functies aan uw behoeften kunt aanpassen.

De tijd van de schaalbewerking wijzigen

  1. Ga naar de functie-app-service. Als u de sjabloon met de standaardwaarden hebt geïmplementeerd, wordt DWOperations de naam van deze service. Als de functie-app is geopend, ziet u dat er vijf functies voor de functie-app-service zijn geïmplementeerd.

    Functions that are deployed with template

  2. Selecteer DWScaleDownTrigger of DWScaleUpTrigger om omhoog of omlaag te schalen. Selecteer Integreren in de vervolgkeuzelijst.

    Select Integrate for function

  3. De waarde die momenteel moeten worden weergegeven is %ScaleDownTime% of %ScaleUpTime%. Deze waarden geven aan dat de planning is gebaseerd op waarden die zijn gedefinieerd in de Toepassingsinstellingen. Op dit moment kunt u deze waarde negeren en het schema wijzigen in de gewenste tijd op basis van de volgende stappen.

  4. Voeg in het planningsgebied de CRON-expressie toe die u wilt weergeven hoe vaak u Wilt dat Azure Synapse Analytics omhoog wordt geschaald.

    Change function schedule

    De waarde voor schedule is een CRON-expressie die de volgende zes velden omvat:

    {second} {minute} {hour} {day} {month} {day-of-week}
    

    Bijvoorbeeld: '0 30 9 * * 1-5' geeft elke weekdag om 9:30 uur een trigger weer. Ga naar Azure Functions Voorbeelden van de planning voor meer informatie.

Het rekenniveau wijzigen

  1. Ga naar de functie-app-service. Als u de sjabloon met de standaardwaarden hebt geïmplementeerd, wordt DWOperations de naam van deze service. Als de functie-app is geopend, ziet u dat er vijf functies voor de functie-app-service zijn geïmplementeerd.

  2. Selecteer DWScaleDownTrigger of DWScaleUpTrigger om de rekenwaarde omhoog of omlaag te schalen. Na het selecteren van de functies, moet in het deelvenster het bestand index.js te zien zijn.

    Change function trigger compute level

  3. Wijzig de waarde van ServiceLevelObjective in het gewenste niveau en selecteer Opslaan. ServiceLevelObjective is het rekenniveau waarnaar uw datawarehouse-exemplaar wordt geschaald op basis van de planning die is gedefinieerd in de sectie Integreren.

Onderbreken of Hervatten gebruiken in plaats van Schalen

De functies die momenteel standaard zijn ingeschakeld zijn DWScaleDownTrigger en DWScaleUpTrigger. Als u in plaats daarvan de functies voor onderbreken en hervatten wilt gebruiken, kunt u DWPauseTrigger of DWResumeTrigger inschakelen.

  1. Ga naar het deelvenster Functies.

    Functions pane

  2. Selecteer de schuifknop voor de bijbehorende triggers die u wilt inschakelen.

  3. Ga naar de tabbladen Integreren van de bijbehorende triggers om de planning te wijzigen.

    Notitie

    Het functionele verschil tussen de schaaltriggers en de triggers voor onderbreken/hervatten is het bericht dat naar de wachtrij wordt verzonden. Zie Een nieuwe triggerfunctie toevoegen voor meer informatie.

Een nieuwe triggerfunctie toevoegen

Er zijn momenteel slechts twee schaalfuncties in de sjabloon opgenomen. Met deze functies kunt u tijdens de loop van een dag maar één keer omlaag schalen. Voor gedetailleerdere controle, zoals meerdere keren per dag omlaag schalen of een ander schaalgedrag in het weekend, moet u een andere trigger toevoegen.

  1. Maak een nieuwe, lege functie. Selecteer de knop in de + buurt van uw functielocatie om het deelvenster met functiesjablonen weer te geven.

    Screenshot that shows the

  2. Selecteer In De taal JavaScript en selecteer vervolgens TimerTrigger.

    Create new function

  3. Geef de functie een naam en stel de planning in. In de afbeelding ziet u hoe u elke zaterdag om middernacht (van vrijdag op zaterdag) een functie kunt laten activeren.

    Scale down Saturday

  4. Kopieer de inhoud van index.js vanuit een van de andere triggerfuncties.

    Copy index js

  5. Stel de bewerkingsvariabele als volgt in op het gewenste gedrag:

    // Resume the dedicated SQL pool (formerly SQL DW) instance
    var operation = {
        "operationType": "ResumeDw"
    }
    
    // Pause the dedicated SQL pool (formerly SQL DW) instance
    var operation = {
        "operationType": "PauseDw"
    }
    
    // Scale the dedicated SQL pool (formerly SQL DW)l instance to DW600c
    var operation = {
        "operationType": "ScaleDw",
        "ServiceLevelObjective": "DW600c"
    }
    

Complex plannen

In deze sectie wordt kort beschreven wat er nodig is om complexere planning van de mogelijkheden voor onderbreken, hervatten en schalen te krijgen.

Voorbeeld 1

Dagelijks omhoog schalen om 8:00 tot DW600c en om 18:00 uur omlaag schalen naar DW200c.

Function Plannen Operation
Functie1 0 0 8 * * * var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"}
Functie2 0 0 20 * * * var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW200c"}

Voorbeeld 2

Dagelijks omhoog schalen om 8:00 tot DW1000c, eenmaal omlaag schalen naar DW600 om 14:00 uur en om 10:00 uur omlaag schalen naar DW200c.

Function Plannen Operation
Functie1 0 0 8 * * * var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW1000c"}
Functie2 0 0 16 * * * var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"}
Functie3 0 0 22 * * * var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW200c"}

Voorbeeld 3

Schaal om 8:00 uur omhoog naar DW1000c, schaal eenmaal omlaag naar DW600c om 14:00 uur op de weekdagen. Onderbreken op vrijdag om 23:00 uur, hervatten op maandag om 7:00 uur.

Function Plannen Operation
Functie1 0 0 8 * * 1-5 var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW1000c"}
Functie2 0 0 16 * * 1-5 var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"}
Functie3 0 0 23 * * 5 var operation = {"operationType": "PauseDw"}
Functie4 0 0 7 * * 1 var operation = {"operationType": "ResumeDw"}

Volgende stappen

Meer informatie over timertrigger Azure Functions.

Zie de opslagplaats met toegewezen SQL-pools (voorheen SQL DW).