A bemeneti és kimeneti kötéstípusok megismerése
Az adatok elérése és feldolgozása sok szoftveres megoldás esetén kulcsfontosságú feladat. Gondoljon például az alábbi esetekre:
- A rendszer arra kéri, hogy implementálja a bejövő adatok Azure Blob Storage-ból az Azure Cosmos DB-be való áthelyezésének módját.
- A bejövő üzeneteket egy üzenetsorba szeretné küldeni, hogy onnan a szervezet egy másik összetevője feldolgozhassa azokat.
- A szolgáltatás lekéri a játékosok pontszámait egy üzenetsorból, amelyeket egy online eredménytáblán jelenít majd meg.
Ezen példák mindegyike adatmozgatással kapcsolatos. Mindegyik forgatókönyvben más az adatok forrása és célja, de hasonló mintán alapulnak: Csatlakozik egy adatforráshoz, majd adatokat olvas és ír. Az Azure Functions segítségével kötések használatával integrálhatja adatait és szolgáltatásait.
Mit jelent a kötés?
Az Azure Functions esetében kötések használatával deklaratívan hozzáférhet az adatokhoz a kódon keresztül. A kötések megkönnyítik az adatfolyamok következetes integrációját a függvényben. Több kötést is használhat, így több adatelemhez is hozzáférést biztosíthat. Ez az integráció azért hatékony, mert az adatforrásokhoz anélkül csatlakozhat, hogy konkrét kapcsolatlogikát kellene használnia (például adatbázis-kapcsolatokat vagy webes API-felületeket).
Kötések típusai
A függvényekhez kétféle kötést használhat:
Bemeneti kötés – Adatforráshoz csatlakozik. A függvényünk képes adatokat olvasni ezekből a bemeneti forrásokból.
Kimeneti kötés – Egy adat célhelyéhez csatlakozik. A függvényünk adatokat tud írni ezekre a kimeneti célokra.
Vannak triggerek is, amelyek speciális típusú bemeneti kötések, amelyek egy függvény futtatását okozzák. Például eseményindítóként konfigurálható egy Azure Event Grid-értesítés. Esemény bekövetkezésekor a függvény fut.
Támogatott kötések típusai
A kötés típusa határozza meg, hogy hol olvassuk vagy küldjük el az adatokat. Van egy kötés, amely válaszol a webes kérelmekre, és számos kötést kínál a különböző Azure-szolgáltatásokkal és külső szolgáltatásokkal való közvetlen interakcióhoz.
A kötéstípus használható bemenetként, kimenetként vagy mindkettőként. Egy függvény például írhat egy Blob Storage kimeneti kötésbe, de egy Blob Storage-frissítés egy másik függvényt is aktiválhat.
Gyakori kötéstípusok a következők:
- Blob Storage
- Azure Service Bus-üzenetsorok
- Azure Cosmos DB
- Azure-eseményközpontok
- Külső fájlok
- Külső táblák
- HTTP-végpontok
Itt csak néhányat soroltunk fel. Több is van, és a függvények bővíthetőséggel is rendelkeznek, így további kötések is hozzáadhatók.
Kötések tulajdonságai
Minden kötéshez három tulajdonságra van szükség, de előfordulhat, hogy a használt kötés típusa és tárterülete alapján további tulajdonságokat kell megadnia.
Name – Meghatározza a függvény azon paraméterét, amelyen keresztül hozzáfér az adatokhoz. Egy üzenetsor bemeneti kötésében például ez a tulajdonság annak a függvényparaméternek a neve, amely fogadja az üzenetsor-üzenet tartalmát.
Típus – A kötés típusát azonosítja. Például a használni kívánt adatok vagy szolgáltatások típusa.
Irány – Azt jelzi, hogy az adatok milyen irányban haladnak. Például bemeneti vagy kimeneti kötés?
Ezen kívül a legtöbb kötéstípushoz egy ötödik tulajdonságot is meg kell adni:
- Connection – Egy alkalmazásbeállítási kulcs nevét adja meg, amely tartalmazza a kapcsolati sztringet. A kötések az alkalmazásbeállításokban tárolt kapcsolati sztringeket használják, hogy a titkos kulcsokat elkülönítsék a függvény kódjától. A kapcsolati sztringek konfigurálhatóbbá és biztonságosabbá teszik a kódot.
Kötés létrehozása
A kötéseket JSON-fájlban lehet konfigurálni. A kötés a függvény function.json nevű konfigurációs fájljában van definiálva, és a függvény kódjával azonos mappában található.
Vizsgáljuk meg egy példát a bemeneti kötésre:
...
{
"name": "headshotBlob",
"type": "blob",
"path": "thumbnail-images/{filename}",
"connection": "HeadshotStorageConnection",
"direction": "in"
},
...
A kötés létrehozásához a következő lépések szükségesek:
Kötés létrehozása a function.json fájlban.
A
name
változó értékének megadása. Ebben a példában a változó a blobadatokat tartalmazza.A
type
tár megadása. Az előző példában a Blob Storage-t használjuk.Adja meg az útvonalat a
path
tulajdonsággal, amely meghatározza a tárolót és az abba helyezett elem nevét. Apath
tulajdonságra a blob-eseményindító használatakor van szükség, és az itt látható stílusban kell megadni, kapcsos zárójelekkel az elérési út fájlnév részén. Ez a szintaxis létrehoz egy kötési kifejezést , amely lehetővé teszi, hogy hivatkozzon a blob nevére más kötésekben és a függvény kódjában. Ebben a példában a filename nevű függvény paraméteréhez bekerülne a függvényt elindító blob fájlneve.Adja meg a
connection
sztringbeállítás nevét, amelyet az alkalmazás beállításfájljában meghatározott. A rendszer kulcsként használja a nevet a tárfiókhoz való csatlakozáshoz szükséges kapcsolati sztring megkereséséhez.A
direction
definiálásain
értékre. Ez adatokat olvas a blobból.
Kötések használatával csatlakozhat a függvényben található adatokhoz. Ebben a példában egy bemeneti kötéssel csatlakoztattuk a felhasználói képeket a függvényünk miniatűrökként való feldolgozásához.