Referencia

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

Consulta la documentación de Apigee Edge.

La apigee-remote-service-cli interfaz de línea de comandos (CLI) te ayuda a aprovisionar y gestionar Apigee Adapter for Envoy.

Comandos de enlace

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

Mostrar vínculos

Muestra todos los productos de API vinculados al servicio remoto.

Uso

En 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 Cadena Obligatorio. Ruta al archivo de configuración de Apigee Remote Service.
Nota: Esta marca te permite omitir la mayoría de los demás parámetros de comando, ya que la CLI puede extraerlos directamente del archivo de configuración. Consulta la sección Usar la opción --config.
-e, --env Cadena Obligatorio: un entorno de tu organización.
-h, --help Muestra la ayuda de los parámetros del comando.
--insecure Permitir conexiones de servidor no seguras al usar SSL
--legacy Define esta marca si usas Apigee Cloud. Define las URLs de gestión y de tiempo de ejecución de Edge Cloud.
--opdk Define esta marca si usas Apigee para nubes privadas.
-o, --org Cadena Obligatorio. Una organización de Apigee. Debes ser administrador de la organización.
-p, --password Cadena (Obligatorio solo para la autenticación básica; no disponible para la autenticación híbrida) Tu contraseña de Apigee. También puedes especificar la contraseña en un archivo .netrc. Si lo haces, no tendrás que proporcionar tu contraseña en la línea de comandos. Consulta también Usar .netrc para las credenciales.
-r, --runtime Cadena Una URL que incluya el hostAlias de un host virtual definido en tu configuración híbrida. La URL debe empezar por https://. Por ejemplo: https://apitest.apigee-hybrid-docs.net
-t, --token Cadena Obligatorio: un token de acceso.
-u, --username Cadena (Obligatorio solo para la autenticación básica; no disponible para la autenticación híbrida) Tu nombre de usuario de Apigee (normalmente, una dirección de correo electrónico). También puedes especificar el nombre de usuario en un archivo .netrc. Si lo haces, no tendrás que proporcionar tu nombre de usuario en la línea de comandos. Consulta también Usar .netrc para las credenciales.
-v, --verbose (Opcional) Genera una salida detallada.

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

Verifica que el producto de API enlazado especificado y sus aplicaciones de desarrollador asociadas también tengan un producto de servicio remoto asociado. Si no especifica ningún nombre de producto de la API, el comando comprobará todos los productos vinculados.

Uso

En Apigee Hybrid:

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

product_name es opcional. Si no especifica un nombre de producto, se comprobarán todos los productos vinculados.

Parámetros

Parámetros Tipo Descripción
-c, --config Cadena Obligatorio. Ruta al archivo de configuración de Apigee Remote Service.
Nota: Esta marca te permite omitir la mayoría de los demás parámetros de comando, ya que la CLI puede extraerlos directamente del archivo de configuración. Consulta la sección Usar la opción --config.
-e, --env Cadena Obligatorio: un entorno de tu organización.
-h, --help Muestra la ayuda de los parámetros del comando.
--insecure Permitir conexiones de servidor no seguras al usar SSL
--legacy Define esta marca si usas Apigee Cloud. Define las URLs de gestión y de tiempo de ejecución de Edge Cloud.
--opdk Define esta marca si usas Apigee para nubes privadas.
-o, --org Cadena Obligatorio. Una organización de Apigee. Debes ser administrador de la organización.
-r, --runtime Cadena Una URL que incluya el hostAlias de un host virtual definido en tu configuración híbrida. La URL debe empezar por https://. Por ejemplo: https://apitest.apigee-hybrid-docs.net
-t, --token Cadena Obligatorio: un token de acceso.
-v, --verbose (Opcional) Genera una salida detallada.

Ejemplo

/apigee-remote-service-cli bindings verify my_product -o $ORG -e $ENV \
-c config.yaml -r $RUNTIME -t $TOKEN

Verifying apps associated with product my-product:
  app my-app associated with product my-product is verified

