Gyakorlat – Üzenetsor kezelése
Ebben a gyakorlatban egy olyan útvonallal bővíti az alkalmazást, amely egy üzenetsor üzeneteiben aktiválható.
Feljegyzés
A gyakorlat megkezdése előtt győződjön meg arról, hogy letöltötte az Azurite-bővítményt, letöltötte az Azure Storage Explorert és letöltötte az Azure Functions Core Toolst.
Az alkalmazás állványzata
Ebben a gyakorlatban egy új Azure Functions-alkalmazással kezdjük. Hozzon létre egy új könyvtárat, és helyezze bele magát.
Válassza a Megtekintés>Parancskatalógus lehetőséget.
Válassza az Azure Functions: Új projekt létrehozása lehetőséget.
Jelöljön ki egy mappát, általában az aktuális mappát.
A Nyelv kiválasztása területen válassza az Egyéni kezelő lehetőséget.
Az első függvény sablonjának kiválasztása területen válassza a HttpTrigger lehetőséget.
Adjon nevet az alkalmazásnak, például queueTrigger.
Válassza ki a névtelen engedélyezési szintet. Ezt később módosíthatja, ha szeretné.
A gyökérkönyvtárban hozzon létre egy fájlt server.go néven. A projektnek most a következő fájlokkal kell rendelkeznie:
queueTrigger/ function.json .funcignore .gitignore host.json local.settings.json proxies.json server.goLépjen a könyvtárban található
queueTriggerfájlhoz. Keresse meg az első kötési bejegyzést aztypeelemben:{ "authLevel": "anonymous", "type": "httpTrigger", "direction": "in", "name": "req", "methods": [ "get", "post" ] }Módosítsa ezt a kötési bejegyzést erre a konfigurációra:
{ "name": "queueItem", "type": "queueTrigger", "direction": "in", "queueName" : "items", "connection": "AzureWebJobsStorage" }Ebben a lépésben beállítja a tulajdonságot
name. Később a kódban fog hivatkozni rá. Az eseményindító típusátqueueTriggeris módosította, ami lehetővé teszi az üzenetsor-üzenetek meghallgatását.Az
queueNameérték egy adott üzenetsorra mutat. Az emulátor későbbi futtatásakor létre fog hozni egy ilyen nevű üzenetsort.Végül egy olyan változóra mutatott rá a local.settings.json, amely tartalmazni fogja a sorhoz kapcsolati sztringet.
Az alkalmazás létrehozása
Ezen a ponton van egy alkalmazásváz. Most már készen áll a bejövő üzenetsor-üzenetek kezelésére képes kód hozzáadására.
Nyissa meg a server.go fájlt, és adja hozzá a következő kódot:
package main import ( "encoding/json" "fmt" "log" "net/http" "os" ) func queueHandler(w http.ResponseWriter, r *http.Request) { } func main() { customHandlerPort, exists := os.LookupEnv("FUNCTIONS_CUSTOMHANDLER_PORT") if !exists { customHandlerPort = "8080" } mux := http.NewServeMux() mux.HandleFunc("/queueTrigger", queueHandler) fmt.Println("Go server Listening on: ", customHandlerPort) log.Fatal(http.ListenAndServe(":"+customHandlerPort, mux)) }Most már be van állítva egy útvonal a következő helyen
/queueTrigger: .Keresse meg az importálási szakaszt, és adja hozzá a következő szerkezeteket:
type InvokeRequest struct { Data map[string]json.RawMessage Metadata map[string]interface{} }Keresse meg a metódust
queueHandler(), és adja hozzá a következő módon:func queueHandler(w http.ResponseWriter, r *http.Request) { var invokeRequest InvokeRequest d := json.NewDecoder(r.Body) d.Decode(&invokeRequest) var parsedMessage string json.Unmarshal(invokeRequest.Data["queueItem"], &parsedMessage) }A kód először beolvassa a törzset a bejövő válaszfolyamból, és dekódolja azt:
var invokeRequest InvokeRequest d := json.NewDecoder(r.Body) d.Decode(&invokeRequest)Ezután maga az üzenet ki van ásva a következő
Unmarshal()hívással:var parsedMessage string json.Unmarshal(invokeRequest.Data["queueItem"], &parsedMessage)Most, hogy már megvan az üzenet, nyomtassuk ki.
Adja hozzá a következő kódot:
fmt.Println(parsedMessage) // your messageA kód már meg van írva, de konfigurálnia kell a projektet, hogy tesztelhesse.
A host.json fájlban keresse meg az
defaultExecutablePathelemet, és adjon neki értéket./server.Feljegyzés
Windows esetén a következő értéket
.\\server.exehasználná: .Hozza létre a server.go fájlt a projekt gyökérkönyvtárában, úgy, hogy futtatja a
go buildparancsot.go build server.go
A környezet konfigurálása
A következő lépés a környezet konfigurálása. Mivel helyileg fejleszt, be kell állítania, hogy egy emulált üzenetsorhoz tudjon beszélni.
A local.settings.json fájlban keresse meg a
ValueshívottAzureWebJobsStorageelemet (vagy adja hozzá, ha hiányzik). Adja meg az értéketUseDevelopmentStorage=true. A JSON-bejegyzésnek így kell kinéznie:"AzureWebJobsStorage" : "UseDevelopmentStorage=true"Indítsa el az Azurite bővítményt a parancskatalógus megnyitásával (parancskatalógus>), majd válassza az Azurite: Queue Service indítása lehetőséget.
Feljegyzés
Ez a lépés létrehoz néhány helyi fájlt a projektben.
Nyissa meg az Azure Storage Explorert. A bal oldalon az emulátor tartalma látható.
Kattintson a jobb gombbal az Üzenetsorok csomópontra, és válassza ki azt a lehetőséget, amely új üzenetsort hoz létre. Adja meg neki a névelemeket.
Feljegyzés
A várólista nevét a kívántnak nevezheti el. Azonban a function.json fájl konfigurálására készül. Bárhogyan is nevezi el a sort, annak bele kell kerülnie az function.json-ba.
Keresse meg function.json a
queueTriggerkönyvtár alatt. Győződjön meg arról, hogy abindingstömb a következő bejegyzéssel rendelkezik:{ "name": "queueItem", "type": "queueTrigger", "direction": "in", "queueName" : "items", "connection": "AzureWebJobsStorage" }A
queueNametulajdonság neve megegyezik az Azure Storage Explorerben létrehozott üzenetsor nevével. Aconnectiontulajdonság arra az értékre mutat, amelyet a local.settings.json beállítottál.A
nametulajdonság értékequeueItem. A Go-kód ezt az értéket használja az üzenetsor-üzenet elemzéséhez.
Az alkalmazás futtatása
Ezen a ponton minden be van állítva. Mindössze annyit kell tennie, hogy futtatja az alkalmazást, elindítja az Azure Storage Explorert, és létrehoz egy üzenetsor-üzenetet. A kódnak képesnek kell lennie arra, hogy felhasználja ezt az üzenetet.
Egy terminálon futtassa a
func startparancsot a projekt gyökérkönyvtárában:func startA Visual Studio Code-ban nyissa meg a parancskatalógust, és futtassa az Azurite: Queue Service indítása parancsot.
Indítsa el az Azure Storage Explorert, ha még nem indult el.
Az Azure Storage Explorerben válassza az Üzenet hozzáadása lehetőséget:
A megjelenő párbeszédpanelen írja be az üzenetet , és válassza az OK gombot. Ekkor megjelenik a létrehozott üzenet részletei.
A Visual Studio Code-ban a függvénynek most futnia kell. A terminálban most az utolsó sorként kinyomtatott üzenetnek kell megjelennie.
A függvény képes volt felhasználni az üzenetsor-üzenetet, és kiírni annak tartalmát.
Gratulálunk! Létrehozott egy Azure-függvényt a Go-ban, amely aktiválható egy üzenetsoron. Ezt az üzenetet is elemezte.
A bejövő üzenetekkel kapcsolatos teendők önön múlik. Tárolhatja például egy adatbázisban, vagy elküldheti hasznos adatként egy webes kérelemben.