Kiszolgáló nélküli TypeScript API: Adatok tárolása MongoDB-ben az Azure Functions használatával

Hozzon létre egy Azure Function API-t az adatok Mongoose API-val való tárolásához az Azure Cosmos DB-ben, majd helyezze üzembe a függvényalkalmazást az Azure-felhőben egy nyilvános HTTP-végponttal való üzemeltetéshez.

Flow chart showing path of HTTP request to pass data through Azure Functions and store in Azure Cosmos DB.

A fejlesztőkörnyezet előkészítése

Telepítse a következő szoftvert:

1. Bejelentkezés az Azure-ba a Visual Studio Code-ban

Ha már használja az Azure-szolgáltatásbővítményeket, akkor már be kell jelentkeznie, és kihagyhatja ezt a lépést.

Miután telepített egy Azure-szolgáltatásbővítményt a Visual Studio Code-ban, be kell jelentkeznie az Azure-fiókjába.

  1. A Visual Studio Code-ban nyissa meg az Azure Explorert az elsődleges oldalsávOn található Azure-ikon kiválasztásával, vagy használja a billentyűparancsot (Shift + Alt + A).

  2. Az Erőforrások szakaszban válassza a Bejelentkezés az Azure-ba lehetőséget, és kövesse az utasításokat.

    Sign in to Azure through VS Code

  3. Bejelentkezés után ellenőrizze, hogy az Azure-fiók e-mail-címe megjelenik-e az állapotsoron, és hogy az előfizetés(ek) megjelennek-e az Azure Explorerben :

    VS Code Azure explorer showing subscriptions

2. Azure-erőforráscsoport létrehozása

Az erőforráscsoportok az erőforrások régióalapú gyűjteményei. Ha létrehoz egy erőforráscsoportot, majd abban a csoportban hoz létre erőforrásokat, az oktatóanyag végén anélkül törölheti az erőforráscsoportot, hogy egyenként kellene törölnie az egyes erőforrásokat.

  1. Hozzon létre egy új mappát a helyi rendszeren, amelyet az Azure Functions-projekt gyökereként használhat.

  2. Nyissa meg ezt a mappát a Visual Studio Code-ban.

  3. A Visual Studio Code-ban nyissa meg az Azure Explorert az elsődleges oldalsávOn található Azure-ikon kiválasztásával, vagy használja a billentyűparancsot (Shift + Alt + A).

  4. Keresse meg előfizetését az Erőforrások területen, és válassza az ikont, majd válassza az + Erőforráscsoport létrehozása lehetőséget.

  5. A következő táblázat segítségével fejezze be az utasításokat:

    Adatkérés Érték
    Adja meg az új erőforráscsoport nevét. azure-tutorial
    Válassza ki az új erőforrások helyét. Válasszon ki egy Önhöz közeli földrajzi régiót.

3. A helyi Functions-alkalmazás létrehozása

