Szolgáltatásvégpont létrehozása
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
A szolgáltatásvégpontok segítségével az Azure DevOps külső rendszerekhez vagy szolgáltatásokhoz csatlakozhat. Az Azure DevOps által biztonságosan tárolt tulajdonságok csomagja, amely magában foglalja, de nem korlátozódik a következő tulajdonságokra:
- Szolgáltatás neve
- Leírás
- Kiszolgáló URL-címe
- Tanúsítványok vagy jogkivonatok
- Felhasználónevek és jelszavak
A bővítmények ezután a szolgáltatásvégpont használatával beolvashatják a tárolt adatokat, hogy elvégezhessék a szükséges műveleteket a szolgáltatáson. Az útmutatót követve hozzon létre egy új szolgáltatásvégpont-hozzájárulást, és használja azt a bővítményben.
Tipp.
Tekintse meg a bővítményfejlesztéssel kapcsolatos legújabb dokumentációnkat az Azure DevOps Extension SDK használatával.
Feladat áttekintése
Szolgáltatásvégpontot úgy fejleszthet, hogy létrehoz egy példabővítményt az Azure DevOpshoz, amely a következő elemeket tartalmazza:
- Egyéni szolgáltatásvégpont adatforrásokkal, amely lehetővé teszi, hogy a buildelési feladat vagy az irányítópult-vezérlő meghívjon egy REST-végpontot a végpont által meghatározott szolgáltatáson/kiszolgálón.
- Egy összeállítási feladat, amely két tulajdonságot határoz meg: A szolgáltatásvégpont & egy picklist, amely a REST-végpont adatforrásából feltöltött értékeket tartalmaz.
Feljegyzés
Szolgáltatásvégpontok létrehozásakor az a projekt szintjén van, nem a szervezet szintjén.
A feladat végrehajtásának lépései a következők:
- 1. A bővítmény jegyzékfájljának létrehozása
- 2. Hozza létre a buildelési feladatfolyamatot a task.json fájlban
Feljegyzés
Ez az oktatóanyag a projekt kezdőlap könyvtárára hivatkozik" "kezdőlapként".
Hozza létre a jegyzékfájlt: vss-extension.json
A jegyzékfájl határozza meg az egyéni végpontot, és a buildelési feladathoz tartozó task.json jegyzékre mutató hivatkozásokat.
Ebben a cikkben a jegyzékfájl létrehozása a következő három részre oszlik:
- Szolgáltatásvégpont létrehozása
Alapszintű jegyzékfájl létrehozása
Hozzon létre egy json-fájlt (vss-extension.json
például) a home
bővítmény könyvtárában.
{
"manifestVersion": 1,
"id": "service-endpoint-tutorial",
"version": "0.1.1",
"name": "Sample extension that leverages a service endpoint",
"description": "A sample Azure DevOps extension which shows how to create a custom endpoint and dynamic build task parameters taking value from a REST API.",
"publisher": "francistotten",
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
],
"files": [
{
"path": "BuildTaskFolder"
}
]
}
Feljegyzés
Frissítse a tulajdonságot publisher
. Ez BuildTaskFolder
az az elérési út, ahová végül a buildelési feladatfolyamatot fogjuk helyezni.
Az egyéni végpont hozzájárulásának hozzáadása
Adja hozzá a következő contributions
tömböt az targets
alapjegyzék-tartalom tömbje alá.
Fontos
A szolgáltatáskapcsolat paramétereit szolgáltatáskapcsolat-azonosítóval kell beolvasni.
"contributions": [
{
"id": "service-endpoint",
"description": "Service endpoint type for Fabrikam connections",
"type": "ms.vss-endpoint.service-endpoint-type",
"targets": [ "ms.vss-endpoint.endpoint-types" ],
"properties": {
"name": "fabrikam",
"displayName": "Fabrikam server connection",
"url": {
"displayName": "Server Url",
"helpText": "Url for the Fabrikam server to connect to."
},
"dataSources": [
{
"name": "Fabrikam Projects",
"endpointUrl": "{{endpoint.url}}api/projects/index",
"resultSelector": "jsonpath:$[*].nm"
}
],
"authenticationSchemes": [
{
"type": "ms.vss-endpoint.endpoint-auth-scheme-token"
},
{
"type": "ms.vss-endpoint.endpoint-auth-scheme-basic",
"inputDescriptors": [
{
"id": "username",
"name": "Username",
"description": "Username",
"inputMode": "textbox",
"validation": {
"isRequired": false,
"dataType": "string"
}
},
{
"id": "password",
"name": "Password",
"description": "Password",
"inputMode": "passwordbox",
"isConfidential": true,
"validation": {
"isRequired": false,
"dataType": "string"
}
}
]
}
],
"helpMarkDown": "<a href=\"url-to-documentation\" target=\"_blank\"><b>Learn More</b></a>"
}
},
],
Ha sikeresen hozzáadta a szolgáltatás-hozzájárulást, akkor megjelenik a Fabrikam végpont, amikor új szolgáltatásvégpontot próbál hozzáadni a szervezethez.
Hozzon létre egy szolgáltatásvégpontot a Fabrikam-végponttal.
Tipp.
Az inputDescriptorokat authenticationSchemes nélkül is hozzáadhatja. További információ: InputDescriptor interface.
A buildelési tevékenység hozzájárulásának hozzáadása
contributions
Az előző lépés tömbén belül adja hozzá a következő objektumot a végéhez.
{
"id": "build-task",
"description": "Task with a dynamic property getting data from an endpoint REST data source",
"type": "ms.vss-distributed-task.task",
"targets": [ "ms.vss-distributed-task.tasks" ],
"properties": {
"name": "BuildTaskFolder"
}
}
A dataSource-végpont URL-címe a végpont URL-címéből vagy egy rögzített URL-címből és néhány egyéb értékből lesz kiszámítva. Ebben az oktatóanyagban ez a REST-hívás semmit nem ad vissza, és a szolgáltatásba beszedni kívánt REST-hívásokkal kell helyettesíteni.
A REST URL-cím végponti URL-címétől eltérő paramétereket is használhat, például egyes végponttulajdonságokat. Tegyük fel például, hogy rendelkezünk egy tulajdonsággal az subscriptionId nevű végpontban, a REST URL a következő szintaxissal használható: $(endpoint.subscription).
Az összeállítási feladat létrehozása
A task.json
fájl ismerteti a buildelési feladatot.
Feljegyzés
További információkért tekintse meg a következő cikkeket:
- Feladathivatkozás összeállítása a buildelési feladat json-fájljának sémájának megkereséséhez
- Egyéni folyamatok tevékenységbővítményének hozzáadása
- Buildelési feladat integrálása
Ha még nem hozta létre ezt a mappát, hozzon létre egy task.json
fájlt a BuildTaskFolder
címtárban.
{
"id": "6557a6d2-4caf-4247-99ea-5131286a8753",
"name": "build-task",
"friendlyName": "Build Task that uses the service endpoint",
"description": "Task with a dynamic property getting data from an endpoint REST data source",
"author": "francistotten",
"helpMarkDown": "Replace with Markdown to show in help",
"category": "Build",
"visibility": [
"Build",
"Release"
],
"demands": [],
"version": {
"Major": "0",
"Minor": "1",
"Patch": "1"
},
"minimumAgentVersion": "1.95.0",
"instanceNameFormat": "Service Endpoint Build Task $(project)",
"inputs": [
{
"name": "FabrikamService",
"type": "connectedService:Fabrikam",
"label": "Fabrikam service/server end point",
"defaultValue": "",
"required": true,
"helpMarkDown": "Select the Fabrikam end point to use. If needed,selecton 'manage', and add a new service endpoint of type 'Fabrikam server connection'"
},
{
"name": "project",
"type": "pickList",
"label": "Fabrikam Project",
"required": true,
"helpMarkDown": "Select the name of the Fabrikam Project to analyze.",
"properties": {
"EditableOptions": "True"
}
}
],
"dataSourceBindings": [
{
"target": "project",
"endpointId": "$(FabrikamService)",
"dataSourceName": "Fabrikam Projects"
}
],
"execution": {
"Node": {
"target": "sample.js",
"argumentFormat": ""
},
"PowerShell3": {
"target": "sample.ps1"
}
}
}
task.json összetevők
A FabrikamService
bemeneti objektum
Ez a mező a connectedService:Fabrikam.connectedService típus első típusa, amely azt fejezi ki, hogy végponttípus, és hogy a Fabrikam az objektum neve.
A project
bemeneti objektum
Ez a mező a második. Ez egy picklist.
- Ezt a mezőt EGY REST-hívás tölti ki.
- A "projekt" mező értékei az egyéni végpont "Projektek" REST-adatforrásából származnak.
- Tömbben
dataSourceBindings
kifejezve.- A cél a feltöltendő buildelési tevékenységmező neve ("projekt").
- Az endpointId az egyéni végponttípust tartalmazó buildelési tevékenységmező neve.
- A REST-hívást a dataSourceName választja ki.
Ha sikeresen hozzáadta a buildelési feladatot, most már látnia kell a buildelési feladatot, amikor tevékenységeket ad hozzá egy buildelési folyamathoz.
Miután hozzáadta a buildelési feladatot a folyamathoz, győződjön meg arról, hogy láthatja a létrehozott Fabrikam-végpontot. Az oktatóanyagban szereplő projektek legördülő listája üres, mivel nem használunk valódi szolgáltatást. Miután lecserélte a Fabrikamot a szolgáltatásra, cserélje le a Projektek hívást a saját REST API-hívására, hogy dinamikus adatokat használjon a buildelési feladaton belül.
Hitelesítés
A szolgáltatásvégpont hitelesítési sémája határozza meg a külső szolgáltatáshoz való csatlakozáshoz használt hitelesítő adatokat. További információkért és a következő hitelesítési sémák megtekintéséhez tekintse meg a hitelesítési sémák dokumentációját.
- Alapszintű hitelesítés
- Jogkivonat-alapú hitelesítés
- Tanúsítványalapú hitelesítés
- Nincs hitelesítés