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:

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.

Ayarlanmış hizmet uç noktasının ekran görüntüsü.

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

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

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.

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

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

Sonraki adımlar