Azure-erőforráscsoportok kezelése a TypeScript függvény API-val
Ebben az oktatóanyagban egy helyi TypeScript Azure-függvényalkalmazást fog létrehozni API-kkal az Azure-erőforráscsoportok kezeléséhez és az alkalmazás Azure-ban való üzembe helyezéséhez.
Funkciók és funkciók:
- Helyi TypeScript Azure-függvényalkalmazás-projekt létrehozása a Visual Studio Code-ban
- Függvény API-sablonkód létrehozása a Visual Studio Code-ban
- Üzembe helyezés az Azure Functionsben a Visual Studio Code-ból
- Egyszerű szolgáltatás létrehozása az Azure parancssori felületével
- Helyi és távoli alkalmazásbeállítások konfigurálása a Visual Studio Code-tal
- A DefaultAzureCredential használata helyi és távoli környezetekben is jelszó nélküli kapcsolatokhoz
- Azure-erőforrások kezelése az Azure Identity és az Azure Resource Management SDK-k használatával
- Erőforráscsoportok létrehozása, törlése és listázása helyi és felhőalapú API-k használatával az előfizetésben
Míg a forráskód TypeScripttel van megírva, a forráskód egyszerű. Ha jól ismeri a modern JavaScriptet az async/await használatával, a kód ismerős lesz.
Meglévő Azure-előfizetés létrehozása vagy használata
Aktív előfizetéssel rendelkező Azure-felhasználói fiókra lesz szüksége. Hozzon létre egyet ingyen.
Előfeltételek
- Node.js LTS 18+ és npm telepítve a helyi gépre. A Node.js helyi fejlesztési környezetének egyeznie kell az Azure Functions felhőbeli futtatókörnyezetének egyik elérhető verziójával.
- A Visual Studio Code telepítve van a helyi gépre.
- Az Azure Functions 1.10.4-s vagy újabb verziója.
- Azure Functions Core Tools 4.0.5095-ös vagy újabb verzió
- A helyi gépre telepített Azure Cloud Shell vagy Azure CLI .
Alkalmazásarchitektúra
Az alkalmazás a következő API-végpontokat biztosítja.
Metódus | URL-cím | Leírás |
---|---|---|
POST,DELETE | http://localhost:7071/api/resourcegroup | Erőforráscsoport hozzáadása vagy törlése. Hozzáadáskor adjon hozzá címkéket (kulcs/érték párok) a csoport céljának későbbi azonosításához. |
KAP | http://localhost:7071/api/resourcegroups | Az előfizetésben lévő összes erőforráscsoport listázása. |
KAP | http://localhost:7071/api/resources | Az előfizetésben vagy erőforráscsoportban lévő összes erőforrás listázása. |
Bár ezek a végpontok nyilvánosak, az élő környezetben való üzembe helyezés előtt hitelesítéssel és engedélyezéssel kell biztosítania az API-végpontokat.
Ez az alkalmazás előfizetésre korlátozódik, mert ez a szolgáltatásnév létrehozásakor megadott hatókör.
1. A környezet előkészítése
Elő kell készítenie a helyi és a felhőbeli környezeteket az Azure Identity SDK használatára.
Bejelentkezés az Azure CLI-be
Bash-terminálban jelentkezzen be az Azure CLI-be a következő paranccsal:
az login
Az Azure-előfizetés azonosítóinak lekérése
Egy bash-terminálban kérje le az előfizetéseit, és keresse meg a használni kívánt előfizetés-azonosítót. Az alábbi lekérdezés az előfizetés azonosítóját, az előfizetés nevét és a bérlőazonosítót adja vissza az előfizetés neve szerint rendezve.
az account list --query "sort_by([].{Name:name, SubscriptionId:id, TenantId:tenantId}, &Name)" --output table
Másolja az előfizetés azonosítóját az előző ideiglenes fájlba. Erre a beállításra később lesz szüksége.
Azure-szolgáltatásnév létrehozása
Egy Azure-szolgáltatásnév anélkül biztosít hozzáférést az Azure-hoz, hogy személyes felhasználói hitelesítő adatait kellene használnia. Ebben az oktatóanyagban a szolgáltatásnév mind a helyi, mind a felhőbeli környezetben használható. Vállalati környezetben minden környezethez külön szolgáltatásnevekre van szüksége.
Határozza meg a szolgáltatásnév névformátumát, hogy később könnyen megtalálhassa a szolgáltatásnevet. Számos formátumötlet például a következő:
- A projekt és a tulajdonos:
resource-management-john-smith
. - Az Ön részlege és dátuma:
IT-2021-September
- Egyedi azonosító:
00000000-0000-0000-0000-000000000000
- A projekt és a tulajdonos:
Bash-terminálban hozza létre szolgáltatásnevét az az ad sp create-for-rbac használatával. Cserélje le
<SUBSCRIPTION-ID>
az előfizetés azonosítóját.az ad sp create-for-rbac --name YOUR-SERVICE-PRINCIPAL-NAME --role Contributor --scopes /subscriptions/<SUBSCRIPTION-ID>
Másolja a teljes kimeneti eredményt egy ideiglenes fájlba. Ezekre a beállításokra később szüksége lesz.
{ "appId": "YOUR-SERVICE-PRINCIPAL-ID", "displayName": "YOUR-SERVICE-PRINCIPAL-NAME", "name": "http://YOUR-SERVICE-PRINCIPAL-NAME", "password": "YOUR-SERVICE-PRINCIPAL-PASSWORD", "tenant": "YOUR-TENANT-ID" }
2. Helyi Azure-függvényalkalmazás létrehozása a Visual Studio Code-ban
Azure-függvényalkalmazás létrehozása a Visual Studio Code-ban az Azure-erőforráscsoportok kezeléséhez.
Függvényalkalmazás létrehozása
Helyi függvényalkalmazás létrehozása a Visual Studio Code használatával.
Bash-terminálban hozzon létre és váltson át egy új könyvtárra:
mkdir my-function-app && cd my-function-app
Bash-terminálban nyissa meg a Visual Studio Code-ot:
code .
Nyissa meg a Visual Studio Code parancskatalógusát: Ctrl + Shift + p.
Írja be
Azure Functions: create new project
. A következő táblázat segítségével fejezze be a kéréseket:Létrejön a projektkazánlemez, és a függőségek telepítve vannak.
Egyszerű szolgáltatásbeállítások hozzáadása local.settings.json fájlhoz
Nyissa meg a
./local.settings.json
fájlt a projekt gyökérkönyvtárában, és adja hozzá a VALUES szakaszt az alábbi öt környezeti változóval.{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "", "FUNCTIONS_WORKER_RUNTIME": "node", "AzureWebJobsFeatureFlags": "EnableWorkerIndexing", "AZURE_CLIENT_ID": "REPLACE-WITH-SERVICE-PRINCIPAL-APPID", "AZURE_CLIENT_SECRET": "REPLACE-WITH-SERVICE-PRINCIPAL-PASSWORD", "AZURE_SUBSCRIPTION_ID":"REPLACE-WITH-SUBSCRIPTION-ID", "AZURE_TENANT_ID":"REPLACE-WITH-SERVICE-PRINCIPAL-TENANT", "NODE_ENV":"development" } }
Az értékek hozzáadásához tekintse meg az előző szakasz beállításait. Ezek a környezeti változók KÖTELEZŐek ahhoz, hogy a környezet a DefaultAzureCredential értéket használja.
AZURE_TENANT_ID
:tenant
a szolgáltatásnév fenti kimenetéből.AZURE_CLIENT_ID
:appId
a szolgáltatásnév fenti kimenetéből.AZURE_CLIENT_SECRET
:password
a szolgáltatásnév fenti kimenetéből.
Az előfizetés azonosítóját is be kell állítania. Az Azure SDK-t kell használnia az erőforrás-kezeléshez.
AZURE_SUBSCRIPTION_ID
: Az erőforráscsoportokat tartalmazó alapértelmezett előfizetés.
Ezt local.settings.json
a fájlt a helyi git szándékosan figyelmen kívül hagyja, így nem véglegesíti véletlenül a forráskódban.
NPM-függőségek telepítése az Azure Identity and Resource Managementhez
A Visual Studio Code integrált bash-termináljában telepítse az Azure Identity és az Erőforrás-kezelés Azure SDK-függőségeit.
npm install @azure/identity @azure/arm-resources
Az előfizetésben lévő összes erőforráscsoport listázása JavaScript használatával
Nyissa meg a
./src/functions/resourcegroups.ts
fájlt, és cserélje le a tartalmat a következőre:import { ResourceGroup } from '@azure/arm-resources'; import { app, HttpRequest, HttpResponseInit, InvocationContext } from '@azure/functions'; import { createResourceGroup, deleteResourceGroup } from '../lib/azure-resource-groups'; import { processError } from '../lib/error'; export async function resourcegroup( request: HttpRequest, context: InvocationContext ): Promise<HttpResponseInit> { try { console.log(JSON.stringify(request.query)); console.log(JSON.stringify(request.params)); const name: string = request.query.get('name'); const location: string = request.query.get('location'); console.log(`name: ${name}`); console.log(`location: ${location}`); switch (request.method) { case 'POST': // wait for create to complete before returning if (!name || !location) { return { body: 'Missing required parameters.', status: 400 }; } if (request.headers.get('content-type') === 'application/json') { // create with tags const body: Record<string, unknown> = (await request.json()) as Record<string, string>; const tags: Record<string, string> = body?.tags ? (body?.tags as Record<string, string>) : null; const resourceGroup: ResourceGroup = await createResourceGroup( name, location, tags ); return { jsonBody: resourceGroup, status: 200 }; } else { // create without tags const resourceGroup: ResourceGroup = await createResourceGroup( name, location, null ); return { jsonBody: resourceGroup, status: 200 }; } case 'DELETE': // wait for delete to complete before returning if (!name) { return { body: 'Missing required parameters.', status: 400 }; } await deleteResourceGroup(name); return { status: 204 }; } } catch (err: unknown) { return processError(err); } } app.http('resourcegroup', { methods: ['DELETE', 'POST'], authLevel: 'anonymous', handler: resourcegroup });
Ez a fájl válaszol az API-kérésekre,
/api/resourcegroups
és visszaadja az előfizetés összes erőforráscsoportjának listáját.Hozzon létre egy alkönyvtárat nevesített
lib
fájlbansrc
, és hozzon létre egy új fájlt a névvel ellátottazure-resource-groups.ts
könyvtárban.Másolja a következő kódot a
./src/lib/azure-resource-groups.ts
fájlba:// Include npm dependencies import { ResourceGroup, ResourceManagementClient } from '@azure/arm-resources'; import { DefaultAzureCredential } from '@azure/identity'; import { getSubscriptionId } from './environment-vars'; const subscriptionId = getSubscriptionId(); // Create Azure authentication credentials const credentials = new DefaultAzureCredential(); // Create Azure SDK client for Resource Management such as resource groups const resourceManagement = new ResourceManagementClient( credentials, subscriptionId ); // all resources groups in subscription export const listResourceGroups = async (): Promise<{ list: ResourceGroup[]; subscriptionId: string; }> => { const list: ResourceGroup[] = []; for await (const resourceGroup of resourceManagement.resourceGroups.list()) { list.push(resourceGroup); } return { subscriptionId, list }; }; export const createResourceGroup = async ( resourceGroupName: string, location: string, tags: { [propertyName: string]: string } ): Promise<ResourceGroup> => { const resourceGroupParameters = { location: location, tags }; return await resourceManagement.resourceGroups.createOrUpdate( resourceGroupName, resourceGroupParameters ); }; export const deleteResourceGroup = async ( resourceGroupName: string ): Promise<void> => { return await resourceManagement.resourceGroups.beginDeleteAndWait( resourceGroupName ); };
Ez a fájl a következőket hajtja végre:
- Lekéri az előfizetés azonosítóját
- A DefaultAzureCredential környezet létrehozása
- Létrehozza az Erőforrás-kezelési SDK használatához szükséges ResourceManagementClient-et.
- Lekéri az előfizetés összes erőforráscsoportját.
Hozzon létre egy új fájlt a
./src/lib
névvel ellátottenvironment-vars.ts
könyvtárban, és másolja a következő kódot a fájlba.export const checkAzureAuth = () => { // The following code is only used to check you have environment // variables configured. The DefaultAzureCredential reads your // environment - it doesn't read these variables. const tenantId = process.env['AZURE_TENANT_ID']; if (!tenantId) throw Error('AZURE_TENANT_ID is missing from environment variables.'); const clientId = process.env['AZURE_CLIENT_ID']; if (!clientId) throw Error('AZURE_CLIENT_ID is missing from environment variables.'); const secret = process.env['AZURE_CLIENT_SECRET']; if (!secret) throw Error('AZURE_CLIENT_SECRET is missing from environment variables.'); }; export const getSubscriptionId = (): string => { checkAzureAuth(); // Get subscription from environment variables const subscriptionId = process.env['AZURE_SUBSCRIPTION_ID']; if (!subscriptionId) throw Error('Azure Subscription is missing from environment variables.'); return subscriptionId; };
Ez a fájl az előfizetés-azonosító visszaadása előtt ellenőrzi a környezeti változókat.
Hozzon létre egy új fájlt a
./src/lib
névvel ellátotterror.ts
könyvtárban, és másolja a következő kódot a fájlba.export function processError(err: unknown): any { if (typeof err === 'string') { return { body: err.toUpperCase(), status: 500 }; } else if ( err['stack'] && process.env.NODE_ENV.toLowerCase() !== 'production' ) { return { jsonBody: { stack: err['stack'], message: err['message'] } }; } else if (err instanceof Error) { return { body: err.message, status: 500 }; } else { return { body: JSON.stringify(err) }; } }
Ez a fájl egy 500-os hibát ad vissza a hibaüzenettel. A verem akkor lesz visszaadva, ha a
NODE_ENV
változó nincs beállítvaproduction
.
Helyi függvények tesztelése
A Visual Studio Code integrált termináljában futtassa a helyi projektet:
npm start
Várjon, amíg az integrált bash-terminál megjeleníti a futó függvény URL-címét.
Nyisson meg egy második integrált Bash-terminált a Visual Studio Code-ban, a Ctrl Shift 5 billentyűkombinációt + + , és használja a következő GET cURL parancsot az API használatához:
curl http://localhost:7071/api/resourcegroups
Ha az előfizetésben számos erőforráscsoport található, érdemes lehet a kimenetet egy fájlba csövezni a könnyebb áttekintés érdekében.
curl http://localhost:7071/api/resourcegroups > resourcegroups.json
A válasz tartalmazza
subscriptionId
az előfizetés összes erőforráscsoportját és egylist
részét.{ "subscriptionId": "ABC123", "list": [ { "id": "/subscriptions/ABC123/resourceGroups/vmagelo-cloudshell", "name": "jsmith-cloudshell", "type": "Microsoft.Resources/resourceGroups", "properties": { "provisioningState": "Succeeded" }, "location": "westeurope" }, ... REMOVED FOR BREVITY ... ] }
Hibaelhárítás
Ha nem tudta befejezni ezt a cikket, tekintse meg a következő táblázatot a problémákért. Ha a probléma nem szerepel a táblázatban, nyisson meg egy problémát ezen a dokumentációs lapon.
Probléma | Javítás |
---|---|
Az alkalmazás nem indult el. | Tekintse át a hibákat. Győződjön meg arról, hogy telepítette a szükséges függőségeket. |
Az alkalmazás elindult, de nem kaphat 200 választ. | Győződjön meg arról, hogy a curl parancs a megfelelő helyi útvonalról kéri. |
Az API 200-ra adott vissza választ, de nem adott eredményül. | Az Azure-erőforrásokhoz készült Visual Studio Code-bővítmény használatával ellenőrizze, hogy az előfizetés rendelkezik-e erőforráscsoportokkal. Ha nem lát erőforráscsoportokat, ne aggódjon. Ez az oktatóanyag hozzáad egy API-t az erőforráscsoportok létrehozásához és törléséhez az előfizetésben. Ez az API a forráskód Azure-ba való első üzembe helyezése után lesz hozzáadva, így megtudhatja, hogyan helyezheti üzembe újra a kódot. |
3. Felhőalapú Azure-függvényalkalmazás létrehozása
A Visual Studio Code-ban válassza az Azure-ikont az Azure Explorer megnyitásához.
+ Az ikont választva új Azure-függvényalkalmazást hozhat létre az Azure-felhőben.
Válassza a Függvényalkalmazás létrehozása az Azure-ban lehetőséget.
Adjon meg egy globálisan egyedi nevet az új függvényalkalmazásnak. A névnek minden Azure-függvényben egyedinek kell lennie. Például:
jsmith-rg-management
.Válassza ki ugyanazt a Node.js 18+ LTS-futtatókörnyezetet , amelyet a helyi függvényalkalmazás létrehozásakor választott ki.
Válasszon egy Önhöz közeli földrajzi helyet, például az USA 3. nyugati régióját.
Várjon, amíg létrejön az erőforrás. A részletekért tekintse meg az Azure: Tevékenységnaplót .
4. Felhőalapú Azure-függvényalkalmazás konfigurálása
Konfigurálnia kell az Azure-alkalmazás beállításait az Azure-függvényalkalmazáshoz való csatlakozáshoz. Ezek a beállítások helyileg a fájlban local.settings.json
találhatók. Ez a folyamat hozzáadja ezeket az értékeket a felhőalkalmazáshoz.
A Visual Studio Code-ban az Azure Explorer Erőforrások szakaszában bontsa ki a Függvényalkalmazást, majd válassza ki a függvényalkalmazást.
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.
Adja hozzá a négy értéket a saját nevével
local.settings.json
és értékeivel.AZURE_TENANT_ID
:tenant
a szolgáltatásnév fenti kimenetéből.AZURE_CLIENT_ID
:appId
a szolgáltatásnév fenti kimenetéből.AZURE_CLIENT_SECRET
:password
a szolgáltatásnév fenti kimenetéből.AZURE_SUBSCRIPTION_ID
: Az erőforráscsoportokat tartalmazó alapértelmezett előfizetés.AzureWebJobsFeatureFlags
:EnableWorkerIndexing
5. Resource Manager-függvényalkalmazás üzembe helyezése
Azure-függvényalkalmazás üzembe helyezése a Visual Studio Code-ban az Azure-erőforráscsoportok kezeléséhez.
A Visual Studio Code bővítmény használata az üzemeltetési környezetben való üzembe helyezéshez
A VS Code-ban nyissa meg a
local.settings.json
fájlt, hogy látható legyen. Ez megkönnyíti a nevek és értékek másolásának következő lépéseit.Válassza az Azure-emblémát az Azure Explorer megnyitásához, majd a Functions területen válassza ki a felhő ikont az alkalmazás üzembe helyezéséhez.
Másik lehetőségként a Parancskatalógus ctrl shift + p billentyűkombinációval való megnyitásával, az Azure Functions: Üzembe helyezés függvényalkalmazásban parancs beírásával
deploy to function app
és futtatásával + is üzembe helyezhető.Válassza az Üzembe helyezés függvényalkalmazásban lehetőséget.
Válassza ki az előző szakaszban létrehozott függvényalkalmazás nevét.
Amikor a rendszer megkérdezi, hogy biztosan üzembe kívánja-e helyezni az üzembe helyezést, válassza az Üzembe helyezés lehetőséget.
Az Azure Functions VS Code Output panelje megjeleníti az előrehaladást. Üzembe helyezéskor a teljes Functions-alkalmazás üzembe lesz helyezve, így az egyes függvények módosításai egyszerre lesznek üzembe helyezve.
Annak ellenőrzése, hogy a Functions alkalmazás elérhető-e a böngészőben
Amíg a Visual Studio Code-ban van, használja az Azure Functions Explorert, bontsa ki az Azure-előfizetés csomópontját, bontsa ki a Functions-alkalmazás csomópontját, majd bontsa ki a Függvényeket (csak olvasható). Kattintson a jobb gombbal a függvény nevére, és válassza a Függvény URL-címének másolása lehetőséget:
Illessze be az URL-címet egy böngészőbe, és az Enter billentyűt lenyomva kérje le az erőforráscsoport-listát a felhő API-ból.
6. API-k hozzáadása a függvényalkalmazáshoz, és ismételt üzembe helyezés az Azure-ban
Adja hozzá a következő API-kat, majd telepítse újra az Azure-függvényalkalmazást a Visual Studio Code-ban:
- Erőforráscsoportok hozzáadása és törlése
- Erőforrások listázása erőforráscsoportban vagy előfizetésben.
Az oktatóanyag ezen pontján létrehozott egy helyi függvényalkalmazást egy API-val az előfizetés erőforráscsoportjainak listázásához, és üzembe helyezte az alkalmazást az Azure-ban. Azure-fejlesztőként érdemes lehet erőforráscsoportokat létrehozni vagy törölni a folyamatautomatizálási folyamat részeként.
ResourceGroup API létrehozása a függvényalkalmazáshoz
Az Azure Functions Visual Studio Code bővítményével adja hozzá a TypeScript-fájlokat a függvényalkalmazáshoz erőforráscsoportok létrehozásához és törléséhez.
Nyissa meg a Visual Studio Code parancskatalógusát: Ctrl + Shift + p.
A folyamat megkezdéséhez nyomja le
Azure Functions: Create Function
az Enter billentyűt.Az /api/resourcegroup API létrehozásához használja az alábbi táblázatot:
Nyissa meg a
./src/functions/resourcegroup.ts
teljes fájlt, és cserélje le a következő forráskódra.import { ResourceGroup } from '@azure/arm-resources'; import { app, HttpRequest, HttpResponseInit, InvocationContext } from '@azure/functions'; import { createResourceGroup, deleteResourceGroup } from '../lib/azure-resource-groups'; import { processError } from '../lib/error'; export async function resourcegroup( request: HttpRequest, context: InvocationContext ): Promise<HttpResponseInit> { try { console.log(JSON.stringify(request.query)); console.log(JSON.stringify(request.params)); const name: string = request.query.get('name'); const location: string = request.query.get('location'); console.log(`name: ${name}`); console.log(`location: ${location}`); switch (request.method) { case 'POST': // wait for create to complete before returning if (!name || !location) { return { body: 'Missing required parameters.', status: 400 }; } if (request.headers.get('content-type') === 'application/json') { // create with tags const body: Record<string, unknown> = (await request.json()) as Record<string, string>; const tags: Record<string, string> = body?.tags ? (body?.tags as Record<string, string>) : null; const resourceGroup: ResourceGroup = await createResourceGroup( name, location, tags ); return { jsonBody: resourceGroup, status: 200 }; } else { // create without tags const resourceGroup: ResourceGroup = await createResourceGroup( name, location, null ); return { jsonBody: resourceGroup, status: 200 }; } case 'DELETE': // wait for delete to complete before returning if (!name) { return { body: 'Missing required parameters.', status: 400 }; } await deleteResourceGroup(name); return { status: 204 }; } } catch (err: unknown) { return processError(err); } } app.http('resourcegroup', { methods: ['DELETE', 'POST'], authLevel: 'anonymous', handler: resourcegroup });
A
./src/lib/azure-resource-groups.ts
fájl már tartalmazza az erőforráscsoportok hozzáadására és törlésére vonatkozó kódot.
Erőforrások API létrehozása a függvényalkalmazáshoz
Az Azure Functions Visual Studio Code bővítményével adja hozzá a TypeScript-fájlokat a függvényalkalmazáshoz az erőforráscsoport erőforrásainak listázásához.
Nyissa meg a Visual Studio Code parancskatalógusát: Ctrl + Shift + p.
A folyamat megkezdéséhez nyomja le
Azure Functions: Create Function
az Enter billentyűt.Az /api/resources API létrehozásához használja az alábbi táblázatot:
Nyissa meg a
./src/functions/resources.ts
teljes fájlt, és cserélje le a következő forráskódra.import { app, HttpRequest, HttpResponseInit, InvocationContext } from '@azure/functions'; import { listResourceByResourceGroup, listResourceBySubscription } from '../lib/azure-resource'; import { processError } from '../lib/error'; export async function resources( request: HttpRequest, context: InvocationContext ): Promise<HttpResponseInit> { try { const resourceGroupName: string = request.query.get('resourceGroupName'); context.log(`resourceGroupName: '${resourceGroupName}'`); if (resourceGroupName) { const resourcesByName = await listResourceByResourceGroup( resourceGroupName ); return { jsonBody: resourcesByName }; } else { const resourcesBySubscription = await listResourceBySubscription(); return { jsonBody: resourcesBySubscription }; } } catch (err: unknown) { return processError(err); } } app.http('resources', { methods: ['GET'], authLevel: 'anonymous', handler: resources });
Hozza létre a
./src/lib/azure-resource.ts
fájlt, és másolja be a következő kódot az erőforráscsoport erőforrásainak listázásához.// Include npm dependencies import { Resource, ResourceManagementClient } from '@azure/arm-resources'; import { DefaultAzureCredential } from '@azure/identity'; import { getSubscriptionId } from './environment-vars'; const subscriptionId = getSubscriptionId(); // Create Azure authentication credentials const credentials = new DefaultAzureCredential(); // Create Azure SDK client for Resource Management such as resource groups const resourceManagement = new ResourceManagementClient( credentials, subscriptionId ); // all resources groups in subscription export const listResourceBySubscription = async (): Promise<{ list: Resource[]; subscriptionId: string; }> => { const list: Resource[] = []; for await (const resource of resourceManagement.resources.list()) { list.push(resource); } return { subscriptionId, list }; }; // all resources groups in resource group export const listResourceByResourceGroup = async ( resourceGroupName: string ): Promise<{ list: Resource[]; subscriptionId: string; resourceGroupName: string; }> => { const list: Resource[] = []; for await (const resource of resourceManagement.resources.listByResourceGroup( resourceGroupName )) { list.push(resource); } return { subscriptionId, resourceGroupName, list }; };
Indítsa el a helyi függvényalkalmazást, és tesztelje az új API-t
A Visual Studio Code integrált termináljában futtassa a helyi projektet:
npm start
Várjon, amíg az integrált bash-terminál megjeleníti a futó függvény URL-címét.
Az alábbi curl-parancsokkal egy másik integrált Bash-terminálban hívhatja meg az API-t, hogy hozzáadjon egy erőforráscsoportot az előfizetéshez. Módosítsa az erőforráscsoport nevét saját elnevezési konvenciók használatára.
curl -X POST 'http://localhost:7071/api/resourcegroup?name=my-test-1&location=westus' curl -X POST 'http://localhost:7071/api/resourcegroup?name=my-test-1&location=westus' \ -H 'content-type: application/json' \ -d '{"tags": {"a":"b"}}'
Az alábbi curl paranccsal megtekintheti az előfizetésében szereplő új erőforráscsoportot.
curl http://localhost:7071/api/resource-groups
Az alábbi curl paranccsal törölheti az imént hozzáadott erőforráscsoportot.
curl -X DELETE 'http://localhost:7071/api/resourcegroup?name=my-test-1' \ -H 'Content-Type: application/json'
Függvényalkalmazás ismételt üzembe helyezése új API-kkal az Azure-ban
A VS Code-ban az üzembe helyezéshez nyissa meg a Parancskatalógust a Ctrl + Shift + p billentyűkombinációval, írja be
deploy to function app
és futtassa az Azure Functions: Deploy to Function App parancsot.Válassza ki a függvényalkalmazást az alkalmazások listájából.
Válassza az Üzembe helyezés lehetőséget az előugró ablakban.
Várjon, amíg az üzembe helyezés befejeződik.
Függvény API-k ellenőrzése böngészővel
Használja az előző cURL-parancsokat, és cserélje le a localhost címet az Azure Function-erőforrás nevére, http://localhost:7071
például https://myfunction.azurewebsites.net
.
7. A függvényalkalmazás naplóinak megtekintése és lekérdezése
Az Azure-függvényalkalmazás naplóinak megtekintése és lekérdezése az Azure Portalon.
Azure-függvénynaplók lekérdezése
Az Azure Portal használatával megtekintheti és lekérdezheti a függvénynaplókat.
A VS Code-ban válassza az Azure-emblémát az Azure Explorer megnyitásához, 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.
Válassza az Alkalmazás Elemzések lehetőséget a Gépház, majd válassza az Alkalmazás Elemzések adatok megtekintése lehetőséget.
Ez a hivatkozás az Azure-függvény VS Code-tal való létrehozásakor létrehozott különálló metrikák erőforrására vezet.
Válassza a Naplók lehetőséget a Figyelés szakaszban. 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.
A Séma és szűrő panel Táblák lapján kattintson duplán a nyomkövetési táblára.
Ez beírja a Kusto-lekérdezést
traces
a lekérdezési ablakba.A lekérdezés szerkesztése API-hívások kereséséhez:
traces | where message startswith "Executing "
Válassza a Futtatás lehetőséget.
Ha a napló nem jelenít meg semmilyen eredményt, előfordulhat, hogy néhány perc 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.
Mivel az Azure-függvényalkalmazás létrehozásakor egy alkalmazás-Elemzések erőforrás lett hozzáadva Önhöz, a naplózási adatok beszerzéséhez nem kellett semmit sem tennie:
- A függvényalkalmazás alkalmazás-Elemzések hozzáadott Önnek.
- A Lekérdezés 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.
8. Azure-erőforrások eltávolítása
Az erőforráscsoport törlése
A VS Code-ban válassza az Azure-emblémát az Azure Explorer megnyitásához, 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.
Az Áttekintés szakaszban keresse meg és válassza ki az erőforráscsoport nevét. Ez a művelet az Azure Portal erőforráscsoportját nyitja meg.
Az erőforráscsoport lap felsorolja az oktatóanyaghoz társított összes erőforrást.
A felső menüben válassza az Erőforráscsoport törlése lehetőséget.
Az oldalsó menüben adja meg az erőforráscsoport nevét, majd válassza a Törlés lehetőséget.
A szolgáltatásnév törlése
A szolgáltatásnév törléséhez futtassa a következő parancsot. Cserélje le <YOUR-SERVICE-PRINCIPAL-NAME>
a szolgáltatásnév nevére.
az ad sp delete --id <YOUR-SERVICE-PRINCIPAL-NAME>
Mintakód
Következő lépések
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: