Megosztás a következőn keresztül:


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:

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:

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"
    }
  ]
}

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.

Képernyőkép a szolgáltatásvégpont beállításáról.

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:

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.

Szolgáltatásvégpont buildelési feladatválasztó rendszerképe.

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.

Szolgáltatásvégpont buildelési feladatbeállítási rendszerképe.

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

Következő lépések