Comando de ayuda

Se ofrece ayuda online para todos los comandos de apigee-remote-service-cli. Solo tienes que escribir:

apigee-remote-service-cli help

Para obtener ayuda sobre 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 el adaptador de Apigee para Envoy.

Uso

En Apigee Hybrid:

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

Parámetros

Parámetros Tipo Descripción
--analytics-sa Cadena Usa esta marca para especificar la ruta a un archivo de clave de cuenta de servicio de Google Cloud, donde la cuenta de servicio tenga el rol Apigee Analytics Agent. El SA lo usa el adaptador para subir directamente datos analíticos 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 híbridas de Apigee y Apigee en Google Cloud.
-c, --config Cadena Ruta al archivo de configuración del servicio remoto de Apigee. Consulta también Usar la opción --config.
-e, --environment Cadena Obligatorio: un entorno de tu organización.
-f, --force-proxy-install (Opcional) Fuerza la reinstalación del proxy remote-service si ya está instalado en tu organización.
-h, --help Muestra la ayuda de los parámetros del comando.
-k, --key Cadena Especifica la clave devuelta por el comando apigee-remote-service-cli provision.
--legacy Apigee Edge (define la URL de gestión y de tiempo de ejecución)
-m, --management Cadena Obligatorio si usas Apigee Private Cloud. Es la URL base de gestión de Apigee. Predeterminado: https://api.enterprise.apigee.com
-n, --namespace Cadena Emite la configuración como un ConfigMap de Envoy en el espacio de nombres especificado. Valor predeterminado: apigee
--opdk Cadena Define esta marca si usas Apigee para nubes privadas.
-o, --organization Cadena Obligatorio: tu organización de Apigee. Debes ser administrador de la organización.
-p, --password Cadena (Obligatorio solo para la autenticación básica; no disponible para la autenticación híbrida) Tu contraseña de Apigee. También puedes especificar la contraseña en un archivo .netrc. Si lo haces, no tendrás que proporcionar tu contraseña en la línea de comandos. Consulta también Usar .netrc para las credenciales.
--rotate-int int Si n > 0, genera una clave privada y conserva n claves públicas (solo híbrido)
-r, --runtime Cadena Una URL que incluya el hostAlias de un host virtual definido en tu configuración híbrida. La URL debe empezar por https://. Por ejemplo: https://apitest.apigee-hybrid-docs.net
-s, --secret Cadena Especifica el secreto devuelto por el comando apigee-remote-service-cli provision.
--strength int (Opcional) Especifica la seguridad del cifrado de los certificados SSL que se utilizan para aprovisionar el adaptador. Predeterminado 2048
-t, --token Cadena Token de OAuth o SAML de Apigee.
-u, --username Cadena (Obligatorio solo para la autenticación básica; no disponible para la autenticación híbrida) Tu nombre de usuario de Apigee (normalmente, una dirección de correo electrónico). También puedes especificar el nombre de usuario en un archivo .netrc. Consulta también Usar .netrc para las credenciales.
-v, --verbose (Opcional) Genera una salida detallada.
--virtual-hosts Cadena Anula los hosts virtuales predeterminados.
--years int (Opcional) Número de años que faltan para que caduque el certificado SSL usado en el aprovisionamiento. Valor predeterminado: 1

Ejemplo

Asegúrate de capturar la salida del comando provision en un archivo, que se usa como entrada para otras operaciones de Apigee Adapter for Envoy.

Ejemplo de Apigee Hybrid:

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

Comando Samples

Crear un archivo de configuración de ejemplo

Crea archivos de configuración de ejemplo para 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 generado mediante el aprovisionamiento. De forma predeterminada, los archivos de ejemplo se generan en un directorio llamado ./samples. El comando crea este directorio.

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

Si utilizas Istio, donde el proxy de Envoy actúa como un sidecar, si no se especifica el destino, se generará el ejemplo httpbin. De lo contrario, serás responsable de preparar los archivos de configuración relacionados con el despliegue de los servicios de destino.

