Vytvoření koncového bodu služby

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Koncové body služby představují způsob, jak se Azure DevOps připojit k externím systémům nebo službám. Jedná se o sadu vlastností bezpečně uložených službou Azure DevOps, která zahrnuje následující vlastnosti, ale není omezena na následující vlastnosti:

  • Název služby
  • Popis
  • Adresa URL serveru
  • Certifikáty nebo tokeny
  • Uživatelská jména a hesla

Rozšíření pak můžou použít koncový bod služby k získání uložených podrobností k provádění nezbytných operací s danou službou. Podle tohoto průvodce vytvořte nový příspěvek ke koncovému bodu služby a použijte ho ve svém rozšíření.

Návod

Nejnovější pokyny k vývoji rozšíření, včetně motivů a migrace z VSS.SDK, najdete na portálu pro vývojáře sady Azure DevOps Extension SDK.

Přehled úkolů

Koncový bod služby můžete vyvíjet vytvořením ukázkového rozšíření pro Azure DevOps, které obsahuje následující položky:

  • Vlastní koncový bod služby se zdroji dat, který umožňuje úlohu sestavení nebo widget řídicího panelu volat koncový bod REST na službě nebo serveru definovaném koncovým bodem.
  • Úloha sestavení, která definuje dvě vlastnosti: koncový bod služby a rozevírací seznam, který obsahuje hodnoty naplněné ze zdroje dat koncového bodu REST.

Poznámka:

Když vytváříte koncové body služby, je to na úrovni projektu, ne na úrovni organizace.

Kroky, které jsou součástí dokončení tohoto úkolu, jsou:

Poznámka:

Tento tutoriál označuje domovský adresář vašeho projektu jako "domov".

Vytvořte soubor manifestu: vss-extension.json

Soubor manifestu definuje vlastní koncový bod a odkazuje na manifest task.json pro úlohu sestavení.

V tomto článku je vytvoření souboru manifestu rozděleno do následujících tří částí:

Vytvoření základního souboru manifestu

V adresáři rozšíření vytvořte soubor JSON (vss-extension.jsonnapříklad home ).

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

Poznámka:

Aktualizujte publisher vlastnost. Cesta BuildTaskFolder je místem, kam nakonec umístíme kanál sestavení úlohy.

Přidání vlastního koncového bodu

Pod pole základního obsahu manifestu contributions přidejte následující targets pole.

Důležité

Parametry připojení služby musí být načteny podle ID připojení služby.

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

Pokud jste úspěšně přidali příspěvek ke službě, při pokusu o přidání nového koncového bodu služby do vaší organizace se zobrazí koncový bod Fabrikam.

Vytvořte koncový bod služby pomocí koncového bodu Fabrikam.

Snímek obrazovky s nastaveným koncovým bodem služby

Návod

Vstupní deskriptory můžete přidat bez ověřovacích schémat. Další informace naleznete v rozhraní InputDescriptor.

Přidat příspěvek k úkolu sestavení

contributions Do pole z předchozího kroku přidejte na konec následující objekt.

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

Adresa URL koncového bodu zdroje dat se vypočítá z adresy URL koncového bodu nebo pevné adresy URL a některých dalších hodnot. Pro účely tohoto kurzu toto volání REST nevrátí nic a má být nahrazeno všemi voláními REST, která chcete provést ve své službě.

Je možné použít jiné parametry než adresa URL koncového bodu pro adresu URL REST, například některé vlastnosti koncového bodu. Předpokládejme například, že jsme měli vlastnost v koncovém bodu s názvem subscriptionId, adresa URL REST ji může použít s následující syntaxí: $(endpoint.subscription).

Vytvořte úlohu sestavení

Tento task.json soubor popisuje vaši úlohu sestavení.

Poznámka:

Další informace najdete v následujících článcích:

Vytvořte soubor task.json ve složce BuildTaskFolder. Pokud jste tuto složku ještě nevytvořili, udělejte to nyní.

{
  "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, select '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"
    }
  }
}

komponenty „task.json“

Vstupní FabrikamService objekt

Toto pole je první typ connectedService:Fabrikam.connectedService vyjadřuje, že se jedná o typ koncového bodu a že Fabrikam je název objektu.

Vstupní project objekt

Toto pole je druhé. Je to rozevírací seznam.

  • Toto pole je naplněno voláním REST.
  • Hodnoty z pole "projekt" jsou převzaty z REST datového zdroje "Projecty" vlastního koncového bodu.
  • Vyjádřeno v matici dataSourceBindings .
    • Cílem je název pole úkolu sestavení, které má být naplněno ("projekt").
    • EndpointId je název pole úkolu sestavení obsahujícího vlastní typ koncového bodu.
    • Volání REST je vybráno podle názvu dataSourceName.

Pokud jste úspěšně přidali úlohu sestavení, měli byste teď při přidávání úkolů do kanálu buildu vidět úlohu sestavení.

Obrázek úlohy výběru sestavení koncového bodu služby

Po přidání úlohy sestavení do pipeline ověřte, že může vidět koncový bod Fabrikam, který jste vytvořili. Rozevírací seznam projektů v tomto kurzu je prázdný, protože nepoužíváme skutečnou službu. Jakmile nahradíte Fabrikam službou, nahraďte volání Projects vlastním voláním rozhraní REST API pro použití dynamických dat uvnitř úlohy sestavení.

Obraz pro nastavení úkolu sestavení koncového bodu služby

Autentizace

Schéma ověřování v koncovém bodu služby určuje přihlašovací údaje, které se použijí pro připojení k externí službě. Další informace a zobrazení následujících schémat ověřování najdete v dokumentaci k schématům ověřování.

  • Základní ověřování
  • Ověřování na základě tokenů
  • Ověřování na základě certifikátů
  • Bez ověřování

Další kroky