Hozzon létre egy helyi (kiszolgáló nélküli) Azure Functions-alkalmazást, amely egy HTTP-triggerfüggvényt tartalmaz.

  1. A Visual Studio Code-ban nyissa meg a parancspalettát (Ctrl + Shift + P).

  2. Keresse meg és válassza ki az Azure Functions: Create New Project (Új projekt létrehozása) lehetőséget.

  3. A helyi Azure-függvényprojekt létrehozásának befejezéséhez használja az alábbi táblázatot:

    Adatkérés Érték Jegyzetek
    Válassza ki a függvényprojektet tartalmazó mappát Válassza ki az aktuális (alapértelmezett) mappát.
    Válasszon nyelvet TypeScript
    TypeScript programozási modell kiválasztása V4-modell (előzetes verzió)
    Sablon kiválasztása a projekt első függvényéhez HTTP-eseményindító Az API-t HTTP-kéréssel hívjuk meg.
    Függvénynév megadása blogposts Az API-útvonal /api/blogposts
  4. Amikor a Visual Studio Code létrehozza a projektet, tekintse meg az API-kódját a ./src/functions/blogposts.ts fájlban.

    import { app, HttpRequest, HttpResponseInit, InvocationContext } from "@azure/functions";
    
    export async function blogposts(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
        context.log(`Http function processed request for url "${request.url}"`);
    
        const name = request.query.get('name') || await request.text() || 'world';
    
        return { body: `Hello, ${name}!` };
    };
    
    app.http('blogposts', {
        methods: ['GET', 'POST'],
        authLevel: 'anonymous',
        handler: blogposts
    });
    

    Ez a kód az új v4-programozási modell standard sablonja. Nem azt jelenti, hogy csak a POST és a GET használatával lehet API-réteget írni.

  5. Cserélje le az előző kódot a következő kódra, hogy csak a GET-kérések küldhessenek vissza minden blogbejegyzést.

    import { app, HttpRequest, HttpResponseInit, InvocationContext } from "@azure/functions";
    
    // curl --location 'http://localhost:7071/api/blogposts' --verbose
    export async function getBlogPosts(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
        context.log(`Http function getBlogPosts processed request for url "${request.url}"`);
    
        // Empty array for now ... will fix later
        const blogposts = [];
    
        return {
            status: 200,
            jsonBody: {
                blogposts
            }
        };
    };
    
    app.get('getBlogPosts', {
        route: "blogposts",
        authLevel: 'anonymous',
        handler: getBlogPosts
    });
    

    A kódban több Azure Functions Node.js v4 programozási modell is módosul :

    • A függvény neve getBlobPosts, amely azt jelzi, hogy get kérés, segít elkülöníteni a függvényt a naplókban.
    • A route tulajdonság értéke blogpostsa megadott /api/blogpostsalapértelmezett API-útvonal része.
    • A methods tulajdonság el lett távolítva, és szükségtelen, mert az app objektum használata get azt jelzi, hogy ez egy GET kérés. A metódusfüggvények az alábbiakban láthatók. Ha más metódussal rendelkezik, visszatérhet a methods tulajdonság használatára.
      • deleteRequest()
      • get()
      • patch()
      • post()
      • put()

4. Az Azurite helyi tárolóemulátor indítása

A helyi számítógépen lévő funkciók fejlesztéséhez egy (ingyenes) Storage-emulátorra vagy egy (fizetős) Azure Storage-fiókra van szükség.

Egy külön terminálban indítsa el az Azurite helyi tárolóemulátort.

azurite --silent --location ./azurite --debug ./azurite/debug.log

Ez szükséges az Azure Functions helyi futtatásához egy helyi Azure Storage-emulátor használatával. A helyi tárolóemulátor az local.settings.json AzureWebJobsStorage tulajdonsággal rendelkező UseDevelopmentStorage=truefájlban van megadva.

{
    "IsEncrypted": false,
    "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "node",
    "AzureWebJobsFeatureFlags": "EnableWorkerIndexing"
    }
}

Az azurite almappát már hozzáadta a .gitignore fájlhoz.

5. A helyi kiszolgáló nélküli függvény futtatása

