Share via


Importe las API a su centro de API desde Azure API Management

En este artículo se muestra cómo importar (agregar) API desde una instancia de Azure API Management al centro de API mediante la CLI de Azure. Agregar API de API Management al inventario de API ayuda a que sean reconocibles y accesibles para desarrolladores, administradores de programas de API y otras partes interesadas de su organización.

En este artículo se muestran dos opciones para usar la CLI de Azure para agregar API al centro de API desde API Management:

  • Opción 1: Exportación de una definición de API desde una instancia de API Management mediante el comando az apim api export. A continuación, importe la definición al centro de API.

    Entre las posibles formas de importar una definición de API exportada desde API Management se incluyen las siguientes:

  • Opción 2 : Importación de API directamente desde API Management al centro de API mediante el comando az apic service import-from-apim.

Después de importar definiciones de API o API desde API Management, puede agregar metadatos y documentación en el centro de API para ayudar a las partes interesadas a detectar, comprender y consumir la API.

Requisitos previos

  • Un centro de API en la suscripción de Azure. Si aún no ha creado uno, consulte Inicio rápido: Creación del centro de API.

  • Una o varias instancias de Azure API Management, en la misma suscripción o en otra. Al importar las API directamente desde API Management, la instancia de API Management y el centro de API deben estar en el mismo directorio. Si no ha creado uno, consulte Creación de una instancia de Azure API Management.

  • Una o varias API administradas en la instancia de API Management que quiere agregar al centro de API.

  • Para la CLI de Azure:

    Nota:

    Los comandos az apic requieren la extensión apic-extension CLI de Azure. Si no ha utilizado comandos az apic, la extensión se instala dinámicamente cuando ejecuta su primer comando az apic. Obtenga más información sobre las extensiones de la CLI de Azure.

    Nota:

    Los ejemplos de comandos de la CLI de Azure de este artículo se pueden ejecutar en PowerShell o en un shell de Bash. Cuando sea necesario debido a una sintaxis de variable diferente, se proporcionan ejemplos de comandos independientes para los dos shells.

Opción 1: Exportación de una definición de API desde API Management e importarla al centro de API

En primer lugar, exporte una API desde la instancia de API Management a una definición de API mediante el comando az apim api export. En función de su escenario, puede exportar la definición de API a un archivo local o una dirección URL.

Exportación de la API a un archivo de definición de API local

El siguiente comando de ejemplo exporta la API con el identificador my-api en la instancia myAPIManagement de la API. La API se exporta en formato OpenApiJson a un archivo de definición de OpenAPI local denominado specificationFile.json.

#! /bin/bash
az apim api export --api-id my-api --resource-group myResourceGroup \
    --service-name myAPIManagement --export-format OpenApiJsonFile \
    --file-path "/path/to/folder"
#! PowerShell syntax
az apim api export --api-id my-api --resource-group myResourceGroup `
    --service-name myAPIManagement --export-format OpenApiJsonFile `
    --file-path '/path/to/folder'

Exportación de la API a una dirección URL

En el ejemplo siguiente, az apim api export exporta la API con el identificador my-api en formato OpenApiJson a una dirección URL en Azure Storage. La dirección URL está disponible durante aproximadamente 5 minutos. Aquí, el valor de la dirección URL se almacena en la variable $link.

#! /bin/bash
link=$(az apim api export --api-id my-api --resource-group myResourceGroup \
    --service-name myAPIManagement --export-format OpenApiJsonUrl --query properties.value.link \
    --output tsv)
# PowerShell syntax
$link=$(az apim api export --api-id my-api --resource-group myResourceGroup `
    --service-name myAPIManagement --export-format OpenApiJsonUrl --query properties.value.link `
    --output tsv)

Registro de la API en el centro de API desde la definición de API exportada

Puede registrar una nueva API en el centro de API desde la definición exportada mediante el comando az apic api register.

El siguiente ejemplo registra una API en el centro de API myAPICenter a partir de un archivo de definición de OpenAPI local denominado definitionFile.json.

az apic api register --resource-group myResourceGroup --service myAPICenter --api-location "/path/to/definitionFile.json"

Importación de la definición de API a una API existente en el centro de API

En el ejemplo siguiente se usa el comando az apic api definition import-specification para importar una definición de API a una API existente en el centro de API de myAPICenter. Aquí, la definición de API se importa desde una dirección URL almacenada en la variable $link.

En este ejemplo se supone que tiene una API denominada my-api y una versión de API asociada v1-0-0 y una entidad de definición openapi en el centro de API. Si no lo hace, consulte Adición de API al centro de API.

#! /bin/bash
az apic api definition import-specification \
    --resource-group myResourceGroup --service myAPICenter \
    --api-id my-api --version-id v1-0-0 \
    --definition-id openapi --format "link" --value '$link' \
    --specification '{"name":"openapi","version":"3.0.2"}'
# PowerShell syntax
az apic api definition import-specification `
    --resource-group myResourceGroup --service myAPICenter `
    --api-id my-api --version-id v1-0-0 `
    --definition-id openapi --format "link" --value '$link' `
    --specification '{"name":"openapi","version":"3.0.2"}'

