Oktatóanyag: Azure Functions aktiválása blobtárolókon esemény-előfizetés használatával
Ha a Blob Storage-eseményindító korábbi verzióit használja az Azure Functions használatával, gyakran késik a végrehajtás, mert az eseményindító lekérdezi a blobtárolót a frissítésekért. Csökkentheti a késést, ha egy esemény-előfizetés használatával aktiválja a függvényt ugyanarra a tárolóra. Az esemény-előfizetés az Event Grid-infrastruktúrával továbbítja a tároló módosításait. Ezt a képességet a legújabb Azure Functions-bővítményekkel valósíthatja meg.
Ez a cikk bemutatja, hogyan hozhat létre olyan függvényt, amely egy blob tárolóhoz való hozzáadásakor felmerülő események alapján fut. A Visual Studio Code-ot fogja használni a helyi fejlesztéshez, és ellenőrizni fogja, hogy a függvény helyileg működik-e, mielőtt üzembe helyezené a projektet az Azure-ban.
- Hozzon létre egy általános 2-s tárfiókot az Azure Storage-ban.
- Hozzon létre egy tárolót a Blob Storage-ban.
- Eseményvezérelt Blob Storage-függvény létrehozása.
- Esemény-előfizetés létrehozása blobtárolóhoz.
- Helyi hibakeresés ngrok használatával fájlok feltöltésével.
- Üzembe helyezés az Azure-ban, és egy szűrt esemény-előfizetés létrehozása.
Fontos
Ez a cikk lapokat használ a Node.js programozási modell több verziójának támogatásához. A v4-modell általánosan elérhető, és úgy lett kialakítva, hogy rugalmasabb és intuitívabb felhasználói élményt nyújtson JavaScript- és TypeScript-fejlesztők számára. A v4-modell működésével kapcsolatos további információkért tekintse meg az Azure Functions Node.js fejlesztői útmutatóját. A v3 és a v4 közötti különbségekről a migrálási útmutatóban olvashat bővebben.
Előfeltételek
Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
.NET 6.0 SDK és opcionálisan .NET 7.0 SDK a .NET 7.0 célzásakor.
Visual Studio Code az egyik támogatott platformon.
C#-bővítmény a Visual Studio Code-hoz.
Azure Functions-bővítmény a Visual Studio Code-hoz.
Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
Node.js 14.x vagy újabb.
node --version
A parancs használatával ellenőrizze a verziót.Visual Studio Code az egyik támogatott platformon.
A Visual Code Azure Functions-bővítménye. Ez a bővítmény telepíti az Azure Functions Core Toolst , amikor először futtatja helyileg a függvényeket.
Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
Visual Studio Code az egyik támogatott platformon.
A Visual Studio Code PowerShell-bővítménye.
A Visual Code Azure Functions-bővítménye.
Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
Az Azure Functions által támogatott Python-verziók. További információ: A Python telepítése.
Visual Studio Code az egyik támogatott platformon.
A Visual Code Azure Functions-bővítménye.
Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
A Java fejlesztői készlet, 8-es, 11-es, 17-es vagy 21-es verzió (Linux).
Az Apache Maven 3.0-s vagy újabb verziója.
Visual Studio Code az egyik támogatott platformon.
A Visual Code Azure Functions-bővítménye.
Az ngrok segédprogram, amely lehetővé teszi, hogy az Azure meghívja a helyileg futó függvényt.
Azure Storage-bővítmény a Visual Studio Code-hoz, minimálisan 5.x-es verzió.
Feljegyzés
A Visual Studio Code Azure Storage-bővítménye jelenleg előzetes verzióban érhető el.
Tárfiók létrehozása
Ha esemény-előfizetést szeretne használni az Azure Storage-ban, szüksége lesz egy általános célú v2-tárfiókra. Ezt a tárfiókot alapértelmezés szerint a Visual Studio Code-projektből hozhatja létre, ha telepítve van az Azure Storage-bővítmény.
A Visual Studio Code-ban nyissa meg a parancskatalógust (nyomja le az F1 billentyűt), írja be a következőt
Azure Storage: Create Storage Account...
: A parancssorban adja meg a következő információkat:Adatkérés Művelet Adja meg az új tárfiók nevét Adjon meg egy globálisan egyedi nevet. A tárfiókok nevének 3–24 karakter hosszúságúnak kell lennie, csak kisbetűkkel és számokkal. A könnyebb azonosítás érdekében ugyanazt a nevet fogjuk használni az erőforráscsoporthoz és a függvényalkalmazás nevéhez. Új erőforrások helyének kiválasztása A jobb teljesítmény érdekében válasszon egy Önhöz közeli régiót. A bővítmény létrehoz egy általános célú v2-tárfiókot a megadott névvel. Ugyanezt a nevet használja a tárfiókot tartalmazó erőforráscsoport is.
A tárfiók létrehozása után nyissa meg a parancskatalógust (nyomja le az F1 billentyűt), és írja be a következőt
Azure Storage: Create Blob Container...
: A parancssorban adja meg a következő információkat:Adatkérés Művelet Erőforrás kiválasztása Válassza ki a létrehozott tárfiókot. Adja meg az új blobtároló nevét Adja meg samples-workitems
a kódprojektben hivatkozott tárolónevet.
Most, hogy létrehozta a blobtárolót, létrehozhatja a tárolón aktiváló függvényt és az eseményeket a függvénynek kézbesítő esemény-előfizetést is.
Blob által aktivált függvény létrehozása
Amikor a Visual Studio Code-tal létrehoz egy Blob Storage által aktivált függvényt, egy új projektet is létrehoz. A függvényt úgy kell szerkesztenie, hogy egy esemény-előfizetést használjon forrásként a szokásos lekérdezési tároló használata helyett.
Nyissa meg a függvényalkalmazást a Visual Studio Code-ban.
Nyissa meg a parancskatalógust (nyomja le az F1 billentyűt), írja be
Azure Functions: Create Function...
, majd válassza az Új projekt létrehozása lehetőséget.A projekt-munkaterületen válassza ki a címtár helyét. Győződjön meg arról, hogy létrehoz egy új mappát, vagy kiválaszt egy üres mappát a projekt-munkaterülethez.
Ne válasszon olyan projektmappát, amely már része egy munkaterületnek.
A parancssorban adja meg a következő információkat:
Adatkérés Művelet Nyelv kiválasztása Válassza ki C#
..NET-futtatókörnyezet kiválasztása Válassza ki .NET 6.0 Isolated LTS
az izolált feldolgozói folyamatban vagy.NET 6.0 LTS
a folyamatban való futtatáshoz.Sablon kiválasztása a projekt első függvényéhez Válassza ki Azure Blob Storage trigger
.Függvénynév megadása Írja be BlobTriggerEventGrid
.Névtér megadása Írja be My.Functions
.Válassza ki a beállítást a "local.settings.json" elemből Válassza ki Create new local app setting
.Tárfiók kiválasztása Válassza ki a listából létrehozott tárfiókot. Ez az az elérési út a tárfiókban, amelyet az eseményindító figyelni fog Fogadja el az alapértelmezett értéket samples-workitems
.Válassza ki, hogyan szeretné megnyitni a projektet Válassza ki Open in current window
.Adatkérés Művelet Nyelv kiválasztása Válassza ki Python
.Python-értelmező kiválasztása virtuális környezet létrehozásához Válassza ki az előnyben részesített Python-értelmezőt. Ha egy lehetőség nem jelenik meg, adja meg a Python-bináris teljes elérési útját. Sablon kiválasztása a projekt első függvényéhez Válassza ki Azure Blob Storage trigger
.Függvénynév megadása Írja be BlobTriggerEventGrid
.Válassza ki a beállítást a "local.settings.json" elemből Válassza ki Create new local app setting
.Tárfiók kiválasztása Válassza ki a listából létrehozott tárfiókot. Ez az az elérési út a tárfiókban, amelyet az eseményindító figyelni fog Fogadja el az alapértelmezett értéket samples-workitems
.Válassza ki, hogyan szeretné megnyitni a projektet Válassza ki Open in current window
.Adatkérés Művelet Nyelv kiválasztása Válassza ki Java
.Java-verzió kiválasztása Válassza ki vagy Java 8
válassza kiJava 11
azt a Java-verziót, amelyen a függvények futnak az Azure-ban, és amelyet helyileg ellenőrzött.Csoportazonosító megadása Válassza ki com.function
.Összetevő-azonosító megadása Válassza ki BlobTriggerEventGrid
.Verzió megadása Válassza ki 1.0-SNAPSHOT
.Adja meg a csomag nevét Válassza ki com.function
.Alkalmazásnév megadása Fogadja el a létrehozott nevet a következővel kezdődően BlobTriggerEventGrid
: .A Java-projekt buildelési eszközének kiválasztása Válassza ki Maven
.Válassza ki, hogyan szeretné megnyitni a projektet Válassza ki Open in current window
.Adatkérés Művelet A függvényprojekt nyelvének kiválasztása Válassza ki TypeScript
.TypeScript programozási modell kiválasztása Válassza ki Model V4
.Sablon kiválasztása a projekt első függvényéhez Válassza ki Azure Blob Storage trigger
.Függvénynév megadása Írja be BlobTriggerEventGrid
.Válassza ki a beállítást a "local.settings.json" elemből Válassza ki Create new local app setting
.Tárfiók kiválasztása Válassza ki a létrehozott tárfiókot. Ez az az elérési út a tárfiókban, amelyet az eseményindító figyelni fog Fogadja el az alapértelmezett értéket samples-workitems
.Válassza ki, hogyan szeretné megnyitni a projektet Válassza ki Open in current window
.Adatkérés Művelet A függvényprojekt nyelvének kiválasztása Válassza ki JavaScript
.JavaScript-programozási modell kiválasztása Válassza ki Model V4
.Sablon kiválasztása a projekt első függvényéhez Válassza ki Azure Blob Storage trigger
.Függvénynév megadása Írja be BlobTriggerEventGrid
.Válassza ki a beállítást a "local.settings.json" elemből Válassza ki Create new local app setting
.Tárfiók kiválasztása Válassza ki a létrehozott tárfiókot. Ez az az elérési út a tárfiókban, amelyet az eseményindító figyelni fog Fogadja el az alapértelmezett értéket samples-workitems
.Válassza ki, hogyan szeretné megnyitni a projektet Válassza ki Open in current window
.Adatkérés Művelet A függvényprojekt nyelvének kiválasztása Válassza ki PowerShell
.Sablon kiválasztása a projekt első függvényéhez Válassza ki Azure Blob Storage trigger
.Függvénynév megadása Írja be BlobTriggerEventGrid
.Válassza ki a beállítást a "local.settings.json" elemből Válassza ki Create new local app setting
.Tárfiók kiválasztása Válassza ki a létrehozott tárfiókot. Ez az az elérési út a tárfiókban, amelyet az eseményindító figyelni fog Fogadja el az alapértelmezett értéket samples-workitems
.Válassza ki, hogyan szeretné megnyitni a projektet Válassza ki Open in current window
.A kérés megjelenése után válassza a Tárfiók>hozzáadása a munkaterülethez lehetőséget.
Az egyszerűség kedvéért ez az oktatóanyag ugyanazt a tárfiókot használja újra a függvényalkalmazással. Éles környezetben azonban érdemes lehet külön tárfiókot használni a függvényalkalmazással. További információért lásd az Azure Functions tárolási szempontjait.
A Storage-bővítmény frissítése
Az Event Grid-alapú Blob Storage-eseményindító használatához a függvénynek legalább 5.x-es verzióra van szüksége a Storage-bővítményhez.
Ha frissíteni szeretné a projektet a szükséges bővítményverzióval, futtassa a következő parancsot a terminálablakban: dotnet add package
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs --version 6.1.0
Nyissa meg a host.json projektfájlt, és vizsgálja meg az
extensionBundle
elemet.Ha
extensionBundle.version
nem,3.3.0
akkor cserélje leextensionBundle
a legújabbra:"extensionBundle": { "id": "Microsoft.Azure.Functions.ExtensionBundle", "version": "[4.0.0, 5.0.0)" }
A függvény frissítése események használatára
A BlobTriggerEventGrid.cs fájlban adja hozzá Source = BlobTriggerSource.EventGrid
a Blob trigger attribútum paramétereit, például:
[Function("BlobTriggerCSharp")]
public async Task Run([BlobTrigger("samples-workitems/{name}", Source = BlobTriggerSource.EventGrid, Connection = "<NAMED_STORAGE_CONNECTION>")] Stream myBlob, string name, FunctionContext executionContext)
{
var logger = executionContext.GetLogger("BlobTriggerCSharp");
logger.LogInformation($"C# Blob trigger function Processed blob\n Name: {name} \n Size: {myBlob.Length} Bytes");
}
A függvény létrehozása után a function.json konfigurációs fájlban adja hozzá "source": "EventGrid"
a myBlob
kötést, például:
{
"scriptFile": "__init__.py",
"bindings": [
{
"name": "myblob",
"type": "blobTrigger",
"direction": "in",
"path": "samples-workitems/{name}",
"source": "EventGrid",
"connection": "<NAMED_STORAGE_CONNECTION>"
}
]
}
A létrehozott
Function.java
fájlban cserélje le a tartalmat a következő kódra, és nevezze át a fájlt a következőreBlobTriggerEventGrid.java
:package com.function; import com.microsoft.azure.functions.annotation.*; import com.microsoft.azure.functions.*; /** * Azure Functions with Azure Blob trigger. */ public class BlobTriggerEventGrid { /** * This function will be invoked when a new or updated blob is detected at the specified path. The blob contents are provided as input to this function. */ @FunctionName("BlobTriggerEventGrid") @StorageAccount("glengatesteventgridblob_STORAGE") public void run( @BlobTrigger(name = "content", path = "samples-workitems/{name}", dataType = "binary", source = "EventGrid" ) byte[] content, @BindingName("name") String name, final ExecutionContext context ) { context.getLogger().info("Java Blob trigger function processed a blob. Name: " + name + "\n Size: " + content.length + " Bytes"); } }
Távolítsa el a társított egységtesztfájlt, amely már nem vonatkozik az új eseményindító típusára.
A függvény létrehozása után adja hozzá source: "EventGrid"
az objektumot a options
TypeScript-fájlban, például:
import { app, InvocationContext } from '@azure/functions';
export async function storageBlobTrigger1(blob: Buffer, context: InvocationContext): Promise<void> {
context.log(
`Storage blob function processed blob "${context.triggerMetadata.name}" with size ${blob.length} bytes`
);
}
app.storageBlob('storageBlobTrigger1', {
path: 'samples-workitems/{name}',
connection: 'MyStorageAccountAppSetting',
source: 'EventGrid',
handler: storageBlobTrigger1,
});
A függvény létrehozása után adja hozzá source: "EventGrid"
az options
objektumot a JavaScript-fájlban, például:
const { app } = require('@azure/functions');
app.storageBlob('storageBlobTrigger1', {
path: 'samples-workitems/{name}',
connection: 'MyStorageAccountAppSetting',
source: 'EventGrid',
handler: (blob, context) => {
context.log(
`Storage blob function processed blob "${context.triggerMetadata.name}" with size ${blob.length} bytes`
);
},
});
A függvény létrehozása után a function.json konfigurációs fájlban adja hozzá "source": "EventGrid"
a myBlob
kötést, például:
{
"bindings": [
{
"name": "myblob",
"type": "blobTrigger",
"direction": "in",
"path": "samples-workitems/{name}",
"source": "EventGrid",
"connection": "<NAMED_STORAGE_CONNECTION>"
}
]
}
Helyi hibakeresés indítása
Az Event Grid ellenőrzi a végpont URL-címét, amikor esemény-előfizetést hoz létre az Azure Portalon. Ez az ellenőrzés azt jelenti, hogy a helyi hibakereséshez szükséges esemény-előfizetés létrehozása előtt a függvénynek helyileg kell futnia az ngrok segédprogram által engedélyezett táveléréssel. Ha a helyi függvénykód nem fut és érhető el az Azure-hoz, nem fogja tudni létrehozni az esemény-előfizetést.
A blob-eseményindító végpontjának meghatározása
Ha a függvény helyileg fut, az eseményvezérelt blobtároló-eseményindítóhoz használt alapértelmezett végpont az alábbi URL-címhez hasonlóan néz ki:
http://localhost:7071/runtime/webhooks/blobs?functionName=Host.Functions.BlobTriggerEventGrid
http://localhost:7071/runtime/webhooks/blobs?functionName=Host.Functions.BlobTriggerEventGrid
Mentse ezt az elérési utat, amelyet később az esemény-előfizetések végponti URL-címeinek létrehozásához fog használni. Ha más nevet használt a Blob Storage által aktivált függvényhez, módosítania kell az functionName
értéket a lekérdezési sztringben.
Feljegyzés
Mivel a végpont egy Blob Storage-eseményindító eseményeit kezeli, a végpont elérési útja tartalmazza blobs
a következőket: . Az Event Grid-eseményindító végponti URL-címe ehelyett az elérési úton található eventgrid
.
Ngrok futtatása
A számítógépen hibakeresés alatt álló függvénybe való betöréshez meg kell adnia egy módot az Azure Event Grid számára, hogy kommunikáljon a helyi számítógépen futó függvényekkel.
Az ngrok segédprogram egy véletlenszerűen létrehozott proxykiszolgáló-címre továbbítja a külső kéréseket a helyi számítógépen található adott címre és portra. segítségével meghívhatja a számítógépen futó függvény webhook-végpontját.
Indítsa el az ngrokot a következő paranccsal:
ngrok.exe http http://localhost:7071
A segédprogram elindulásakor a parancsablaknak az alábbi képernyőképhez hasonlóan kell kinéznie:
Másolja ki az ngrok futtatásakor létrehozott HTTPS URL-címet. Ez az érték az ngrok használatával közzétett webhook-végpont meghatározására szolgál a számítógépen.
Fontos
Ezen a ponton, ne állj le ngrok
. Minden indításkor ngrok
a HTTPS URL-cím egy másik értékkel lesz újragenerálva. Mivel az esemény-előfizetés végpontja nem módosítható, minden futtatáskor ngrok
létre kell hoznia egy új esemény-előfizetést.
Ha nem hoz létre ngrok-fiókot, a maximális ngrok-munkamenet időtartama legfeljebb két óra lehet.
A végpont URL-címének létrehozása
Az esemény-előfizetésben használt végpont három különböző részből áll, egy előtagú kiszolgálónévből, egy elérési útból és egy lekérdezési sztringből. Az alábbi táblázat a következő részeket ismerteti:
URL-rész | Leírás |
---|---|
Előtag és kiszolgálónév | Ha a függvény helyileg fut, az előtaggal rendelkező https:// kiszolgálónév az ngrok által létrehozott továbbítási URL-címből származik. A localhost URL-címben az ngrok URL-cím helyébe lép http://localhost:7071 . Az Azure-ban való futtatáskor ehelyett a közzétett függvényalkalmazás-kiszolgálót fogja használni, amely általában az űrlapon https://<FUNCTION_APP_NAME>.azurewebsites.net van. |
Elérési út | A végpont URL-címének elérési útja a korábban másolt localhost URL-címből származik, és egy Blob Storage-eseményindítóhoz hasonlóan /runtime/webhooks/blobs néz ki. Az Event Grid-eseményindító elérési útja a következő: /runtime/webhooks/EventGrid |
Lekérdezési sztring | A .NET-et is beleértve minden nyelv esetében izolálta a functionName=Host.Functions.BlobTriggerEventGrid paramétert, kivéve a .NET Folyamatban, amelynek a lekérdezési sztringben kell lennie functionName=BlobTriggerEventGrid , megadja az eseményt kezelő függvény nevét. Ha más nevet használt a függvényhez, ezt az értéket módosítania kell. Helyi futtatáskor nincs szükség hozzáférési kulcsra. Az Azure-ban való futtatáskor egy paramétert is fel kell vennie code= az URL-címre, amely tartalmaz egy kulcsot, amelyet a portálról szerezhet be. |
Az alábbi képernyőképen egy példa látható arra, hogyan kell kinéznie a végső végpont URL-címének egy Blob Storage-eseményindító használatakor BlobTriggerEventGrid
:
Hibakeresés indítása
Ha az ngrok már fut, indítsa el a helyi projektet az alábbiak szerint:
Állítson be egy töréspontot a függvényben a naplózást kezelő sorban.
Indítsa el a hibakeresési munkamenetet.
Nyisson meg egy új terminált, és futtassa a következő
mvn
parancsot a hibakeresési munkamenet elindításához.mvn azure-functions:run -DenableDebug
Hibakeresési munkamenet indításához nyomja le az F5 billentyűt.
A kód futtatásával és a továbbítási kérések ngrokálásával ideje létrehozni egy esemény-előfizetést a blobtárolóba.
Az esemény-előfizetés létrehozása
Az Azure Event Grid által üzemeltetett esemény-előfizetés a csatolt blobtároló változásai alapján hoz létre eseményeket. Ez az esemény ezután a függvény eseményindítóján található webhook-végpontra kerül. Az esemény-előfizetés létrehozása után a végpont URL-címe nem módosítható. Ez azt jelenti, hogy miután végzett a helyi hibakereséssel (vagy ha újraindítja az ngrokot), törölnie kell és újra létre kell hoznia az esemény-előfizetést.
A Visual Studio Code-ban válassza az Azure ikont a Tevékenységsávon. Az Erőforrások területen bontsa ki előfizetését, bontsa ki a Tárfiókokat, kattintson a jobb gombbal a korábban létrehozott tárfiókra, és válassza a Megnyitás a portálon lehetőséget.
Jelentkezzen be az Azure Portalra , és jegyezze fel a tárfiók erőforráscsoportját . A többi erőforrást ugyanabban a csoportban fogja létrehozni, hogy egyszerűbben törölhesse az erőforrásokat, amikor elkészült.
válassza az Események lehetőséget a bal oldali menüből.
Az Események ablakban válassza az + Esemény-előfizetés gombot, és adja meg az alábbi táblázat értékeit az Alapszintű lapra:
Beállítás Ajánlott érték Leírás Név myBlobLocalNgrokEventSub Az esemény-előfizetést azonosító név. A névvel gyorsan megtalálhatja az esemény-előfizetést. Eseményséma Event Grid-séma Használja az alapértelmezett sémát az eseményekhez. Rendszertémakör neve samples-workitems-blobs A témakör neve, amely a tárolót jelöli. A témakör az első előfizetéssel jön létre, és a jövőbeli esemény-előfizetésekhez fogja használni. Szűrés eseménytípusokra Blob létrehozva Végpont típusa Webes horog A Blob Storage-eseményindító webhookvégpontot használ. Az Azure Functionst egy Event Grid-eseményindítóhoz használná. Végpont Az ngrok-alapú URL-végpont Használja a korábban meghatározott ngrok-alapú URL-végpontot. Válassza a Kijelölés megerősítése lehetőséget a végpont URL-címének érvényesítéséhez.
Válassza a Létrehozás lehetőséget az esemény-előfizetés létrehozásához.
Fájl feltöltése a tárolóba
Ha az esemény-előfizetés működik, és a kódprojekt és az ngrok továbbra is fut, feltölthet egy fájlt a tárolóba a függvény aktiválásához. A Visual Studio Code használatával feltölthet egy fájlt a számítógépről a Blob Storage-tárolóba.
A Visual Studio Code-ban nyissa meg a parancskatalógust (nyomja le az F1 billentyűt), és írja be a következőt
Azure Storage: Upload Files...
:A Megnyitás párbeszédpanelen válasszon ki egy fájlt, lehetőleg olyan bináris képfájlt, amely nem túl nagy, válassza a Feltöltés lehetőséget.
Amikor a rendszer kéri, adja meg az alábbi információkat:
Beállítás Ajánlott érték Leírás Erőforrás kiválasztása Tárfiók neve Válassza ki az előző lépésben létrehozott tárfiók nevét. Erőforrástípus kiválasztása Blobtárolók Blobtárolóba tölt fel. Blobtároló kiválasztása samples-workitems Ez az érték az előző lépésben létrehozott tároló neve. Adja meg a feltöltés célkönyvtárát alapértelmezett Csak fogadja el a tárológyökér alapértelmezett értékét /
.
Ez a parancs feltölt egy fájlt a számítógépről az Azure-beli tárolóba. Ezen a ponton a futó ngrok-példánynak jelentenie kell egy kérés továbbítását. A hibakeresési munkamenet func.exe kimenetében is látni fogja, hogy a függvény elindult. Remélhetőleg ezen a ponton a hibakeresési munkamenet arra vár, ahol beállította a töréspontot.
A projekt közzététele az Azure-ban
Most, hogy sikeresen ellenőrizte a függvénykódot helyileg, ideje közzétenni a projektet egy új függvényalkalmazásban az Azure-ban.
A függvényalkalmazás létrehozása
Az alábbi lépések létrehozzák az Azure-ban szükséges erőforrásokat, és üzembe helyezik a projektfájlokat.
A parancspalettán adja meg az Azure Functionst: Függvényalkalmazás létrehozása az Azure-ban... (Speciális).
Az utasításokat követve adja meg ezt az információt:
Adatkérés Kiválasztás Adjon meg egy globálisan egyedi nevet az új függvényalkalmazásnak. Írjon be egy globálisan egyedi nevet, amely azonosítja az új függvényalkalmazást, majd válassza az Enter lehetőséget. A függvényalkalmazás nevéhez használható érvényes karakterek a következők: a-z
,0-9
és-
. Írja le ezt a nevet; az új végpont URL-címének létrehozásakor később szüksége lesz rá.Válasszon ki egy futtatókörnyezeti vermet. Válassza ki azt a nyelvi verziót, amelyen helyileg fut. Válasszon ki egy operációs rendszert. Válassza a Linux vagy a Windows lehetőséget. A Python-alkalmazásoknak Linuxon kell futniuk. Válasszon egy erőforráscsoportot az új erőforrásokhoz. Válassza ki a tárfiókkal létrehozott erőforráscsoport nevét, amelyet korábban a portálon is feljegyzett. Válasszon egy helyet az új erőforrásokhoz. Válasszon ki egy helyet egy Önhöz közeli régióban vagy a függvények által elérhető egyéb szolgáltatások közelében. Válasszon egy üzemeltetési tervet. Válassza a Kiszolgáló nélküli használat csomag üzemeltetése lehetőséget, ahol csak a függvények futtatásakor kell fizetnie. Válasszon ki egy tárfiókot. Válassza ki a használt meglévő tárfiók nevét. Válasszon egy alkalmazás-Elemzések erőforrást az alkalmazáshoz. Válassza az Új alkalmazás létrehozása Elemzések erőforrást, és a parancssorba írja be a futtatókörnyezet adatainak a függvényekből való tárolásához használt példány nevét. A függvényalkalmazás létrehozása és az üzembe helyezési csomag alkalmazása után megjelenik egy értesítés. Válassza a Kimenet megtekintése lehetőséget az értesítésben a létrehozási és üzembe helyezési eredmények megtekintéséhez, beleértve a létrehozott Azure-erőforrásokat is.
A függvénykód üzembe helyezése
Fontos
A meglévő függvényalkalmazásban való üzembe helyezés mindig felülírja az alkalmazás tartalmát az Azure-ban.
Az Azure-tevékenység Erőforrások területén keresse meg az imént létrehozott függvényalkalmazás-erőforrást, kattintson a jobb gombbal az erőforrásra, és válassza az Üzembe helyezés függvényalkalmazáshoz... lehetőséget.
Amikor a rendszer kéri a korábbi üzemelő példányok felülírását, válassza az Üzembe helyezés lehetőséget a függvénykód új függvényalkalmazás-erőforrásban való üzembe helyezéséhez.
Az üzembe helyezés befejezése után válassza a Kimenet megtekintése lehetőséget a létrehozási és üzembe helyezési eredmények megtekintéséhez, beleértve a létrehozott Azure-erőforrásokat is. Ha nem jelenik meg az értesítés, a jobb alsó sarokban lévő harang ikont választva ismét láthatja.
Alkalmazásbeállítások közzététele
Mivel a local.settings.json helyi beállításai nincsenek automatikusan közzétéve, most fel kell töltenie őket, hogy a függvény megfelelően fusson az Azure-ban.
A parancspalettán adja meg az Azure Functions: Helyi Gépház feltöltése..., majd a Select a resource. prompt (Erőforrás kiválasztása) mezőben válassza ki a függvényalkalmazás nevét.
Az esemény-előfizetés újbóli létrehozása
Most, hogy a függvényalkalmazás az Azure-ban fut, létre kell hoznia egy új esemény-előfizetést. Ez az új esemény-előfizetés a függvény végpontját használja az Azure-ban. Szűrőt is hozzáad az esemény-előfizetéshez, így a függvény csak akkor aktiválódik, ha JPEG -fájlokat (.jpg) adnak hozzá a tárolóhoz. Az Azure-ban a végpont URL-címe egy hozzáférési kulcsot is tartalmaz, amely megakadályozza, hogy az Event Gridtől eltérő szereplők hozzáférjenek a végponthoz.
A blobbbővítmény kulcsának lekérése
A Visual Studio Code-ban válassza az Azure ikont a Tevékenységsávon. Az Erőforrások területen bontsa ki előfizetését, bontsa ki a Függvényalkalmazást, kattintson a jobb gombbal a létrehozott függvényalkalmazásra, és válassza a Megnyitás a portálon lehetőséget.
A bal oldali menü Függvények területén válassza az Alkalmazáskulcsok lehetőséget.
A Rendszerkulcsok csoportban válassza ki a blobs_extension nevű kulcsot, és másolja ki a kulcs értékét.
Ezt az értéket az új végpont URL-címének lekérdezési sztringjében fogja szerepeltetni.
A végpont URL-címének létrehozása
Hozzon létre egy új végpont URL-címet a Blob Storage-eseményindítóhoz az alábbi példa alapján:
https://<FUNCTION_APP_NAME>.azurewebsites.net/runtime/webhooks/blobs?functionName=Host.Functions.BlobTriggerEventGrid&code=<BLOB_EXTENSION_KEY>
https://<FUNCTION_APP_NAME>.azurewebsites.net/runtime/webhooks/blobs?functionName=Host.Functions.BlobTriggerEventGrid&code=<BLOB_EXTENSION_KEY>
Ebben a példában cserélje le <FUNCTION_APP_NAME>
a függvényalkalmazás nevére, és cserélje le <BLOB_EXTENSION_KEY>
a portálról kapott értékre. Ha más nevet használt a függvényhez, szükség szerint módosítania kell a lekérdezési sztringet functionName
is.
Szűrt esemény-előfizetés létrehozása
Mivel egy esemény-előfizetés végponti URL-címe nem módosítható, új esemény-előfizetést kell létrehoznia. A régi esemény-előfizetést is törölnie kell, mivel az nem használható újra.
Ezúttal a szűrőt is belefoglalja az esemény-előfizetésbe, hogy csak JPEG-fájlok (*.jpg) aktiválják a függvényt.
A Visual Studio Code-ban válassza az Azure ikont a Tevékenységsávon. Az Erőforrások területen bontsa ki előfizetését, bontsa ki a Tárfiókokat, kattintson a jobb gombbal a korábban létrehozott tárfiókra, és válassza a Megnyitás a portálon lehetőséget.
Az Azure Portalon válassza az Események lehetőséget a bal oldali menüből.
Az Események ablakban válassza ki a régi ngrok-alapú esemény-előfizetést, és válassza a Mentés törlése>lehetőséget. Ez a művelet eltávolítja a régi esemény-előfizetést.
Válassza az + Esemény-előfizetés gombot, és adja meg az alábbi táblázat értékeit az Alapszintű lapra:
Beállítás Ajánlott érték Leírás Név myBlobAzureEventSub Az esemény-előfizetést azonosító név. A névvel gyorsan megtalálhatja az esemény-előfizetést. Eseményséma Event Grid-séma Használja az alapértelmezett sémát az eseményekhez. Szűrés eseménytípusokra Blob létrehozva Végpont típusa Webes horog A Blob Storage-eseményindító webhookvégpontot használ. Az Azure Functionst egy Event Grid-eseményindítóhoz használná. Végpont Az új Azure-alapú URL-végpont Használja a létrehozott URL-végpontot, amely tartalmazza a kulcs értékét. Válassza a Kijelölés megerősítése lehetőséget a végpont URL-címének érvényesítéséhez.
Válassza a Szűrők fület, a Tárgyszűrők csoportban jelölje be a Tárgyszűrés engedélyezése jelölőnégyzetet, írja be
.jpg
a Tárgy vége mezőbe. Ez csak JPEG-fájlokra szűri az eseményeket.Válassza a Létrehozás lehetőséget az esemény-előfizetés létrehozásához.
A függvény ellenőrzése az Azure-ban
Mivel a teljes topológia most már az Azure-t futtatja, ideje ellenőrizni, hogy minden megfelelően működik-e. Mivel már a portálon van, a legegyszerűbb, ha egyszerűen feltölt egy fájlt onnan.
A tárfiók portálján válassza a Tárolók lehetőséget, és válassza ki a samples-workitems tárolót .
A Feltöltés gombra kattintva nyissa meg a feltöltési lapot a jobb oldalon, tallózással keresse meg a helyi fájlrendszerben a
.jpg
feltöltendő fájlt, majd a Feltöltés gombra kattintva töltse fel a blobot. Most ellenőrizheti, hogy a függvény a tárolófeltöltési esemény alapján futott-e.A tárfiókban térjen vissza az Események lapra, válassza az Esemény-előfizetések lehetőséget, és látnia kell, hogy egy esemény kézbesítve lett.
A függvényalkalmazás portálon, a Függvények listában válassza ki a függvényt, és legalább egy teljes végrehajtási számot kell látnia.
A Fejlesztőeszközök területen válassza a Monitorozás lehetőséget, és látnia kell a sikeres függvényvégrehajtásokból írt nyomkövetéseket. Akár öt perces késés is előfordulhat, mivel az eseményeket az alkalmazás Elemzések dolgozza fel.
Az erőforrások eltávolítása
Ha folytatja a következő lépést , és hozzáad egy Azure Storage-üzenetsor-kötést a függvényhez, az összes erőforrást helyben kell tartania ahhoz, hogy a már elvégzett adatokra építkezhessenek.
Ellenkező esetben az alábbi lépésekkel törölheti a függvényalkalmazást és annak kapcsolódó erőforrásait, hogy elkerülje a további költségek felmerülését.
A Visual Studio Code-ban nyomja le az F1 billentyűt a parancskatalógus megnyitásához. A parancskatalógusban keresse meg és válassza ki a kívánt parancsot
Azure: Open in portal
.Válassza ki a függvényalkalmazást, és nyomja le az Enter billentyűt. Megnyílik a függvényalkalmazás lapja az Azure Portalon.
Az Áttekintés lapon válassza az Erőforráscsoport melletti elnevezett hivatkozást.
Az Erőforráscsoport lapon tekintse át a belefoglalt erőforrások listáját, és ellenőrizze, hogy ezek-e törölni kívánt erőforrások.
Válassza az Erőforráscsoport törlése elemet, majd kövesse az utasításokat.
A törlés eltarthat néhány percig. Amint a művelet befejeződött, néhány másodpercre egy értesítés jelenik meg. Az értesítést úgy is megtekintheti, ha kiválasztja a harang ikont az oldal tetején.
A Functions-költségekkel kapcsolatos további információkért tekintse meg a használati terv költségeinek becslését.