Reference

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

La interfaz de línea de comandos (CLI) apigee-remote-service-cli te ayuda a aprovisionar y administrar el adaptador de Apigee para Envoy.

Comandos de vinculación

La vinculación asocia un servicio implementado en la malla de Istio con un producto de la API de Apigee. La CLI te permite crear, quitar, enumerar y verificar vinculaciones.

Mostrar lista de vinculaciones

Enumera todos los productos de API que están vinculados al servicio remoto.

Uso

Para Apigee Hybrid:

apigee-remote-service-cli bindings list -o [organization] -e [environment] -t [token] -r [runtime]

Parámetros

Parámetros Tipo Descripción
-c, --config String La ruta de acceso al archivo de configuración del servicio remoto de Apigee (obligatorio).
Sugerencia: esta marca te permite omitir la mayoría de los demás parámetros de comando, porque la CLI puede extraerlos directamente del archivo de configuración. Consulta Usa la opción --config.
-e, --env String Es un entorno en tu organización (obligatorio).
-h, --help Muestra ayuda para los parámetros del comando.
--insecure Permite conexiones inseguras de servidores cuando se usa SSL
--legacy Configura esta marca si usas Apigee Cloud. Configura las URL de administración y el entorno de ejecución para Edge Cloud.
--opdk Configura esta marca si usas Apigee para la nube privada.
-o, --org String Es una organización de Apigee (obligatorio). Debes ser administrador de una organización.
-p, --password String Es la contraseña de Apigee (obligatorio solo para la autenticación básica, no disponible para la híbrida). De manera opcional, puedes especificar la contraseña en un archivo .netrc. Si lo haces, no es necesario que proporciones tu contraseña en la línea de comandos. Consulta también Cómo usar .netrc para credenciales.
-r, --runtime String Una URL que incluye hostAlias para un host virtual definido en tu configuración híbrida. La URL debe comenzar con https://. Por ejemplo: https://apitest.apigee-hybrid-docs.net
-t, --token String (Obligatorio) Un token de acceso.
-u, --username String (Obligatorio solo para la autenticación básica, no disponible para la híbrida) Es tu nombre de usuario de Apigee (por lo general, una dirección de correo electrónico). De manera opcional, puedes especificar el nombre de usuario en un archivo .netrc. Si lo haces, no es necesario que proporciones tu nombre de usuario en la línea de comandos. Consulta también Cómo usar .netrc para credenciales.
-v, --verbose Proporciona un resultado detallado (opcional).

Ejemplo

apigee-remote-service-cli bindings list -o myorg -e test -c config.yaml \
-r $RUNTIME -t $TOKEN
PI Products
============
Bound
-----
envoy-test:
  Quota: 5 requests every 1 minute
  Target bindings:
    httpbin.org
  Paths:
httpbin:
  Quota: 5 requests every 1 minute
  Target bindings:
    httpbin.org
  Paths:
    /httpbin
    /

Unbound
-------
product-1:
  Quota: 100 requests every 1 hour
product-2:
  Quota: 1000 requests every 1 month
product-3:
product-4:

Verificar una vinculación

Este comando está obsoleto. En la versión 1.4, las apps para desarrolladores ya no requieren una asociación con productos de API que se usen con objetivos de servicio remoto.

Comando de ayuda

Se proporciona ayuda en línea para todos los comandos apigee-remote-service-cli. Escribe lo siguiente:

apigee-remote-service-cli help

Para obtener ayuda con cualquier comando, escribe lo siguiente:

apigee-remote-service-cli [command] help

Por ejemplo:

apigee-remote-service-cli provision help

Comando de aprovisionamiento

El comando apigee-remote-service-cli provision instala un proxy en tu organización de Apigee, configura un certificado y genera las credenciales que necesitarás para configurar Apigee Adapter for Envoy.

Uso

Para Apigee Hybrid:

apigee-remote-service-cli provision  -o $ORG -e $ENV -r $RUNTIME -t $TOKEN

Parámetros

