Point de terminaison de service CLI Azure DevOps

Azure DevOps Services

Avec la az devops service-endpoint commande, vous pouvez créer et gérer différents types de connexions de service. Une connexion de service permet à Azure DevOps de communiquer avec un service externe, tel qu’Azure, Bitbucket, Kubernetes, Maven, GitHub, etc. Avec az devops service-endpoint, vous pouvez effectuer les tâches suivantes :

  • Créer un point de terminaison de service à l’aide d’un fichier de configuration
  • Mettre à jour un point de terminaison de service
  • Gérer les points de terminaison/connexions du service GitHub
  • Gérer les points de terminaison/connexions du service Azure Resource Manager
  • Répertorier les points de terminaison de service définis pour un projet
  • Obtenez les détails d’un point de terminaison de service.

Pour plus d’informations sur la syntaxe des commandes, consultez az devops service-endpoint. Pour obtenir une syntaxe sur l’API REST pour les points de terminaison de service, consultez Points de terminaison.

Vous pouvez également utiliser des commandes Azure CLI pour obtenir des détails, répertorier, supprimer et mettre à jour un point de terminaison de service. Consultez les exemples d’index vers Azure DevOps CLI, les points de terminaison de service ou les connexions de service.

Pour utiliser le portail web pour créer et modifier des connexions de service, consultez Gérer les connexions de service.

Créer un point de terminaison de service à l’aide d’un fichier de configuration

Pour créer un point de terminaison de service à l’aide d’un fichier de configuration, vous devez d’abord définir le fichier de configuration. Le contenu du fichier de configuration varie en fonction du type de connexion, tel qu’Azure Classic, Azure Data Explorer, Bitbucket Cloud, Chef, etc.

Format du fichier de configuration

La syntaxe suivante montre le json format du fichier de configuration.

{
  "data": {},
  "name": "MyNewServiceEndpoint",
  "type": "Generic",
  "url": "https://myserver",
  "authorization": {
    "parameters": {
      "username": "myusername",
      "password": "mysecretpassword"
    },
    "scheme": "UsernamePassword"
  },
  "isShared": false,
  "isReady": true,
  "serviceEndpointProjectReferences": [
    {
      "projectReference": {
        "id": "c7e5f0b3-71fa-4429-9fb3-3321963a7c06",
        "name": "TestProject"
      },
      "name": "MyNewServiceEndpoint"
    }
  ]
}

La table ci-dessous décrit chaque paramètre. Le type paramètre prend en charge la création de n’importe quel type de point de terminaison de service.

Paramètre Type Description
name string Définit le nom convivial du point de terminaison.
type string Définit le type du point de terminaison.
url string Définit l’URL du point de terminaison.
authorization EndpointAuthorization Définit les données d’autorisation pour communiquer avec le point de terminaison.
isShared booléen Indique si le point de terminaison de service est partagé avec d’autres projets ou non.
isReady booléen Indicateur d’état EndPoint.
serviceEndpointProjectReferences Informations de référence sur le projet Définit la référence du projet du point de terminaison de service.

Pour obtenir la liste des types pris en charge et leurs paramètres d’entrée requis, vous pouvez exercer l’entrée d’API REST suivante :

https://dev.azure.com/{organization}/_apis/serviceendpoint/types?api-version=6.0-preview.1

En outre, pour obtenir une description des types de connexions de service et d’autres paramètres dont ils peuvent avoir besoin, consultez Gérer les connexions de service, types de connexions de service courants.

Exécutez la commande create.

Vous créez un point de terminaison de service avec la az devops service-endpoint create commande.

az devops service-endpoint create --service-endpoint-configuration 
                                  [--encoding {ascii, utf-16be, utf-16le, utf-8}]
                                  [--org]
                                  [--project]

Paramètres

  • service-endpoint-configuration : obligatoire. Nom du json fichier de configuration avec la configuration du point de terminaison de service.
  • encodage : facultatif. Encodage du fichier d’entrée. La valeur par défaut est utf-8. Valeurs acceptées : ascii, utf-16be, utf-16le, utf-8.
  • org : URL de l’organisation Azure DevOps. Vous pouvez configurer l’organisation par défaut à l’aide de az devops configure -d organization=ORG_URL. Obligatoire s’il n’est pas configuré comme valeur par défaut.
  • projet : nom ou ID du projet. Vous pouvez configurer le projet par défaut en utilisant az devops configure -d project=NAME_OR_ID. Obligatoire s’il n’est pas configuré comme valeur par défaut.

Exemple

La commande suivante crée une connexion de service référençant le ServiceConnectionGeneric.json fichier.

az devops service-endpoint create --service-endpoint-configuration ./ServiceConnectionGeneric.json

Une fois la création réussie, un Id point de terminaison de service est affecté et une réponse similaire à la syntaxe suivante est retournée.

{
  "administratorsGroup": null,
  "authorization": {
    "parameters": {
      "password": null,
      "username": "myusername"
    },
    "scheme": "UsernamePassword"
  },
  "createdBy": {
    "descriptor": "aad.OGYxZTFlODEtMGJiNC03N2ZkLThkYzUtYjE3MTNiNTQ2MjQ4",
    "directoryAlias": null,
    "displayName": "Jamal Hartnett",
    "id": "60c83423-4eb6-4c5e-8395-1e71cb4aef4c",
    "imageUrl": "https://dev.azure.com/fabrikam/_apis/GraphProfile/MemberAvatars/aad.OGYxZTFlODEtMGJiNC03N2ZkLThkYzUtYjE3MTNiNTQ2MjQ4",
    "inactive": null,
    "isAadIdentity": null,
    "isContainer": null,
    "isDeletedInOrigin": null,
    "profileUrl": null,
    "uniqueName": "fabrikamfiber4@hotmail.com",
    "url": "https://spsprodwcus0.vssps.visualstudio.com/A0214b8cc-a36c-4b93-abbf-6348473c2f0a/_apis/Identities/60c83423-4eb6-4c5e-8395-1e71cb4aef4c"
  },
  "data": {},
  "description": null,
  "groupScopeId": null,
  "id": "3b6890ef-54b3-47ec-a907-a5d2f96237da",
  "isReady": true,
  "isShared": false,
  "name": "MyNewServiceEndpoint",
  "operationStatus": null,
  "owner": "library",
  "readersGroup": null,
  "serviceEndpointProjectReferences": [
    {
      "name": "MyNewServiceEndpoint",
      "projectReference": {
        "id": "677da0fb-b067-4f77-b89b-f32c12bb8617",
        "name": null
      }
    }
  ],
  "type": "Generic",
  "url": "https://myserver"
}

Créer un point de terminaison de service GitHub

Pour créer un point de terminaison de service GitHub, utilisez la az devops service-endpoint github create commande suivante :

az devops service-endpoint github create --github-url
                                         --name 
                                         [--org]
                                         [--project]

En mode interactif, la az devops service-endpoint github create commande demande un jeton GitHub PAT à l’aide d’un message d’invite, à des fins d’automatisation, définissez le jeton PAT GitHub à l’aide de la AZURE_DEVOPS_EXT_GITHUB_PAT variable d’environnement. Pour plus d’informations, consultez Se connecter avec un jeton d’accès personnel (PAT) .

Créer un point de terminaison de service Azure Resource Manager

Pour créer un point de terminaison de service Azure Resource Manager, utilisez la az devops service-endpoint azurerm create commande.

az devops service-endpoint azurerm create --azure-rm-service-principal-id
                                          --azure-rm-subscription-id
                                          --azure-rm-subscription-name
                                          --azure-rm-tenant-id
                                          --name
                                          [--azure-rm-service-principal-certificate-path] 
                                          [--org]
                                          [--project]

Utiliser une clé secrète client/mot de passe

En mode interactif, la az devops service-endpoint azurerm create commande demande un mot de passe/secret de principal de service à l’aide d’un message d’invite. À des fins d’automatisation, définissez le mot de passe/secret du principal de service à l’aide de la variable d’environnement AZURE_DEVOPS_EXT_AZURE_RM_SERVICE_PRINCIPAL_KEY .

export AZURE_DEVOPS_EXT_AZURE_RM_SERVICE_PRINCIPAL_KEY=<your_secret_here>
$env:AZURE_DEVOPS_EXT_AZURE_RM_SERVICE_PRINCIPAL_KEY=<your_secret_here>

Utiliser un certificat client

Si l’application Microsoft Entra utilise un certificat pour l’authentification, créez un fichier .pem pour le certificat et transmettez le chemin d’accès au fichier .pem à l’aide de l’argument --azure-rm-service-principal-certificate-path .

Vous pouvez créer un fichier a.pem à l’aide d’openssl :

openssl pkcs12 -in file.pfx -out file.pem -nodes -password pass:<password_here>