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:

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.

Hizmet uç noktasının ayarlandığı ekran görüntüsü.

İ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.

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

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.

Hizmet uç noktası derleme görev seçici görüntüsü.

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.

Hizmet uç noktası derleme görevi kurulum görüntüsü.

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

Sonraki adımlar