Parámetros Tipo Descripción
--analytics-sa String Usa esta marca para especificar la ruta a un archivo de claves de cuenta de servicio de Google Cloud, en el que la cuenta de servicio tiene la función Apigee Analytics Agent. El adaptador usa la cuenta de servicio para subir datos de estadísticas directamente a Apigee. Si usas Apigee Hybrid, esta opción te permite instalar el entorno de ejecución híbrido en un clúster y el adaptador en otro. Esta marca solo está disponible para las instalaciones de Apigee Hybrid y Apigee en Google Cloud.
-c, --config String Ruta de acceso al archivo de configuración del servicio remoto de Apigee. Consulta también Usa la opción --config.
-e, --environment String Es un entorno en tu organización (obligatorio).
-f, --force-proxy-install (Opcional) Fuerza el proxy remote-service para que se vuelva a instalar si ya está instalado en tu organización.
-h, --help Muestra ayuda para los parámetros del comando.
-k, --key String Especifica el secreto que muestra el comando apigee-remote-service-cli provision.
--legacy Apigee Edge (configura la URL de la administración y el entorno de ejecución)
-m, --management String (Obligatorio si estás en la nube privada de Apigee) La URL de base de administración de Apigee. Valor predeterminado: https://api.enterprise.apigee.com
-n, --namespace String Emite la configuración como ConfigMap de Envoy en el espacio de nombres especificado. Predeterminado: Apigee
--opdk String Configura esta marca si usas Apigee para la nube privada.
-o, --organization String

Tu organización de Apigee (obligatorio).

-p, --password String Es la contraseña de Apigee (obligatorio solo para la autenticación básica, no disponible para la híbrida). De manera opcional, puedes especificar la contraseña en un archivo .netrc. Si lo haces, no es necesario que proporciones tu contraseña en la línea de comandos. Consulta también Cómo usar .netrc para credenciales.
--rotate-int int Si n > 0, genera una clave privada nueva y conserva n claves públicas (solo híbrido)
-r, --runtime String Una URL que incluye hostAlias para un host virtual definido en tu configuración híbrida. La URL debe comenzar con https://. Por ejemplo: https://apitest.apigee-hybrid-docs.net
-s, --secret String Especifica el secreto que muestra el comando apigee-remote-service-cli provision.
--strength int Especifica la intensidad de encriptación para los certificados SSL usados en el aprovisionamiento del adaptador (opcional). Predeterminada 2048
-t, --token String Token de OAuth o SAML de Apigee.
-u, --username String (Obligatorio solo para la autenticación básica, no disponible para la híbrida) Es tu nombre de usuario de Apigee (por lo general, una dirección de correo electrónico). De manera opcional, puedes especificar el nombre de usuario en un archivo .netrc. Consulta también Cómo usar .netrc para credenciales.
-v, --verbose Proporciona un resultado detallado (opcional).
--virtual-hosts String Anula los hosts virtuales predeterminados.
--years int La cantidad de años antes de que venza el certificado SSL que se usó en el aprovisionamiento (opcional). Predeterminado: 1

Ejemplo

Asegúrate de capturar el resultado del comando provision en un archivo, que se usa como entrada para otros adaptadores de Apigee para las operaciones de Envoy.

Ejemplo de Apigee Hybrid

apigee-remote-service-cli provision --organization $ORG --environment $ENV --runtime $RUNTIME \
--namespace $NAMESPACE --token $TOKEN > config.yaml

Comando de muestra

Crea un archivo de configuración de muestra

Crea archivos de configuración de muestra para las implementaciones nativas de Envoy o Istio.

Uso

apigee-remote-service-cli samples create [flags]

Descripción

El comando requiere un archivo config.yaml válido que se genere a través del aprovisionamiento. De forma predeterminada, los archivos de muestra se envían a un directorio llamado ./samples. El comando crea este directorio para ti.

Si usas Envoy nativo, el comando toma el host del servicio de destino y el nombre deseado para su clúster. También establece la conexión SSL personalizada del proxy de Envoy al clúster de servicio remoto si se proporciona una carpeta que contiene tls.key y tls.crt a través de --tls.

Si usas Istio, en que el proxy de Envoy actúa como un archivo adicional, si no se especifica el destino, se generará el ejemplo de httpbin. De lo contrario, eres responsable de preparar los archivos de configuración relacionados con la implementación de los servicios de destino.