Az Azure Functions-projektet helyileg futtatva tesztelheti, mielőtt üzembe helyezené az Azure-ban.

  1. A Visual Studio Code-ban állítson be egy töréspontot az return utasításra a GetBlogPosts függvény végén.

  2. A Visual Studio Code-ban nyomja le az F5 billentyűt a hibakereső elindításához és az Azure Functions-gazdagéphez való csatoláshoz.

    Használhatja a Hibakeresés>indítása hibakeresés parancsot is.

  3. A kimenet megjelenik a Terminál panelen.

  4. A Visual Studio Code-ban nyissa meg az Azure Explorert az elsődleges oldalsávOn található Azure-ikon kiválasztásával, vagy használja a billentyűparancsot (Shift + Alt + A).

  5. A Munkaterület szakaszban keresse meg és bontsa ki a Helyi projekt -Functions ->>getBlogPosts lehetőséget.

  6. Kattintson a jobb gombbal a függvény nevére, kérje le aBlogPosts parancsot, majd válassza a Függvény URL-címének másolása lehetőséget.

    Partial screenshot of Visual Studio Code, with the Azure Function's button named Copy Function URL highlighted.

  7. A böngészőben illessze be az URL-címet, és válassza az Enter vagy a következő cURL parancsot a terminálban:

    curl http://localhost:7071/api/blogposts --verbose
    

    A blogbejegyzések üres tömbjének válasza a következő:

    *   Trying 127.0.0.1:7071...
    * Connected to localhost (127.0.0.1) port 7071 (#0)
    > GET /api/blogposts HTTP/1.1
    > Host: localhost:7071
    > User-Agent: curl/7.88.1
    > Accept: */*
    >
    < HTTP/1.1 200 OK
    < Content-Type: application/json
    < Date: Mon, 08 May 2023 17:35:24 GMT
    < Server: Kestrel
    < Transfer-Encoding: chunked
    <
    {"blogposts":[]}* Connection #0 to host localhost left intact
    
  8. A VS Code-ban állítsa le a Shift + F5 hibakeresőt.

6. Az Azure-függvényalkalmazás létrehozása a Visual Studio Code-ban

Ebben a szakaszban egy függvényalkalmazás felhőerőforrását és kapcsolódó erőforrásait hozza létre az Azure-előfizetésében.

  1. A Visual Studio Code-ban nyissa meg a parancspalettát (Ctrl + Shift + P).

  2. Keresse meg és válassza ki az Azure Functions: Függvényalkalmazás létrehozása az Azure-ban (Speciális) lehetőséget.

  3. Amikor a rendszer kéri, adja meg az alábbi információkat:

    Adatkérés Kiválasztás
    Adja meg a függvényalkalmazás globálisan egyedi nevét Írjon be egy URL-elérési úton érvényes nevet, például first-function. Az URL-cím globálisan egyedivé tétele 3 karakter után. A beírt név ellenőrzése ellenőrzi, hogy egyedi-e az Azure Functionsben.
    Futtatókörnyezeti verem kiválasztása Válassza a Node.js 18 LTS vagy egy újabb verziót.
    Operációs rendszer kiválasztása Válassza a Linuxot.
    Erőforráscsoport kiválasztása új erőforrásokhoz Hozzon létre egy azure-tutorial-first-function nevű új erőforráscsoportot. Ez az erőforráscsoport végül több erőforrással is rendelkezik: Az Azure Function, az Azure Storage és a Cosmos DB for MongoDB API.
    Üzemeltetési csomag kiválasztása Válassza a Felhasználás lehetőséget.
    Tárfiók kiválasztása Válassza az Új tárfiók létrehozása lehetőséget, és fogadja el az alapértelmezett nevet.
    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 fogadja el az alapértelmezett nevet.

    Várjon, amíg az értesítés megerősíti, hogy az alkalmazás létrejött.

7. Az Azure-függvényalkalmazás üzembe helyezése az Azure-ban a Visual Studio Code-ban

Fontos

A meglévő függvényalkalmazásban való üzembe helyezés mindig felülírja az alkalmazás tartalmát az Azure-ban.

  1. Válassza az Azure ikont a Tevékenységsávon, majd az Erőforrások területen kattintson a jobb gombbal a függvényalkalmazás erőforrására, és válassza az Üzembe helyezés függvényalkalmazásban lehetőséget.
  2. Ha a rendszer megkérdezi, hogy biztosan telepíteni szeretné-e, válassza az Üzembe helyezés lehetőséget.
  3. Az üzembe helyezés befejezése után egy értesítés több beállítással is megjelenik. Az eredmények megtekintéséhez válassza a Kimenet megtekintése lehetőséget. Ha nem jelenik meg az értesítés, a jobb alsó sarokban lévő harang ikont választva ismét láthatja.

8. Alkalmazásbeállítás hozzáadása a felhőalkalmazáshoz

  1. Válassza az Azure ikont a Tevékenységsávon, majd az Erőforrások területen bontsa ki a függvényalkalmazás erőforrását, és kattintson a jobb gombbal az Alkalmazás Gépház elemre.

  2. Válassza az Új beállítás hozzáadása lehetőséget, és adja hozzá a következő beállítást a Node.js v4 (előzetes verzió) programozási modell engedélyezéséhez.

    Setting Érték
    AzureWebJobsFeatureFlags EnableWorkerIndexing

9. Futtassa a távoli kiszolgáló nélküli függvényt

  1. A Visual Studio Code-ban nyissa meg az Azure Explorert az elsődleges oldalsávOn található Azure-ikon kiválasztásával, vagy használja a billentyűparancsot (Shift + Alt + A).

  2. Az Erőforrások szakaszban bontsa ki az Azure-függvényalkalmazás erőforrását. Kattintson a jobb gombbal a függvény nevére, és válassza a Függvény URL-címének másolása parancsot.

  3. Illessze be az URL-címet egy böngészőbe. Ugyanaz az üres tömb lesz visszaadva, mint amikor a függvényt helyileg futtatta.

    {"blogposts":[]}
    

10. Azure Cosmos DB hozzáadása MongoDB API-integrációhoz

Az Azure Cosmos DB mongoDB API-t biztosít egy ismerős integrációs pont biztosításához.

  1. A Visual Studio Code-ban nyissa meg az Azure Explorert az elsődleges oldalsávOn található Azure-ikon kiválasztásával, vagy használja a billentyűparancsot (Shift + Alt + A).

  2. Az Erőforrások szakaszban válassza az +Adatbázis-kiszolgáló létrehozása lehetőséget. Az alábbi táblázat segítségével fejezze be az új Azure Cosmos DB-erőforrás létrehozására vonatkozó utasításokat.

    Adatkérés Érték Jegyzetek
    Azure Database Server kiválasztása MongoDB-hez készült Azure Cosmos DB API
    Adjon meg egy Azure Cosmos DB-fióknevet. cosmosdb-mongodb-database Adjon meg három karaktert egyedi név létrehozásához. A név az API URL-címének részévé válik.
    Válasszon ki egy kapacitásmodellt. Kiszolgáló nélküli
    Válasszon egy erőforráscsoportot az új erőforrásokhoz. azure-tutorial-first-function Válassza ki az előző szakaszban létrehozott erőforráscsoportot.
    Válasszon egy helyet az új erőforrásokhoz. Válassza ki a javasolt régiót.

11. Mongoose-függőség telepítése

Egy Visual Studio Code-terminálban a Ctrl Shift billentyűkombinációval` + + telepítse az npm-csomagot:

npm install mongoose

12. Mongoose-kód hozzáadása blogbejegyzésekhez

  1. A Visual Studio Code-ban hozzon létre egy lib./src/nevű alkönyvtárat, hozzon létre egy nevű ./database.ts fájlt, és másolja be a következő kódot.

    import { Schema, Document, createConnection, ConnectOptions, model, set } from 'mongoose';
    
    const connectionString = process.env.MONGODB_URI;
    console.log('connectionString', connectionString);
    
    const connection = createConnection(connectionString, {
      useNewUrlParser: true,
      useUnifiedTopology: true,
      autoIndex: true
    } as ConnectOptions);
    
    export interface IBlogPost {
      author: string
      title: string
      body: string
    }
    
    export interface IBlogPostDocument extends IBlogPost, Document {
      id: string
      created: Date
    }
    
    const BlogPostSchema = new Schema({
      id: Schema.Types.ObjectId,
      author: String,
      title: String,
      body: String,
      created: {
        type: Date,
        default: Date.now
      }
    });
    
    BlogPostSchema.set('toJSON', {
      transform: function (doc, ret, options) {
          ret.id = ret._id;
          delete ret._id;
          delete ret.__v;
      }
    }); 
    
    export const BlogPost = model<IBlogPostDocument>('BlogPost', BlogPostSchema);
    
    connection.model('BlogPost', BlogPostSchema);
    
    export default connection;
    
  2. A Visual Studio Code-ban nyissa meg a ./src/functions/blogposts fájlt, és cserélje le a teljes fájl kódját a következőre:

    import { app, HttpRequest, HttpResponseInit, InvocationContext } from "@azure/functions";
    import connection from '../lib/database';
    
    // curl --location 'http://localhost:7071/api/blogposts' --verbose
    export async function getBlogPosts(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
        context.log(`Http function getBlogPosts processed request for url "${request.url}"`);
    
        const blogposts = await connection.model('BlogPost').find({});
    
        return {
            status: 200,
            jsonBody: {
                blogposts
            }
        };
    };
    
    app.get('getBlogPosts', {
        route: "blogposts",
        authLevel: 'anonymous',
        handler: getBlogPosts
    });
    

13. Kapcsolati sztring hozzáadása a helyi alkalmazáshoz

  1. A Visual Studio Code Azure Explorerében válassza ki az Azure Cosmos DB szakaszt, és bontsa ki a jobb gombbal az új erőforrás kiválasztásához.

  2. Válassza a Másolás kapcsolati sztring lehetőséget.

  3. A Visual Studio Code-ban nyissa meg ./local.settings.jsona Fájlkezelőt.

  4. Adjon hozzá egy új, hívott MONGODB_URI tulajdonságot, és illessze be a kapcsolati sztring értékét.

    {
      "IsEncrypted": false,
      "Values": {
        "AzureWebJobsStorage": "",
        "FUNCTIONS_WORKER_RUNTIME": "node",
        "AzureWebJobsFeatureFlags": "EnableWorkerIndexing",
        "MONGODB_URI": "mongodb://...."
      }
    }
    

    A fájl titkos kódjai ./local.settings.json :

    • Nincs üzembe helyezve az Azure-ban, mert benne van a ./.funcignore fájlban.
    • Nincs beadva a forrásvezérlőbe, mert az szerepel a ./.gitignore fájlban.
  5. Futtassa az alkalmazást helyileg, és tesztelje az API-t ugyanazzal az URL-címmel az előző szakaszban.

14. Kapcsolati sztring hozzáadása távoli alkalmazáshoz

  1. A Visual Studio Code-ban nyissa meg az Azure Explorert az elsődleges oldalsávOn található Azure-ikon kiválasztásával, vagy használja a billentyűparancsot (Shift + Alt + A).
  2. Az Erőforrások szakaszban keresse meg az Azure Cosmos DB-példányt. Kattintson a jobb gombbal az erőforrásra, és válassza a Csatlakozás ion-sztring másolása lehetőséget.
  3. Ugyanebben az Erőforrások szakaszban keresse meg a függvényalkalmazást, és bontsa ki a csomópontot.
  4. Kattintson a jobb gombbal az Alkalmazás Gépház elemre, és válassza az Új beállítás hozzáadása lehetőséget.
  5. Adja meg az alkalmazásbeállítás nevét, MONGODB_URI és válassza az Enter lehetőséget.
  6. Illessze be a másolt értéket, és nyomja le az Enter billentyűt.

15. Api-k hozzáadása blogbejegyzések létrehozásához, frissítéséhez és törléséhez

  1. A Visual Studio Code-ban a parancskatalógus használatával keresse meg és válassza ki az Azure Functions: Függvény létrehozása lehetőséget.

  2. Válassza ki a HTTP-eseményindítót , és nevezze el blogpost (egyedi).

  3. Másolja a következő kódot a fájlba.

    import { app, HttpRequest, HttpResponseInit, InvocationContext } from "@azure/functions";
    import connection, { IBlogPost, IBlogPostDocument }  from '../lib/database';
    
    // curl -X POST --location 'http://localhost:7071/api/blogpost' --header 'Content-Type: application/json' --data '{"author":"john","title":"my first post", "body":"learn serverless node.js"}' --verbose
    export async function addBlogPost(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
        context.log(`Http function addBlogPost processed request for url "${request.url}"`);
    
        const body = await request.json() as IBlogPost;
    
        const blogPostResult = await connection.model('BlogPost').create({
            author: body?.author,
            title: body?.title,
            body: body?.body
        });
    
        return {
            status: 200,
            jsonBody: {
                blogPostResult
            }
        };
    };
    
    // curl -X PUT --location 'http://localhost:7071/api/blogpost/64568e727f7d11e09eab473c' --header 'Content-Type: application/json' --data '{"author":"john jones","title":"my first serverless post", "body":"Learn serverless Node.js with Azure Functions"}' --verbose
    export async function updateBlogPost(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
        context.log(`Http function updateBlogPost processed request for url "${request.url}"`);
    
        const body = await request.json() as IBlogPost;
        const id = request.params.id;
    
        const blogPostResult = await connection.model('BlogPost').updateOne({ _id: id }, {
            author: body?.author,
            title: body?.title,
            body: body?.body
        });
    
        if(blogPostResult.matchedCount === 0) {
            return {
                status: 404,
                jsonBody: {
                    message: 'Blog post not found'
                }
            };
        }
    
        return {
            status: 200,
            jsonBody: {
                blogPostResult
            }
        };
    };
    
    // curl --location 'http://localhost:7071/api/blogpost/6456597918547e37d515bda3' --verbose
    export async function getBlogPost(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
        context.log(`Http function getBlogPosts processed request for url "${request.url}"`);
    
        console.log('request.params.id', request.params.id)
        const id = request.params.id;
    
        const blogPost = await connection.model('BlogPost').findOne({ _id: id });
    
        if(!blogPost) {
            return {
                status: 404,
                jsonBody: {
                    message: 'Blog post not found'
                }
            };
        }
    
        return {
            status: 200,
            jsonBody: {
                blogPost
            }
        };
    };
    
    // curl --location 'http://localhost:7071/api/blogpost/6456597918547e37d515bda3' --request DELETE --header 'Content-Type: application/json' --verbose
    export async function deleteBlogPost(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
        context.log(`Http function deleteBlogPost processed request for url "${request.url}"`);
    
        const id = request.params.id;
    
        const blogPostResult = await connection.model('BlogPost').deleteOne({ _id: id });
    
        if(blogPostResult.deletedCount === 0) {
            return {
                status: 404,
                jsonBody: {
                    message: 'Blog post not found'
                }
            };
        }
    
        return {
            status: 200,
            jsonBody: {
                blogPostResult
            }
        };
    };
    
    app.get('getBlogPost', {
        route: "blogpost/{id}",
        authLevel: 'anonymous',
        handler: getBlogPost
    });
    
    app.post('postBlogPost', {
        route: "blogpost",
        authLevel: 'anonymous',
        handler: addBlogPost
    });
    
    app.put('putBlogPost', {
        route: "blogpost/{id}",
        authLevel: 'anonymous',
        handler: updateBlogPost
    });
    
    app.deleteRequest('deleteBlogPost', {
        route: "blogpost/{id}",
        authLevel: 'anonymous',
        handler: deleteBlogPost
    });
    
  4. Indítsa el újra a helyi függvényt a hibakeresővel. A következő API-k érhetők el:

    deleteBlogPost: [DELETE] http://localhost:7071/api/blogpost/{id}
    getBlogPost: [GET] http://localhost:7071/api/blogpost/{id}
    getBlogPosts: [GET] http://localhost:7071/api/blogposts
    postBlogPost: [POST] http://localhost:7071/api/blogpost
    putBlogPost: [PUT] http://localhost:7071/api/blogpost/{id}
    
  5. Néhány blogbejegyzés hozzáadásához használja a blogpost cURL-parancsból származó (egyedi) API-t.

    curl -X POST --location 'http://localhost:7071/api/blogpost' --header 'Content-Type: application/json' --data '{"author":"john","title":"my first post", "body":"learn serverless node.js"}' --verbose
    
  6. A blogbejegyzések lekéréséhez használja a blogposts (többes szám) API-t egy cURL-parancsból.

    curl http://localhost:7071/api/blogposts --verbose
    

16. Az összes adat megtekintése az Azure Cosmos DB Visual Studio Code-bővítményével

  1. A Visual Studio Code-ban nyissa meg az Azure Explorert az elsődleges oldalsávOn található Azure-ikon kiválasztásával, vagy használja a billentyűparancsot (Shift + Alt + A).

  2. Az Erőforrások szakaszban kattintson a jobb gombbal az Azure Cosmos DB-adatbázisra, és válassza a Frissítés lehetőséget.

  3. Bontsa ki a tesztadatbázis és a blogposts gyűjtemény csomópontját a dokumentumok megtekintéséhez.

  4. Válassza ki a felsorolt elemek egyikét az Azure Cosmos DB-példány adatainak megtekintéséhez.

    Partial screenshot of Visual Studio Code, showing the Azure explorer with the Databases with a selected item displayed in the reading pane.

17. A függvényalkalmazás ismételt üzembe helyezése adatbáziskód belefoglalásához

  1. A Visual Studio Code-ban nyissa meg az Azure Explorert az elsődleges oldalsávOn található Azure-ikon kiválasztásával, vagy használja a billentyűparancsot (Shift + Alt + A).
  2. Az Erőforrások szakaszban kattintson a jobb gombbal az Azure-függvényalkalmazásra, és válassza az Üzembe helyezés függvényalkalmazásban lehetőséget.
  3. Az előugró ablakban, amely megkérdezi, hogy biztosan üzembe kívánja-e helyezni, válassza az Üzembe helyezés lehetőséget.
  4. A folytatás előtt várjon, amíg az üzembe helyezés befejeződik.

18. Felhőalapú Azure-függvény használata

  1. Az Azure Explorer Függvények területén továbbra is kiválasztja és kibontja a függvényt, majd a Functions csomópontot, amely felsorolja az API-kat
  2. Kattintson a jobb gombbal az egyik API-ra, és válassza a Függvény URL-címének másolása lehetőséget.
  3. Szerkessze az előző cURL-parancsokat, hogy a távoli URL-címet használja a helyi URL-cím helyett. Futtassa a parancsokat a távoli API teszteléséhez.

19. Azure-függvénynaplók lekérdezése

A naplók kereséséhez használja az Azure Portalt.

  1. A Visual Studio Code-ban válassza az Azure Explorert, majd a Függvények területen kattintson a jobb gombbal a függvényalkalmazásra, majd válassza a Megnyitás a portálon lehetőséget.

    Ezzel megnyitja az Azure Portalt az Azure-függvényhez.

  2. A Gépház válassza az Alkalmazás Elemzések, majd az Alkalmazás megtekintése Elemzések lehetőséget.

    Browser screenshot showing menu choices. Select **Application Insights** from the Settings, then select **View Application Insights data**.

    Ez a hivatkozás az Azure-függvény Visual Studio Code-tal való létrehozásakor létrehozott különálló metrikák erőforrására vezet.

  3. A Figyelés szakaszban válassza a Naplók lehetőséget. Ha megjelenik egy Lekérdezések előugró ablak, az előugró ablak jobb felső sarkában lévő X elemet választva zárja be.

  4. Az Új lekérdezés 1 panel Táblák lapján kattintson duplán a nyomkövetési táblára.

    Ez beírja a Kusto-lekérdezésttraces a lekérdezési ablakba.

  5. Szerkessze a lekérdezést az egyéni naplók kereséséhez:

    traces 
    | where message startswith "***"
    
  6. Válassza a Futtatás lehetőséget.

    Ha a napló nem jelenít meg semmilyen eredményt, annak az lehet az oka, hogy néhány perces késés van az Azure-függvénynek küldött HTTP-kérés és a Napló rendelkezésre állása között a Kusto-ban. Várjon néhány percet, és futtassa újra a lekérdezést.

    A naplózási adatok beszerzéséhez nem kellett semmit sem tennie:

    • A kód a context.log függvény-keretrendszer által biztosított függvényt használta. contextA naplózás ahelyettconsole, hogy az adott függvényre szűrhető. Ez akkor hasznos, ha a függvényalkalmazás számos függvényt is biztosít.
    • A függvényalkalmazás alkalmazás-Elemzések hozzáadott Önnek.
    • A Kusto Query eszközt az Azure Portal tartalmazza.
    • traces Választhatja ahelyett, hogy meg kellene tanulnia Kusto-lekérdezést írni, hogy még a minimális információkat is lekérje a naplókból.

20. Erőforrások megtisztítása

Mivel egyetlen erőforráscsoportot használt, az erőforráscsoport törlésével törölheti az összes erőforrást.

  1. A Visual Studio Code-ban nyissa meg az Azure Explorert az elsődleges oldalsávOn található Azure-ikon kiválasztásával, vagy használja a billentyűparancsot (Shift + Alt + A).
  2. Keresse meg és válassza ki az Azure-t: Csoportosítás erőforráscsoport szerint.
  3. Kattintson a jobb gombbal az erőforráscsoportra, és válassza az Erőforráscsoport törlése parancsot.
  4. Adja meg az erőforráscsoport nevét a törlés megerősítéséhez.

Elérhető forráskód

Az Azure-függvényalkalmazás teljes forráskódja:

További lépések