Opción 2: Importación de API directamente desde la instancia de API Management

A continuación se indican los pasos para importar las API desde la instancia de API Management al centro de API mediante el comando az apic service import-from-apim. Este comando es útil cuando desea importar varias API de API Management al centro de API, pero también puede usarla para importar una sola API.

Al agregar las API desde una instancia de API Management al centro de API mediante az apic service import-from-apim, se produce automáticamente lo siguiente:

  • Las versiones, definiciones e información de implementación de cada API se copian en el centro de API.
  • La API recibe un nombre de API generado por el sistema en el centro de API. Conserva su nombre para mostrar (título) de API Management.
  • La fase de ciclo de vida de la API se establece en Diseño.
  • Azure API Management se agrega como entorno.

Adición de una identidad administrada en el centro de API

En este escenario, el centro de API usa una identidad administrada para acceder a las API de la instancia de API Management. En función de sus necesidades, configure una identidad administrada asignada por el sistema o una o varias identidades administradas asignadas por el usuario.

En los siguientes ejemplos se muestra cómo configurar una identidad administrada asignada por el sistema mediante Azure Portal o la CLI de Azure. A un nivel alto, los pasos de configuración son similares para una identidad administrada asignada por el usuario.

  1. En el portal, vaya al centro de API.
  2. En el menú de la izquierda, en Seguridad, seleccione Identidades administradas.
  3. Seleccione Asignado por el sistema y establezca el estado en Activado.
  4. Seleccione Guardar.

Asignación de la identidad administrada al rol Lector del servicio API Management

Para permitir la importación de API, asigne la identidad administrada del centro de API al rol Lector del servicio API Management en la instancia de API Management. Puede usar el portal o la CLI de Azure.

  1. En el portal, vaya a la instancia de API Management.
  2. En el menú izquierdo, seleccione Control de acceso (IAM) .
  3. Seleccione + Agregar asignación de roles.
  4. En la página Agregar asignación de roles, establezca los valores como se indica a continuación:
    1. En la pestaña Rol: seleccione Lector del servicio API Management.
    2. En la pestaña Miembros, en Asignar acceso a, seleccione Identidad administrada> + Seleccionar miembros.
    3. En la página Seleccionar identidades administradas: seleccione la identidad administrada asignada por el sistema del centro de API que agregó en la sección anterior. Haga clic en Seleccionar.
    4. Seleccione Revisar y asignar.

Importación de API desde API Management

Use el comando az apic service import-from-apim para importar una o varias API desde la instancia de API Management al centro de API.

Nota:

  • Este comando depende de una identidad administrada configurada en el centro de API que tenga permisos de lectura para la instancia de API Management. Si no ha agregado ni configurado una identidad administrada, consulte Adición de una identidad administrada en el centro de API anteriormente en este artículo.

  • Si el centro de API tiene varias identidades administradas, el comando busca primero una identidad asignada por el sistema. Si no se encuentra ninguna, elige la primera identidad asignada por el usuario en la lista.

Importación de todas las API dentro de una instancia de API Management

Use un carácter comodín (*) para especificar todas las API de la instancia de API Management.

  1. Obtenga el identificador de recurso de la instancia de API Management mediante el comando az apim show.

    #! /bin/bash
    apimID=$(az apim show --name <apim-name> --resource-group <resource-group-name> --query id --output tsv)
    
    # PowerShell syntax
    $apimID=$(az apim show --name <apim-name> --resource-group <resource-group-name> --query id --output tsv)
    
  2. Use el comando az apic service import-from-apim para importar las API. Sustituya los nombres del centro de API y el grupo de recursos y use * para especificar todas las API de la instancia de API Management.

    az apic service import-from-apim --service-name <api-center-name> --resource-group <resource-group-name> --source-resource-ids $apimID/apis/*  
    

    Nota:

    Si la instancia de API Management tiene un gran número de API, la importación en el centro de API puede tardar algún tiempo.

Importación de una API específica desde una instancia de API Management

Especifique una API para importar con su nombre desde la instancia de API Management.

  1. Obtenga el identificador de recurso de la instancia de API Management mediante el comando az apim show.

    #! /bin/bash
    apimID=$(az apim show --name <apim-name> --resource-group <resource-group-name> --query id --output tsv)
    
    # PowerShell syntax
    $apimID=$(az apim show --name <apim-name> --resource-group <resource-group-name> --query id --output tsv)
    
  2. Use el comando az apic service import-from-apim para importar la API. Sustituya los nombres del centro de API y el grupo de recursos y especifique un nombre de API de la instancia de API Management.

    az apic service import-from-apim --service-name <api-center-name> --resource-group <resource-group-name> --source-resource-ids $apimID/apis/<api-name>    
    

    Nota:

    Especifique <api-name> mediante el nombre del recurso de API en la instancia de API Management, no el nombre para mostrar. Por ejemplo, petstore-api en lugar de Petstore API.

Después de importar las API desde API Management, puede ver y administrar las API importadas en el centro de API.