Vytvoření koncového bodu služby

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

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:

  • Service name
  • 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í.

Tip

Projděte si nejnovější dokumentaci k vývoji rozšíření pomocí sady SDK rozšíření Azure DevOps.

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 kurz odkazuje na domovský adresář projektu jako "home".

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. Je to BuildTaskFolder cesta, kde nakonec umístíme kanál úlohy sestavení.

Přidání příspěvku vlastního koncového bodu

Pod pole základního obsahu manifestu targets přidejte následující contributions 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

Tip

Vstupní deskriptory můžete přidat bez ověřováníSchemes. Další informace naleznete v tématu InputDescriptor rozhraní.

Přidání příspěvku ú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ření úlohy sestavení

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

Pokud jste tuto složku ještě nevytvořili, vytvořte task.json v BuildTaskFolder adresáři soubor.

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

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 ze zdroje dat REST Projekty vlastního koncového bodu.
  • Vyjádřeno v matici dataSourceBindings .
    • Cílem je název pole úkolu sestavení, které se má naplnit ("projekt").
    • EndpointId je název pole úkolu sestavení obsahujícího vlastní typ koncového bodu.
    • Volání REST je zvoleno 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í.

Image selektoru úlohy sestavení koncového bodu služby

Po přidání úlohy sestavení do kanálu ověřte, že se zobrazí 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í.

Image nastavení úlohy sestavení koncového bodu služby

Ověřování

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í pomocí certifikátů
  • Bez ověřování

Další kroky