Parámetros

Parámetros Tipo Descripción
-c, --config Cadena Obligatorio. Ruta al archivo de configuración del servicio remoto de Apigee.
Nota: Esta marca te permite omitir la mayoría de los demás parámetros de comando, ya que la CLI puede extraerlos directamente del archivo de configuración. Consulta la sección Usar la opción --config.
-f, --force Fuerza la sobrescritura del directorio.
-h, --help Muestra la ayuda de los parámetros del comando.
--host El host del servicio de destino (el valor predeterminado es "httpbin.org").
-n, --name Nombre del servicio de destino (el valor predeterminado es "httpbin").
--out Directorio en el que se crearán los archivos de configuración de ejemplo. Predeterminado: ./samples
-t, --template

El nombre de la plantilla. Si vas a hacer 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:

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

Ejemplo

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

Lista de opciones de plantilla disponibles

Lista 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 hacer llamadas autenticadas a proxies de API en lugar de usar una clave de API. Los comandos de token te permiten crear, inspeccionar y rotar tokens JWT con este fin.

Crear un token JWT

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

Uso

En 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 Cadena Obligatorio. Ruta al archivo de configuración de Apigee Remote Service.
Nota: Esta marca te permite omitir la mayoría de los demás parámetros de comando, ya que la CLI puede extraerlos directamente del archivo de configuración. Consulta la sección Usar la opción --config.
-e, --env Cadena Obligatorio: un entorno de tu organización.
-h, --help Muestra la ayuda de los parámetros del comando.
--insecure Permite conexiones de servidor no seguras al usar SSL.
-o, --org Cadena Obligatorio. Una organización de Apigee. Debes ser administrador de la organización.
-r, --runtime Cadena Una URL que incluya el hostAlias de un host virtual definido en tu configuración híbrida. La URL debe empezar por https://. Por ejemplo: https://apitest.apigee-hybrid-docs.net
-v, --verbose (Opcional) Genera una salida detallada.

Ejemplo

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

Salida

Si la operación se realiza correctamente, verá un token JST similar al siguiente:
eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJhY2Nlc3NfdG9rZW4iOiJ0a2tlVzVKQTY2a0pZYTB4bFV1cVBsUW1BMU43IiwiYXVkIjoiaXN0aW8iLCJuYmYiOjE1MzAxMzg1OTEsImFwaV9wcm9kdWN0X2xpc3QiOlsiaXN0aW8tcHJvZHVjdCJdLCJhcHBsaWNhdGlvbl9uYW1lIjoiaXN0aW8tYXBwIiwiZGV2ZWxvcGVyX2VtYWlsIjoicFluZ2Zsb3lkQGdvb2dsZS5jb20iLCJpc3MiOiJodHRwczovL2FwaWdlZXNlYXJjaC10ZXN0LmFwaWdlZS5uZXQvaXN0aW8tYXV0aC90b2tlbiIsImV4cCI6MTUzMDEzOTQ5MSwiaWF0IjoxNTMwMTM4NTkxLCJqdGkiOiIxODgzMzViZi0wMmE4LTRjZGUsOGFkOS0yMWJmNDZjNmRjZDkiLCJjbGllbnRfaWQiOiJZVW1sWkFjQktOc1RBZWxKcVBZRmwzc2g1OE9iQVRYOSJ9.AL7pKSTmond-NSPRNNHVbIzTdAnZjOXcjQ-BbOJ_8lsQvF7PuiOUrGIhY5XTcJusisKgbCdtIxBl8Wq1EiQ_fKnUc3JYYOqzpTB5bGoFy0Yqbfu96dneuWyzgZnoQBkqwZkbQTIg7WNTGx1TJX-UTePvBPxAefiAbaEUcigX9tTsXPoRJZOTrm7IOeKpxpB_gQYkxQtV1_NbERxjTPyMbHdMWal9_xRVzSt7mpTGudMN9OR-VtQ1uXA67GOqhZWcOzq57qImOiCMbaoKnKUADevyWjX_VscN5ZZUtzQUQhTrmv8aR69-uVhMIPKp9juMyYKaYn2IsYZEeCWfhfV45Q