Parámetros

Parámetros Tipo Descripción
-c, --config String Ruta de acceso al archivo de configuración del servicio remoto de Apigee (obligatorio).
Sugerencia: esta marca te permite omitir la mayoría de los demás parámetros de comando, porque la CLI puede extraerlos directamente del archivo de configuración. Consulta Usa la opción --config.
-f, --force Fuerza el directorio existente que se reemplazará.
-h, --help Muestra ayuda para los parámetros del comando.
--host El host del servicio de destino (predeterminado "httpbin.org")
-n, --name El nombre del servicio de destino (predeterminado "httpbin")
--out Este es el directorio en el que se crearán los archivos de configuración de muestra Valor predeterminado: ./samples
-t, --template

El nombre de la plantilla. Si realizas una implementación de Istio (solo híbrida), selecciona una de las opciones de Istio disponibles. Usa la opción nativa para las implementaciones nativas de Envoy. Las opciones disponibles son las siguientes:

  • istio-1.6 (predeterminada)
  • istio-1.7
  • native
--tls El directorio en el que se almacenarán la clave de TLS y los archivos crt.

Ejemplo

apigee-remote-service-cli samples create -c ./config.yaml

Enumera opciones de plantilla disponibles

Enumera las opciones disponibles para usar con el parámetro --templates.

Uso

apigee-remote-service-cli samples templates

Parámetros

Ninguno

Ejemplo

apigee-remote-service-cli samples templates
Supported templates (native is deprecated):
  envoy-1.14
  envoy-1.15
  envoy-1.16
  istio-1.5
  istio-1.6
  istio-1.7
  istio-1.8
  native

Comandos de token

Puedes usar un token JWT para realizar llamadas autenticadas al proxy de API, en lugar de usar una clave de API. Los comandos de token te permiten crear, inspeccionar y rotar tokens JWT para este propósito.

Crea un token JWT

Puedes usar un token JWT para realizar llamadas autenticadas del proxy de API a un destino de servicio remoto. Consulta también Usa la autenticación basada en JWT.

Uso

Para Apigee Hybrid:
apigee-remote-service-cli token create -c [config_file] --id [consumer_key] --secret [consumer_secret] -r [runtime] -o [org] -e [env]

Parámetros

Parámetros Tipo Descripción
-c, --config String La ruta de acceso al archivo de configuración del servicio remoto de Apigee (obligatorio).
Sugerencia: esta marca te permite omitir la mayoría de los demás parámetros de comando, porque la CLI puede extraerlos directamente del archivo de configuración. Consulta Usa la opción --config.
-e, --env String Es un entorno en tu organización (obligatorio).
-h, --help Muestra ayuda para los parámetros del comando.
--insecure Permite conexiones inseguras de servidores cuando se usa SSL
-o, --org String Es una organización de Apigee (obligatorio). Debes ser administrador de una organización.
-r, --runtime String Una URL que incluye hostAlias para un host virtual definido en tu configuración híbrida. La URL debe comenzar con https://. Por ejemplo: https://apitest.apigee-hybrid-docs.net
-v, --verbose Proporciona un resultado detallado (opcional).

Ejemplo

./apigee-remote-service-cli token create -o $ORG -e $ENV -i YUmlZAcBKNsTAelJqPZFl3sh58ObATX9 \
-s icTARgaKHqvUH1dq -c config.yaml -r $RUNTIME -t $TOKEN

Resultado

Cuando el proceso finalice, verás un resultado de token JST similar al siguiente:
eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJhY2Nlc3NfdG9rZW4iOiJ0a2tlVzVKQTY2a0pZYTB4bFV1cVBsUW1BMU43IiwiYXVkIjoiaXN0aW8iLCJuYmYiOjE1MzAxMzg1OTEsImFwaV9wcm9kdWN0X2xpc3QiOlsiaXN0aW8tcHJvZHVjdCJdLCJhcHBsaWNhdGlvbl9uYW1lIjoiaXN0aW8tYXBwIiwiZGV2ZWxvcGVyX2VtYWlsIjoicFluZ2Zsb3lkQGdvb2dsZS5jb20iLCJpc3MiOiJodHRwczovL2FwaWdlZXNlYXJjaC10ZXN0LmFwaWdlZS5uZXQvaXN0aW8tYXV0aC90b2tlbiIsImV4cCI6MTUzMDEzOTQ5MSwiaWF0IjoxNTMwMTM4NTkxLCJqdGkiOiIxODgzMzViZi0wMmE4LTRjZGUsOGFkOS0yMWJmNDZjNmRjZDkiLCJjbGllbnRfaWQiOiJZVW1sWkFjQktOc1RBZWxKcVBZRmwzc2g1OE9iQVRYOSJ9.AL7pKSTmond-NSPRNNHVbIzTdAnZjOXcjQ-BbOJ_8lsQvF7PuiOUrGIhY5XTcJusisKgbCdtIxBl8Wq1EiQ_fKnUc3JYYOqzpTB5bGoFy0Yqbfu96dneuWyzgZnoQBkqwZkbQTIg7WNTGx1TJX-UTePvBPxAefiAbaEUcigX9tTsXPoRJZOTrm7IOeKpxpB_gQYkxQtV1_NbERxjTPyMbHdMWal9_xRVzSt7mpTGudMN9OR-VtQ1uXA67GOqhZWcOzq57qImOiCMbaoKnKUADevyWjX_VscN5ZZUtzQUQhTrmv8aR69-uVhMIPKp9juMyYKaYn2IsYZEeCWfhfV45Q

Inspecciona un token JWT

Puedes inspeccionar un token JWT con este comando. Consulta también Inspecciona un token.

Uso

Para Apigee Hybrid:
apigee-remote-service-cli token inspect -o [organization] -e [environment] -f [token_file] --runtime [host_alias]

Parámetros

Parámetros Tipo Descripción
-c, --config String La ruta de acceso al archivo de configuración del servicio remoto de Apigee (obligatorio).
Sugerencia: esta marca te permite omitir la mayoría de los demás parámetros de comando, porque la CLI puede extraerlos directamente del archivo de configuración. Consulta Usa la opción --config.
-e, --env String Es un entorno en tu organización (obligatorio).
-h, --help Muestra ayuda para los parámetros del comando.
--insecure Permite conexiones inseguras de servidores cuando se usa SSL
-o, --org String Es una organización de Apigee (obligatorio). Debes ser administrador de una organización.
-r, --runtime String Una URL que incluye hostAlias para un host virtual definido en tu configuración híbrida. La URL debe comenzar con https://. Por ejemplo: https://apitest.apigee-hybrid-docs.net
-v, --verbose Proporciona un resultado detallado (opcional).

Ejemplo

apigee-remote-service-cli token inspect -c config.yaml <<< $TOKEN

Resultado

Si se realiza de forma correcta, verás un resultado similar al siguiente:
{
	"aud": [
		"remote-service-client"
	],
	"exp": 1591741549,
	"iat": 1591740649,
	"iss": "https://apigee-docs-test.apigee.net/remote-service/token",
	"jti": "99325d2e-6440-4278-9f7f-b252a1a79e53",
	"nbf": 1591740649,
	"access_token": "VfzpXzBGAQ07po0bPMKY4JgQjus",
	"api_product_list": [
		"httpbin"
	],
	"application_name": "httpbin",
	"client_id": "GYDGHy5TRpV8AejXCOlreP7dPVepA8H",
	"developer_email": "user@example.com",
	"scope": ""
}
verifying...
token ok.

Rota un token JWT

En algún momento, después de generar un JWT por primera vez, es posible que debas cambiar el par de claves públicas/privadas almacenado por Apigee en su mapa de par clave-valor encriptado (KVM). Este proceso de generación de un par de claves nuevo se denomina rotación de claves. Cuando se rotan las claves, se genera un nuevo par de claves públicas/privadas en el KVM “istio” en la organización o el entorno de Apigee. Además, la clave pública antigua se conserva junto con su valor de ID de clave original.

Uso

Para Apigee Hybrid:

