Hizmet uç noktası oluşturma
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Hizmet uç noktaları, Azure DevOps'un dış sistemlere veya hizmetlere bağlanmanın bir yoludur. Azure DevOps tarafından güvenli bir şekilde depolanan ve aşağıdaki özellikleri içeren ancak bunlarla sınırlı olmayan bir özellik paketidir:
- Service name
- Açıklama
- Sunucu URL'si
- Sertifikalar veya belirteçler
- Kullanıcı adları ve parolalar
Uzantılar daha sonra hizmette gerekli işlemleri yapmak üzere depolanan ayrıntıları almak için hizmet uç noktasını kullanabilir. Yeni bir hizmet uç noktası katkısını oluşturmak ve uzantınızda kullanmak için bu kılavuzu izleyin.
İpucu
Azure DevOps Uzantı SDK'sını kullanarak uzantı geliştirmeyle ilgili en yeni belgelerimize göz atın.
Göreve genel bakış
Azure DevOps için aşağıdaki öğeleri içeren örnek bir uzantı oluşturarak bir hizmet uç noktası geliştirebilirsiniz:
- Bir derleme görevinin veya pano pencere öğesinin uç nokta tarafından tanımlanan hizmet/sunucuda REST uç noktasını çağırmasını sağlayan veri kaynaklarına sahip özel hizmet uç noktası.
- İki özelliği tanımlayan bir derleme görevi: REST uç noktası veri kaynağından değerlerin doldurulan hizmet uç noktası ve seçim listesi.
Not
Hizmet uç noktaları oluşturduğunuzda, bu durum kuruluş düzeyinde değil proje düzeyinde olur.
Bu görevi tamamlamak için gereken adımlar şunlardır:
- 1. Uzantı bildirim dosyasını oluşturma
- 2. derleme görevi işlem hattını task.json dosyasında oluşturun
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 üç bölüme ayrılmıştır:
Temel bildirim dosyası oluşturma
Uzantınızın dizininde home
bir json dosyası (vss-extension.json
ö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ştirin publisher
. BuildTaskFolder
, sonunda derleme görevi işlem hattımızı yerleştireceğimiz yoldur.
Özel uç nokta katkısını ekleme
Aşağıdaki contributions
diziyi temel bildirim içeriğinin dizisinin altına targets
ekleyin.
Önemli
Hizmet bağlantısı parametreleri hizmet bağlantı kimliğine göre getirilmelidir.
"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 eklediyseniz, kuruluşunuza yeni bir hizmet uç noktası eklemeyi denediğinizde Fabrikam uç noktasını görürsünüz.
Fabrikam uç noktasını kullanarak bir hizmet uç noktası oluşturun.
İpucu
authenticationSchemes olmadan inputDescriptors ekleyebilirsiniz. Daha fazla bilgi için bkz . InputDescriptor arabirimi.
Derleme görevi katkısını ekleme
Önceki adımdaki contributions
dizinin içine 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'sinden veya sabit bir URL'den ve diğer bazı değerlerden hesaplanır. Bu öğreticide, bu REST çağrısı hiçbir şey döndürmez ve hizmetinize yapmak istediğiniz REST çağrıları ile değiştirilmesi amaçlanmıştır.
REST URL'si için uç nokta URL'sinden başka parametreler( örneğin bazı uç nokta özellikleri) kullanmak mümkündür. Örneğin, uç noktada subscriptionId adlı bir özelliğimiz olduğunu varsayarsak REST URL bunu şu söz dizimiyle kullanabilir: $(endpoint.subscription).
Derleme görevi oluşturma
Dosya, task.json
derleme görevinizi açıklar.
Not
Daha fazla bilgi için aşağıdaki makalelere göz atın:
Dizininizde BuildTaskFolder
bir task.json
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, 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"
}
}
}
bileşenleri task.json
Giriş FabrikamService
nesnesi
Bu alan connectedService türünün ilkidir:Fabrikam.connectedService bunun bir uç nokta türü olduğunu ve Fabrikam'ın nesnenin adı olduğunu ifade eder.
Giriş project
nesnesi
Bu alan ikincidir. Bu bir seçim listesi.
- Bu alan bir REST çağrısıyla doldurulur.
- "proje" alanındaki değerler, özel uç noktanın "Projeler" REST veri kaynağından alınır.
- Dizide
dataSourceBindings
ifade edilir.- Hedef, doldurulacak derleme görev alanının adıdır ("proje").
- endpointId, özel uç nokta türünü içeren derleme görev alanının adıdır.
- REST çağrısı dataSourceName tarafından seçilir.
Derleme Görevini başarıyla eklediyseniz, artık derleme işlem hattına görev eklerken Derleme Görevi'ni görmeniz gerekir.
Derleme Görevini işlem hattınıza ekledikten sonra, oluşturduğunuz Fabrikam uç noktasını görebildiğini onaylayın. Gerçek bir hizmet kullanmadığımız için bu öğreticideki projeler açılan listesi boş. Fabrikam'ı hizmetinizle değiştirdikten sonra, derleme görevinizin içinde dinamik verileri kullanmak için Projeler çağrısını kendi REST API çağrınızla değiştirin.
Kimlik Doğrulaması
Bir hizmet uç noktasındaki kimlik doğrulama düzeni, dış hizmete bağlanmak için kullanılacak kimlik bilgilerini belirler. Daha fazla bilgi edinmek 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