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.json
napří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.
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í.
Poznámka:
Další informace najdete v následujících článcích:
- Odkaz na úlohu sestavení pro vyhledání schématu pro soubor JSON úlohy sestavení
- Přidání rozšíření vlastních úloh kanálů
- Integrace úlohy 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, 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 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í.
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í.
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í