apigee-remote-service-cli token rotate-cert -o [organization] -e [environment] -t [token] -r [runtime] -k [provision_key] -s [provision_secret] --kid [new_key_id]

Parámetros

Parámetros Tipo Descripción
-c, --config String La ruta de acceso al archivo de configuración del servicio remoto de Apigee (obligatorio).
Sugerencia: esta marca te permite omitir la mayoría de los demás parámetros de comando, porque la CLI puede extraerlos directamente del archivo de configuración. Consulta Usa la opción --config.
-e, --env String Es un entorno en tu organización (obligatorio).
-h, --help Muestra ayuda para los parámetros del comando.
--insecure Permite conexiones inseguras de servidores cuando se usa SSL
--truncate int Cantidad de certificados para conservar en jwks (predeterminado 2)
-o, --org String Es una organización de Apigee (obligatorio). Debes ser administrador de una organización.
-r, --runtime String Una URL que incluye hostAlias para un host virtual definido en tu configuración híbrida. La URL debe comenzar con https://. Por ejemplo: https://apitest.apigee-hybrid-docs.net
-v, --verbose Proporciona un resultado detallado (opcional).

Ejemplo

./apigee-remote-service-cli token create -o $ORG -e $ENV -i YUmlZAcBKNsTAelJqPZFl3sh58ObATX9 \
-s icTARgaKHqvUH1dq -c config.yaml -r $RUNTIME -t $TOKEN

Resultado

certificate successfully rotated

Usa .netrc para credenciales

apigee-remote-service-cli recoge automáticamente username y password (para la autenticación básica, en donde sea necesario) desde un archivo .netrc en tu directorio principal si estás en la nube pública de Edge y tienes una entrada para la máquina api.enterprise.apigee.com. Si estás en la nube privada de Apigee, el valor de la máquina es el mismo que tu URL de management (por ejemplo: http://192.162.55.100). Por ejemplo, en la nube pública de Edge, sucede lo siguiente:
machine api.enterprise.apigee.com
login jdoe@google.com
password abc123
Por ejemplo, en la nube privada de Edge:
machine http://192.162.55.100
login jdoe@google.com
password abc123

Comando de la versión

Imprime la versión de la CLI

apigee-remote-service-cli version

Usa la opción del comando --config

La opción --config especifica la ubicación del archivo de configuración que generó el comando provision. Un beneficio útil de esta opción es que te permite omitir la mayoría de los demás parámetros de comando, que la CLI extrae del archivo de configuración. Estas son algunas opciones:
  • organización
  • entorno
  • runtime
  • management
  • Inseguro
  • namespace
  • heredada
  • opdk

Por ejemplo, puedes ejecutar el comando provision de la siguiente manera:

apigee-remote-service-cli provision --config='old-config.yaml' > new-config.yaml

Archivo de configuración

En esta sección, se muestra un archivo de configuración de ejemplo con todas las opciones disponibles.

global:
  temp_dir: /tmp/apigee-istio
  keep_alive_max_connection_age: 1m
  api_address: :5000
  metrics_address: :5001
  tls:
    cert_file: tls.crt
    key_file: tls.key
tenant:
  internal_api: https://istioservices.apigee.net/edgemicro
  remote_service_api: https://org-test.apigee.net/remote-service
  org_name: org
  env_name: env
  key: mykey
  secret: mysecret
  client_timeout: 30s
  allow_unverified_ssl_cert: false
products:
  refresh_rate: 2m
analytics:
  legacy_endpoint: false
  file_limit: 1024
  send_channel_size: 10
  collection_interval: 10s
  fluentd_endpoint: apigee-udca-myorg-test.apigee.svc.cluster.local:20001
  tls:
    ca_file: /opt/apigee/tls/ca.crt
    cert_file: /opt/apigee/tls/tls.crt
    key_file: /opt/apigee/tls/tls.key
    allow_unverified_ssl_cert: false
auth:
  api_key_claim: claim
  api_key_cache_duration: 30m
  api_key_header: x-api-key
  api_target_header: :authority
  reject_unauthorized: true
  jwks_poll_interval: 0s
  jwt_provider_key: https://org-test.apigee.net/remote-service/token