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:
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
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.
Selecteer DWScaleDownTrigger of DWScaleUpTrigger om omhoog of omlaag te schalen. Selecteer Integreren in de vervolgkeuzelijst.
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.
Voeg in het planningsgebied de CRON-expressie toe die u wilt weergeven hoe vaak u Wilt dat Azure Synapse Analytics omhoog wordt geschaald.
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
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.
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.
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.
Ga naar het deelvenster Functies.
Selecteer de schuifknop voor de bijbehorende triggers die u wilt inschakelen.
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.
Maak een nieuwe, lege functie. Selecteer de knop in de + buurt van uw functielocatie om het deelvenster met functiesjablonen weer te geven.
Selecteer In De taal JavaScript en selecteer vervolgens TimerTrigger.
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.
Kopieer de inhoud van index.js vanuit een van de andere triggerfuncties.
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).