Inspeccionar un token JWT

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

Uso

En 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 Cadena Obligatorio. Ruta al archivo de configuración de Apigee Remote Service.
Nota: Esta marca te permite omitir la mayoría de los demás parámetros de comando, ya que la CLI puede extraerlos directamente del archivo de configuración. Consulta la sección Usar la opción --config.
-e, --env Cadena Obligatorio: un entorno de tu organización.
-h, --help Muestra la ayuda de los parámetros del comando.
--insecure Permite conexiones de servidor no seguras al usar SSL.
-o, --org Cadena Obligatorio. Una organización de Apigee. Debes ser administrador de la organización.
-r, --runtime Cadena Una URL que incluya el hostAlias de un host virtual definido en tu configuración híbrida. La URL debe empezar por https://. Por ejemplo: https://apitest.apigee-hybrid-docs.net
-v, --verbose (Opcional) Genera una salida detallada.

Ejemplo

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

Salida

Si la operación se realiza correctamente, 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.

Rotar un token JWT

En algún momento después de generar un JWT por primera vez, es posible que tengas que cambiar el par de claves pública y privada que Apigee almacena en su mapa de valores clave (KVM) cifrado. Este proceso de generación de un nuevo par de claves se denomina "rotación de claves". Cuando rotas las claves, se genera un nuevo par de claves privada/pública y se almacena en el KVM "istio" de tu organización o entorno de Apigee. Además, la clave pública antigua se conserva junto con su valor de ID de clave original.

Uso

En 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 Cadena Obligatorio. Ruta al archivo de configuración de Apigee Remote Service.
Nota: Esta marca te permite omitir la mayoría de los demás parámetros de comando, ya que la CLI puede extraerlos directamente del archivo de configuración. Consulta la sección Usar la opción --config.
-e, --env Cadena Obligatorio: un entorno de tu organización.
-h, --help Muestra la ayuda de los parámetros del comando.
--insecure Permitir conexiones de servidor no seguras al usar SSL
--truncate int Número de certificados que se conservarán en jwks (el valor predeterminado es 2).
-o, --org Cadena Obligatorio. Una organización de Apigee. Debes ser administrador de la organización.
-r, --runtime Cadena Una URL que incluya el hostAlias de un host virtual definido en tu configuración híbrida. La URL debe empezar por https://. Por ejemplo: https://apitest.apigee-hybrid-docs.net
-v, --verbose (Opcional) Genera una salida detallada.

Ejemplo

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

Salida

certificate successfully rotated

Usar .netrc para las credenciales

apigee-remote-service-cli recoge automáticamente el username y el password (para la autenticación básica cuando sea necesario) de un archivo .netrc de tu directorio principal si usas Edge Public Cloud y tienes una entrada para la máquina api.enterprise.apigee.com. Si usas Apigee Private Cloud, el valor de la máquina es el mismo que el de tu URL management (por ejemplo, http://192.162.55.100). Por ejemplo, en Edge Public Cloud:
machine api.enterprise.apigee.com
login jdoe@google.com
password abc123
Por ejemplo, en Edge Private Cloud:
machine http://192.162.55.100
login jdoe@google.com
password abc123

Comando de versión

Imprime la versión de la CLI.

apigee-remote-service-cli version

Usar la opción de comando --config

La opción --config especifica la ubicación del archivo de configuración generado por el comando provision. Una de las ventajas de esta opción es que te permite omitir la mayoría de los demás parámetros de comandos, que la CLI extrae del archivo de configuración. Entre estas opciones, se incluyen las siguientes:
  • organización
  • entorno
  • runtime
  • management
  • inseguro
  • espacio de nombres
  • antiguo
  • opdk

Por ejemplo, puedes ejecutar el comando provision de esta forma:

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