Typen in- en uitvoerbindingen verkennen

Voltooid

Het ophalen en verwerken van gegevens zijn sleuteltaken in veel softwareoplossingen. Neem bijvoorbeeld deze scenario's:

  • U bent gevraagd een manier te implementeren om binnenkomende gegevens van Azure Blob Storage te verplaatsen naar Azure Cosmos DB.
  • U wilt binnenkomende berichten in een wachtrij plaatsen voor verwerking door een ander onderdeel in uw onderneming.
  • U wilt scores van gamers uit een wachtrij ophalen en een onlinescorebord bijwerken met uw service.

Al deze voorbeelden gaan over het verplaatsen van gegevens. De gegevensbron en het doel verschillen per scenario, maar het patroon is hetzelfde. U maakt verbinding met een gegevensbron en u leest en schrijft gegevens. Met Azure Functions kunt u gegevens en services integreren met behulp van bindingen.

Wat is een binding?

In Azure Functions bieden bindingen een declaratieve methode om verbinding te maken met gegevens vanuit uw code. Dit vereenvoudigt een consistente integratie met gegevensstromen in een functie. U kunt meerdere bindingen hebben om zo toegang te geven tot verschillende gegevenselementen. Deze integratie is krachtig omdat u verbinding kunt maken met uw gegevensbronnen zonder dat u specifieke verbindingslogica hoeft te coden (zoals databaseverbindingen of web-API-interfaces).

Typen bindingen

Er zijn twee soorten bindingen die u kunt gebruiken met functies:

  • Invoerbinding: Verbinding maken s naar een gegevensbron. Onze functie kan gegevens lezen uit deze invoerbronnen.

  • Uitvoerbinding: Verbinding maken s naar een gegevensbestemming. Onze functie kan gegevens schrijven naar deze uitvoerbestemmingen.

Er zijn ook triggers, die speciale typen invoerbindingen zijn die ervoor zorgen dat een functie wordt uitgevoerd. Zo kan een Azure Event Grid-melding worden geconfigureerd als een trigger. Wanneer er een gebeurtenis optreedt, wordt de functie uitgevoerd.

Typen ondersteunde bindingen

Het type binding definieert waar we gegevens lezen of verzenden. Er is een binding om te reageren op webaanvragen en een grote selectie bindingen om rechtstreeks te communiceren met verschillende Azure-services en services van derden.

Een bindingstype kan worden gebruikt als invoer, uitvoer of beide. Een functie kan bijvoorbeeld schrijven naar een Blob Storage-uitvoerbinding, maar een Blob Storage-update kan een andere functie activeren.

Veelvoorkomende bindingstypen zijn:

  • Blob Storage
  • Azure Service Bus-wachtrijen
  • Azure Cosmos DB
  • Azure Event Hubs
  • Externe bestanden
  • Externe tabellen
  • HTTP-eindpunten

Dit zijn slechts enkelen voorbeelden. Er zijn er nog meer, en daarbij komt dat functies een uitbreidingsmodel hebben om nog meer bindingen toe te voegen.

Eigenschappen van een binding

Er zijn drie eigenschappen vereist in alle bindingen, hoewel u mogelijk meer eigenschappen moet opgeven op basis van het type binding en de opslag die u gebruikt.

  • Naam: hiermee definieert u de functieparameter voor toegang tot de gegevens. In een wachtrijinvoerbinding is deze eigenschap bijvoorbeeld de naam van de functieparameter die de inhoud van het wachtrijbericht ontvangt.

  • Type - Identificeert het type binding. Bijvoorbeeld het type gegevens of service waarmee u wilt communiceren.

  • Direction : geeft aan dat de richtingsgegevens stromen. Is het bijvoorbeeld een invoer- of uitvoerbinding?

De meeste bindingstypen hebben ook nog een vierde eigenschap:

  • Verbinding: hiermee kunt u de naam opgeven van de sleutel met een app-instelling die de verbindingsreeks bevat. Bindingen gebruiken verbindingsreeksen die zijn opgeslagen in app-instellingen om geheimen buiten de functiecode te houden. Verbinding maken iontekenreeksen zorgen ervoor dat uw code beter configureerbaar en veilig is.

Een binding maken

Bindingen worden gedefinieerd in JSON. Een binding wordt geconfigureerd in het configuratiebestand van uw functie. Dit bestand heeft de naam function.json en bevindt zich in dezelfde map als uw functiecode.

Laten we eens kijken een voorbeeld van een invoerbinding:

    ...
    {
      "name": "headshotBlob",
      "type": "blob",
      "path": "thumbnail-images/{filename}",
      "connection": "HeadshotStorageConnection",
      "direction": "in"
    },
    ...

U kunt deze binding als volgt maken:

  1. Maak een binding in het bestand function.json.

  2. Geef een waarde op voor de variabele name. In dit voorbeeld bevat de variabele de blobgegevens.

  3. Geef het type opslag op. In het voorgaande voorbeeld gebruiken we Blob Storage.

  4. Geef het path op, bestaande uit de container en de naam van het item in de container. De path eigenschap is vereist wanneer u de blobtrigger gebruikt en moet worden opgegeven in de stijl die hier wordt weergegeven, met accolades rond het bestandsnaamgedeelte van het pad. Met deze syntaxis maakt u een bindingsexpressie waarmee u kunt verwijzen naar de naam van de blob in andere bindingen en in de code van uw functie. In dit voorbeeld wordt een parameter voor de functie met de naam filename gevuld met de bestandsnaam van de blob die de functie heeft geactiveerd.

  5. Geef de naam voor instelling van de tekenreeks connection op die is gedefinieerd in het bestand met instellingen van de toepassing. Deze wordt gebruikt als sleutel voor het opzoeken van de verbindingsreeks om verbinding te maken met uw opslagaccount.

  6. Stel direction in op in. Hiermee worden gegevens uit de blob gelezen.

Bindingen worden gebruikt voor het maken van verbinding met gegevens in uw functie. In dit voorbeeld hebben we een invoerbinding gebruikt om gebruikersafbeeldingen te verbinden voor verwerking door onze functie als miniaturen.