Programmeren aan de serverzijde in Azure Confidential Ledger

Azure Confidential Ledger biedt programmeermogelijkheden aan de serverzijde om aangepaste logica in het grootboek uit te voeren. Met deze mogelijkheden kunt u de functionaliteit van het grootboek uitbreiden door aangepaste code te schrijven die wordt uitgevoerd in een vertrouwelijke omgeving en communiceert met de gegevens van het grootboek.

U kunt door de gebruiker gedefinieerde functies (UDF's) en door de gebruiker gedefinieerde eindpunten (UDE's) maken om verschillende bewerkingen uit te voeren met verschillende aanpassingsniveaus. UDF's en UDE's werden voorheen eenvoudige door de gebruiker gedefinieerde functies en geavanceerde door de gebruiker gedefinieerde functies genoemd. Nadat u UDF's en UDE's hebt gedefinieerd, kunt u deze aanroepen vanuit de Azure vertrouwelijke grootboekclients om rechtstreeks in de grootboekengine te worden uitgevoerd.

UDFs en UDEs

Azure confidential ledger biedt twee programmeerfuncties aan de serverzijde:

  • Door de gebruiker gedefinieerde functies (UDF's): UDF's zijn eenvoudige aangepaste functies die u in het grootboek definieert en uitvoert. Ze maken het u mogelijk eenvoudige bewerkingen uit te voeren met behulp van de JavaScript-API en kunnen worden geïntegreerd met de bestaande schrijf-API voor grootboekbewerkingen. Zie Door de gebruiker gedefinieerde functies in Azure confidential ledger voor meer informatie.

  • Door de gebruiker gedefinieerde eindpunten (UDE's): UDE's zijn aangepaste eindpunten die u definieert en beschikbaar maakt in een grootboektoepassing. Gebruik deze eindpunten om geavanceerdere API's beschikbaar te maken met aanpasbare parameters, gegevensindelingen en verificatiemechanismen. Zie Door de gebruiker gedefinieerde eindpunten in Azure Confidential Ledger voor meer informatie.

Hier volgt een vergelijking van de belangrijkste functies en mogelijkheden van UDF's en UDE's:

Vermogen UDFs UDEs
Aangepaste bedrijfslogica uitvoeren Ja Ja
Aanpassing van runtimeargumenten /parameters Ja Ja
Nieuwe API/eindpunten beschikbaar maken Nee. Ja
Afzonderlijke functies uitvoeren Ja Nee.
Hooks uitvoeren vóór/na een schrijfbewerking voor grootboekvermelding Ja Nee.
Aangepaste code maken en bijwerken Ja (gedetailleerde update/verwijdering van elke functie) Ja (update van één toepassingsbundel voor alle eindpunten)
Aangepaste Runtime-opties voor JavaScript Ja (per uitvoering) Ja (wereldwijd)
Uitvoering op backupknooppunten Nee. Ja
Ondersteuning voor meerdere gegevensindelingen voor invoer en uitvoer Nee. Ja
Aangepaste verificatie en autorisatie Nee. Ja
Doelscenario's Uitvoering van eenvoudige aangepaste logica en integratie met de grootboek-API Geavanceerde use cases waarvoor aangepaste API's en controle over geavanceerde JavaScript-parameters zijn vereist

Schakelen tussen UDF's en UDE's

UDFs en UDEs sluiten elkaar wederzijds uit. U kunt geen UDF's maken of uitvoeren als UDE's zijn gedefinieerd en omgekeerd. Gebruik de volgende stappen om te schakelen tussen de twee functies.

Belangrijk

Schakelen tussen UDF's en UDE's is een destructieve bewerking. Alle bestaande UDF's of UDE's worden verwijderd wanneer u overschakelt naar de andere functie. Maak een back-up van belangrijke gegevens voordat u verdergaat.

Van UDF's naar UDE's

Als u wilt overschakelen van UDF's naar UDE's, verwijdert u alle bestaande UDF's:

  1. Vermeld alle UDF's die zijn opgeslagen in het grootboek met behulp van de GET /app/userDefinedFunctions API.

  2. Verwijder elke UDF, één voor één, met behulp van de DELETE /app/userDefinedFunctions/{functionId} API.

Van UDE's naar UDF's

Als u wilt overschakelen van UDE's naar UDF's, definieert u UDE's met lege modules en eindpuntdefinities.

  1. Maak een nieuwe toepassingsbundel met de volgende structuur:

    {
        "metadata": {
            "endpoints": {}
        }, 
       "modules": []
    }
    
  2. Implementeer de toepassingsbundel met de aanvraagbody die is gedefinieerd in stap 1 met behulp van de PUT /app/userDefinedEndpoints API.

Volgende stappen

Raadpleeg de volgende artikelen om aan de slag te gaan met programmeren aan de serverzijde in Azure Confidential Ledger: