Hizmet uç noktası oluşturma
Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2017
Not
Hizmet uç noktaları, TFS 2018'de ve eski sürümlerde hizmet bağlantısı olarak adlandırılan bir hizmettir. Pipelines TFS 2018 ve eski sürümlerde tanımlar olarak adlandırılan bir uygulamadır.
Hizmet uç noktaları, dış Azure DevOps hizmetlere bağlanmanın bir yoludur. Bunlar, aşağıdaki özellikleri içeren ancak bunlarla sınırlı olmayan Azure DevOps bir özellik paketidir:
- Hizmet adı
- Açıklama
- Sunucu URL'si
- Sertifikalar veya belirteçler
- Kullanıcı adları ve parolalar
Uzantılar daha sonra bu hizmet üzerinde gerekli işlemleri yapmak üzere depolanan ayrıntıları almak için hizmet uç noktasını kullanabilir. Yeni bir Hizmet Noktası katkısı oluşturmak ve uzantıda kullanmak için bu kılavuzu izleyin.
İpucu
Uzantı SDK'sı kullanarak uzantı geliştirmeyle ilgili en Azure DevOps göz atın.
Göreve genel bakış
Aşağıdaki öğeleri içeren bir hizmet uç noktası Azure DevOps uzantı oluşturarak geliştirebilirsiniz:
- Bir derleme görevinin veya pano pencere öğesinin uç nokta tarafından tanımlanan hizmette/sunucuda REST uç noktasını çağırarak veri kaynaklarına sahip özel bir hizmet uç noktası.
- İki özelliği tanımlayan bir derleme görevi: HIZMET uç noktası, REST uç noktası veri kaynağından değerleri doldurulmuş bir & seçim listesidir.
Not
Kullanıcılar tarafından oluşturulan hizmet uç noktaları kuruluş düzeyinde değil proje düzeyinde oluşturulur.
Bu görevi tamamlamaya dahil olan adımlar:
- 1. Uzantı bildirim dosyasını oluşturma
- 2. task.json dosyasında derleme görevi işlem hattını oluşturma
Not
Bu öğretici, projenizin giriş dizinini "home" olarak ifade eder.
Bildirim dosyasını oluşturun: vss-extension.json
Bildirim dosyası özel uç noktayı tanımlar ve derleme görevi için task.json bildirimine bağlantılar sağlar.
Bu makalede bildirim dosyası oluşturma işlemi aşağıdaki üç parçaya ayrılmıştır:
Temel bildirim dosyası oluşturma
Uzantının dizininde bir json vss-extension.json dosyası home (örneğin, ) oluşturun.
{
"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"
}
]
}
Not
özelliğini güncelleştirmeniz publisher gerekir. "BuildTaskFolder" ise sonunda derleme görevi işlem hattımızı kuracak olan yoldur.
Özel uç nokta katkısını ekleme
Temel bildirim contributions içeriğinin targets dizisinin altına aşağıdaki diziyi ekleyin.
Önemli
- Hizmet bağlantı parametreleri, hizmet bağlantı kimliği tarafından getirilsin.
"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>"
}
},
],
Hizmet katkısını başarıyla eklediysanız, kuruluşa yeni bir hizmet uç noktası eklemeye çalışsanız Fabrikam uç noktasını görüyorsunuz.
Fabrikam uç noktasını kullanarak bir hizmet uç noktası oluşturun.

İpucu
authenticationSchemes olmadan inputDescriptor'lar ekleyebilirsiniz. Daha fazla bilgi için bkz. InputDescriptor arabirimi.
Derleme görevi katkısını ekleme
Önceki contributions adımdan dizinine aşağıdaki nesneyi sonuna ekleyin.
{
"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"
}
}
dataSource uç nokta URL'si, uç noktanın URL'sinde (veya sabit BIR URL'de) ve bazı diğer değerlerden hesaplanır. Bu öğreticide bu REST çağrısı hiçbir şey döndürecek ve hizmetinize yapmak istediğiniz REST çağrılarının yerini alacak şekilde değiştirilmiştir.
Rest URL'si için uç nokta URL'sinin diğer parametrelerini kullanabilirsiniz, örneğin bazı uç nokta özellikleri. Örneğin, subscriptionId adlı uç noktada bir özelliğimiz olduğunu varsayarak REST URL bunu şu söz dizimleriyle kullanabilir: $(endpoint.subscription).
Derleme görevi oluşturma
Dosya, task.json derleme görevinizi açıklar.
Not
Derleme görevi json dosyasının şemasını bulmak için derleme görevi başvurusuna göz atabilirsiniz.
Dizininize task.json bir BuildTaskFolder dosya oluşturun. Bu klasörü henüz oluşturmadıysanız şimdi oluşturun.
{
"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": "Fabfrikam Projects"
}
],
"execution": {
"Node": {
"target": "sample.js",
"argumentFormat": ""
},
"PowerShell3": {
"target": "sample.ps1"
}
}
}
task.json bileşenleri
Giriş nesnesi
Bu alan connectedService:Fabrikam.connectedService türünün ilkidir ve bunun bir uç nokta türü olduğunu ve Fabrikam'ın nesnenin adı olduğunu ifade eder.
Giriş nesnesi
Bu alan ikincidir. Bu bir seçim listesidir.
- Bu alan bir REST çağrısıyla doldurulur.
- "Proje" alanından alınan değerler özel uç noktanın "Projeler" REST veri kaynağından alınır.
- dizisinde
dataSourceBindingsifade edildi.- Hedef, doldurulması gereken derleme görevi alanı adıdır ("proje").
- endpointId, özel uç nokta türünü içeren derleme görevi alanı adıdır.
- REST çağrısı dataSourceName tarafından seçilir.
Derleme Görevini başarıyla eklediyebilirsiniz. Şimdi derleme işlem hattına görev eklerken Derleme Görevi'ne bakabilirsiniz.
Derleme Görevini işlem hattınıza eklediktan sonra oluşturduğunuz Fabrikam uç noktasını görebli olduğunu onaylayın. Gerçek bir hizmet kullanmamamızdan bu öğreticide projeler açılan listesinde boştur. Fabrikam'ı hizmetiniz ile değiştirdiğimiz zaman, derleme görevinizin içinde dinamik verileri REST API için Projects çağrısını kendi REST API çağrınız ile değiştirin.
Kimlik Doğrulaması
Hizmet uç noktası kimlik doğrulaması düzeni, dış hizmete bağlanmak için kullanılacak kimlik bilgilerini belirler. Daha fazla bilgi ve aşağıdaki kimlik doğrulama düzenlerini görmek için kimlik doğrulama düzenleri belgelerine bakın.
- Temel kimlik doğrulama
- Belirteç tabanlı kimlik doğrulaması
- Sertifika tabanlı kimlik doğrulaması
- Kimlik doğrulaması yok