Utforska indata- och utdatabindningstyper
Åtkomst till och bearbetning av data är viktiga uppgifter i många programvarulösningar. Tänk på några av följande scenarier:
- Du uppmanas att implementera ett sätt att flytta inkommande data från Azure Blob Storage till Azure Cosmos DB.
- Du vill skicka inkommande meddelanden till en kö för bearbetning av en annan komponent i företaget.
- Di tjänst måste hämta spelresultat från en kö och uppdatera en poängtavla online.
Alla dessa exempel handlar om att flytta data. Datakällan och -målen skiljer sig för olika scenarier men mönstret är liknande. Du ansluter till en datakälla och läser och skriver data. Azure Functions hjälper dig att integrera data och tjänster med bindningar.
Vad är en bindning?
I Azure Functions utgör bindningar ett deklarativt sätt att ansluta till data i koden. De gör det lättare att integrera dataströmmar konsekvent i en funktion. Du kan ha flera bindningar som ger åtkomst till olika dataelement. Den här integreringen är kraftfull eftersom du kan ansluta till dina datakällor utan att behöva koda specifik anslutningslogik (till exempel databasanslutningar eller webb-API-gränssnitt).
Typer av bindningar
Det finns två typer av bindningar du kan använda för funktioner:
Indatabindning – Ansluter till en datakälla. Vår funktion kan läsa data från dessa indatakällor.
Utdatabindning – Ansluter till ett datamål. Vår funktion kan skriva data till dessa utdatamål.
Det finns också utlösare, som är särskilda typer av indatabindningar som gör att en funktion körs. Till exempel kan ett Azure Event Grid-meddelande konfigureras som en utlösare. När en händelse inträffar körs funktionen.
Typer av bindningar som stöds
Typen av bindning definierar var vi läser eller skickar data. Det finns en bindning för att svara på webbförfrågningar och ett stort urval bindningar för att interagera direkt med olika Azure-tjänster och tjänster från tredje part.
En bindningstyp kan användas som indata, utdata eller båda. En funktion kan till exempel skriva till en Blob Storage-utdatabindning, men en Blob Storage-uppdatering kan utlösa en annan funktion.
Vanliga bindningstyper är:
- Blob Storage
- Azure Service Bus-köer
- Azure Cosmos DB
- Azure Event Hubs
- Externa filer
- Externa tabeller
- HTTP-slutpunkter
Dessa typer är bara ett urval. Det finns fler och funktioner har en utöknignsmodell för att lägga till fler bindningar.
Bindningsegenskaper
Tre egenskaper krävs i alla bindningar, men du kan behöva ange fler egenskaper baserat på vilken typ av bindning och lagring du använder.
Namn – Definierar funktionsparametern genom vilken du får åtkomst till data. I en köindatabindning är den här egenskapen till exempel namnet på funktionsparametern som tar emot innehållet i kömeddelandet.
Typ – Identifierar typen av bindning. Till exempel den typ av data eller tjänst som du vill interagera med.
Riktning – Anger vilken riktning data flödar. Är det till exempel en indata- eller utdatabindning?
De flesta bindningstyper behöver dessutom en fjärde egenskap:
- Anslutning – Innehåller namnet på en appinställningsnyckel som innehåller anslutningssträngen. Bindningar med anslutningssträngar som lagras i appinställningar för att hålla hemligheter utanför funktionskoden. Anslutningssträngar gör koden mer konfigurerbar och säker.
Skapa en bindning
Bindningar definieras i JSON. En bindning konfigureras i funktionens konfigurationsfil, som har namnet function-json och finns i samma mapp som funktionskoden.
Låt oss nu undersöka ett exempel på en indatabindning:
...
{
"name": "headshotBlob",
"type": "blob",
"path": "thumbnail-images/{filename}",
"connection": "HeadshotStorageConnection",
"direction": "in"
},
...
Vi gör följande för att skapa bindningen:
Skapa en bindning i vår function.json-fil.
Ange värdet för variabeln
name
. I det här exemplet ska variabeln innehålla blob-data.Ange
type
för lagringen. I föregående exempel använder vi Blob Storage.Ange
path
, som anger containern och objektnamnet som placerar där. Egenskapenpath
krävs när du använder blobutlösaren och ska anges i formatet som visas här, med klammerparenteser runt filnamnsdelen av sökvägen. Den här syntaxen skapar ett bindningsuttryck som gör att du kan referera till blobens namn i andra bindningar och i funktionens kod. I det här exemplet fylls en parameter i funktionen filename i med filnamnet för den blob som utlöste funktionen.Ange namnet på
connection
-stränginställningen som definieras programmets inställningsfil. Namnet används som en nyckel för att hitta anslutningssträng för att ansluta till ditt lagringskonto.Definiera
direction
somin
. Det läser data från bloben.
Bindningar används till att ansluta till data i en funktion. I det här exemplet använde vi en indatabindning för att ansluta användarbilder för bearbetning av vår funktion som miniatyrbilder.