Szolgáltatásvégpont létrehozása
Azure DevOps Services | Azure DevOps Server 2020-| 2019 Azure DevOps Server | TFS 2018
A szolgáltatásvégpontok segítségével az Azure DevOps külső rendszerekhez vagy szolgáltatásokhoz csatlakozhat. Ezek az Azure DevOps által biztonságosan tárolt tulajdonságok egy csomagja, amely magában foglalja, de nem korlátozódik a következő tulajdonságokra:
- Szolgáltatásnév
- Leírás
- Kiszolgáló URL-címe
- Tanúsítványok vagy jogkivonatok
- Felhasználónevek és jelszavak
Megjegyzés
A szolgáltatásvégpontokatszolgáltatáskapcsolatoknak nevezzük a TFS 2018-ban és a korábbi verziókban. A folyamatokatbuilddefinícióknak nevezzük a TFS 2018-ban és a korábbi verziókban.
A bővítmények ezután a szolgáltatásvégpont használatával lek tudják szerezni a tárolt adatokat, hogy elvégezhessék a szükséges műveleteket a szolgáltatáson. Ezt az útmutatót követve hozzon létre egy új service point-hozzájárulást, és használja azt a bővítményben.
Tipp
Tekintse meg az Azure DevOps Extension SDK-val végzett bővítményfejlesztéssel kapcsolatos legújabb dokumentációnkat.
Feladat áttekintése
Szolgáltatásvégpont fejlesztéséhez hozzon létre egy példabővítményt az Azure DevOpshoz, amely a következő elemeket tartalmazza:
- Egy adatforrásokkal rendelkező egyéni szolgáltatásvégpont, 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.
Megjegyzés
A felhasználók által létrehozott szolgáltatásvégpontok a projekt szintjén jönnek létre, nem a szervezeti szinten.
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. A buildelési feladat folyamatának létrehozása a task.json fájlban
Megjegyzés
Ez az oktatóanyag a projekt kezdő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 feladat task.json jegyzékfájljához kapcsolódik.
Ebben a cikkben a jegyzékfájl létrehozása a következő három részre oszlik:
- Az alapszintű jegyzékfájl létrehozása
- Egyéni végponti hozzájárulás hozzáadása
- Buildelési feladat hozzáadása
Alapszintű jegyzékfájl létrehozása
Hozzon létre egy json-fájlt (vss-extension.jsonpé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"
}
]
}
Megjegyzés
Frissítenie kell a tulajdonságot publisher . És a "BuildTaskFolder" az az elérési út, ahol végül elhelyezzük a buildelési feladat folyamatát.
Az egyéni végpont hozzájárulásának hozzáadása
Adja hozzá a következő contributions tömböt az targets alapszintű jegyzéktartalom tömbje alá.
Fontos
- A szolgáltatáskapcsolat paramétereit szolgáltatáskapcsolat-azonosító alapján kell lekérni.
"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ási hozzájárulást, a Fabrikam-végpont jelenik meg, 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éghez való hozzájárulás 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 sem ad vissza, és a szolgáltatásba irányuló rest-hívások helyettesítik.
A REST URL-cím végponti URL-címén kívül más paramétereket is használhat, például egyes végponttulajdonságokat. Tegyük fel például, hogy a subscriptionId nevű végpontban van egy tulajdonság, a REST URL-cím 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.
Megjegyzés
Tekintse meg a buildelési feladat hivatkozását a buildelési feladat json-fájljának sémájának megkereséséhez.
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.
- A
dataSourceBindingstömbben kifejezve.- A cél a feltöltendő buildtevékenység-mező neve ("projekt").
- Az endpointId az egyéni végponttípust tartalmazó összeállítási feladatmező neve.
- A REST-hívást a dataSourceName választja ki.
Ha sikeresen hozzáadta a buildelési feladatot, akkor most 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, ellenőrizze, hogy látható-e a létrehozott Fabrikam-végpont. Ebben az oktatóanyagban a 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 Projects 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ért 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