Referência

Você está visualizando a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

A interface de linha de comando (CLI) apigee-remote-service-cli ajuda você a provisionar e gerenciar o adaptador da Apigee para Envoy.

Como vincular comandos

A vinculação associa um serviço implantado à malha do Istio a um produto da API da Apigee. A CLI permite criar, remover e listar vinculações.

Observação: na IU Create Product, você pode especificar um ou mais serviços com um produto. Isso é equivalente à criação da vinculação usando a CLI.

Adicionar uma vinculação

Adiciona uma vinculação de destino remoto a um produto da API.

Uso

Para a nuvem pública do Edge:

apigee-remote-service-cli bindings add [service_name] [product_name]  -o [organization] -e [environment] -u [username] -p [password] -c [config]

Para a nuvem privada do Edge:

apigee-remote-service-cli bindings add [service_name] [product_name]  -o [organization] -e [environment] -u [username] -p [password] -r [runtime] -c [config]

Para o híbrido da Apigee:

apigee-remote-service-cli bindings add [service_name] [product_name]  -o [organization] -e [environment] -t [token]

Parâmetros

Parâmetros Tipo Descrição
-c, --config String (Obrigatório) O caminho do arquivo de configuração do serviço remoto da Apigee. Dica: ao especificar essa opção, é possível omitir a maioria dos outros parâmetros de comando. Consulte Como usar a opção --config.
-e, --env String (Obrigatório) Um ambiente na organização.
-h, --help Exibe a ajuda dos parâmetros de comando.
--insecure Permite conexões de servidor não seguras ao usar SSL.
--legacy Defina essa sinalização se você estiver usando o Apigee Edge Cloud. Ela define os URLs de gerenciamento e ambiente de execução para o Edge Cloud.
--opdk Defina essa sinalização se estiver usando o Apigee Edge para nuvem privada.
-o, --org String (Obrigatório) Uma organização da Apigee. Você precisa ser um administrador da organização.
-p, --password String (Obrigatório apenas para autenticação básica) Sua senha da Apigee. Também é possível especificar a senha em um arquivo .netrc. Se fizer isso, você não precisará inserir sua senha na linha de comando. Consulte também Como usar o .netrc para credenciais.
-r, --runtime String URL de base do ambiente de execução da Apigee (obrigatório para híbrido ou opdk).
-t, --token String (Obrigatório apenas para autenticação de token OAuth) Um token OAuth ou SAML gerado a partir das informações da sua conta da Apigee. Para informações sobre como gerar tokens, consulte Como usar get_token e Acessar a API de gerenciamento com SAML.
-u, --username String (Obrigatório apenas para autenticação básica) Seu nome de usuário da Apigee (normalmente um endereço de e-mail). Também é possível especificar o nome de usuário em um arquivo .netrc. Se fizer isso, você não precisará inserir seu nome de usuário na linha de comando. Consulte também Como usar o .netrc para credenciais.
-v, --verbose (Opcional) Gera uma saída detalhada.

Exemplo

./apigee-remote-service-cli bindings add httpbin.org envoy-test -o myorg -e test -u user@example.com -c config.yaml -p xxxxxx
product envoy-test is now bound to: httpbin.org

Listar vinculações

Lista todos os produtos de API que estão vinculados ao serviço remoto.

Uso

Para a nuvem pública do Edge:

apigee-remote-service-cli bindings list -o [organization] -e [environment] -u [username] -p [password]

Para a nuvem privada do Edge:

apigee-remote-service-cli bindings list -o [organization] -e [environment] -u [username] -p [password] -r [runtime] 

Parâmetros

Parâmetros Tipo Descrição
-c, --config String (Obrigatório) O caminho do arquivo de configuração do serviço remoto da Apigee. Dica: ao especificar essa opção, é possível omitir a maioria dos outros parâmetros de comando. Consulte Como usar a opção --config.
-e, --env String (Obrigatório) Um ambiente na organização.
-h, --help Exibe a ajuda dos parâmetros de comando.
--insecure Permite conexões de servidor não seguras ao usar SSL.
--legacy Defina essa sinalização se você estiver usando o Apigee Edge Cloud. Ela define os URLs de gerenciamento e ambiente de execução para o Edge Cloud.
--opdk Defina essa sinalização se estiver usando o Apigee Edge para nuvem privada.
-o, --org String (Obrigatório) Uma organização da Apigee. Você precisa ser um administrador da organização.
-p, --password String (Obrigatório apenas para autenticação básica) Sua senha da Apigee. Também é possível especificar a senha em um arquivo .netrc. Se fizer isso, você não precisará inserir sua senha na linha de comando. Consulte também Como usar o .netrc para credenciais.
-r, --runtime String URL de base do ambiente de execução da Apigee (obrigatório para híbrido ou opdk).
-t, --token String (Obrigatório apenas para autenticação de token OAuth) Um token OAuth ou SAML gerado a partir das informações da sua conta da Apigee. Para informações sobre como gerar tokens, consulte Como usar get_token e Acessar a API de gerenciamento com SAML.
-u, --username String (Obrigatório apenas para autenticação básica) Seu nome de usuário da Apigee (normalmente um endereço de e-mail). Também é possível especificar o nome de usuário em um arquivo .netrc. Se fizer isso, você não precisará inserir seu nome de usuário na linha de comando. Consulte também Como usar o .netrc para credenciais.
-v, --verbose (Opcional) Gera uma saída detalhada.

Exemplo

apigee-remote-service-cli bindings list -o myorg -e test -u user@example.com -c config.yaml -p abc123
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:

Remover uma vinculação

Remova a vinculação do serviço remoto do Envoy de um produto de API.

Observação: você também pode remover uma vinculação do serviço remoto para o Envoy removendo o nome do serviço do produto na IU do Edge.

Uso

Para a nuvem pública do Edge:

apigee-remote-service-cli bindings remove [service_name] [product_name]  -o [organization] -e [environment] -u [username] -p [password] -c [config]

Para a nuvem privada do Edge:

apigee-remote-service-cli bindings remove [service_name] [product_name]  -o [organization] -e [environment] -u [username] -p [password] -r [runtime] -c [config]

Para o híbrido da Apigee:

apigee-remote-service-cli bindings remove [service_name] [product_name]  -o [organization] -e [environment] -t [token]

Parâmetros

Parâmetros Tipo Descrição
-c, --config String (Obrigatório) O caminho do arquivo de configuração do serviço remoto da Apigee. Dica: ao especificar essa opção, é possível omitir a maioria dos outros parâmetros de comando. Consulte Como usar a opção --config.
-e, --env String (Obrigatório) Um ambiente na organização.
-h, --help Exibe a ajuda dos parâmetros de comando.
--insecure Permite conexões de servidor não seguras ao usar SSL.
--legacy Defina essa sinalização se você estiver usando o Apigee Edge Cloud. Ela define os URLs de gerenciamento e ambiente de execução para o Edge Cloud.
--opdk Defina essa sinalização se estiver usando o Apigee Edge para nuvem privada.
-o, --org String (Obrigatório) Uma organização da Apigee. Você precisa ser um administrador da organização.
-p, --password String (Obrigatório apenas para autenticação básica) Sua senha da Apigee. Também é possível especificar a senha em um arquivo .netrc. Se fizer isso, você não precisará inserir sua senha na linha de comando. Consulte também Como usar o .netrc para credenciais.
-r, --runtime String URL de base do ambiente de execução da Apigee (obrigatório para híbrido ou opdk).
-t, --token String (Obrigatório apenas para autenticação de token OAuth) Um token OAuth ou SAML gerado a partir das informações da sua conta da Apigee. Para informações sobre como gerar tokens, consulte Como usar get_token e Acessar a API de gerenciamento com SAML.
-u, --username String (Obrigatório apenas para autenticação básica) Seu nome de usuário da Apigee (normalmente um endereço de e-mail). Também é possível especificar o nome de usuário em um arquivo .netrc. Se fizer isso, você não precisará inserir seu nome de usuário na linha de comando. Consulte também Como usar o .netrc para credenciais.
-v, --verbose (Opcional) Gera uma saída detalhada.

Exemplo

./apigee-remote-service-cli bindings remove httpbin.org envoy-test -o myorg -e test -u user@example.com -c config.yaml -p xxxxxx
product envoy-test is no longer bound to: httpbin.org

Comando de ajuda

A ajuda on-line está disponível para todos os comandos apigee-remote-service-cli. Basta digitar:

apigee-remote-service-cli help

Para receber ajuda sobre qualquer comando. Digite:

apigee-remote-service-cli [command] help

Exemplo:

apigee-remote-service-cli provision help

Comando de provisionamento

O comando apigee-remote-service-cli provision instala um proxy na sua organização do Apigee Edge, configura um certificado e gera as credenciais necessárias para configurar o adaptador da Apigee para Envoy.

Uso

Se você estiver na nuvem pública do Edge:

apigee-remote-service-cli provision -o $ORG -e $ENV -u $USERNAME -p $PASSWORD

Se você estiver na nuvem privada do Edge:

apigee-remote-service-cli provision --opdk -o $ORG -e $ENV -u $USERNAME --management $MGMT_SERVER_URL --runtime $RUNTIME_URL -p $PASSWORD

Parâmetros

Parâmetros Tipo Descrição
-c, --config String Caminho para o arquivo de configuração do serviço remoto da Apigee. Dica: ao especificar essa opção, é possível omitir a maioria dos outros parâmetros de comando. Consulte Como usar a opção --config.
-e, --environment String (Obrigatório) Um ambiente na organização.
-f, --force-proxy-install (Opcional) Força o proxy remote-service a ser reinstalado se já estiver instalado na sua organização.
-h, --help Exibe ajuda para os parâmetros de comando.
-k, --key String Especifica a chave retornada do comando apigee-remote-service-cli provision.
--legacy SaaS da Apigee (define o URL de gerenciamento e ambiente de execução)
-m, --management String (Obrigatório se você estiver na nuvem privada da Apigee) Seu URL base de gerenciamento da Apigee. Padrão: https://api.enterprise.apigee.com
-n, --namespace String emita configuração como um ConfigMap Envoy no namespace especificado.
--opdk String Apigee OPDK.
-o, --organization String (Obrigatório) Sua organização da Apigee. Você precisa ser um administrador da organização.
-p, --password String (Obrigatório apenas para autenticação básica) Sua senha da Apigee. Também é possível especificar a senha em um arquivo .netrc. Se fizer isso, você não precisará inserir sua senha na linha de comando. Consulte também Como usar o .netrc para credenciais.
--rotate-int int Se n for maior que 0, gere uma nova chave privada e mantenha n chaves públicas (somente Apigee híbrida)
-r, --runtime String URL de base do ambiente de execução da Apigee (obrigatório para híbrido ou opdk)
-s, --secret String Especifica o secret retornado do comando apigee-remote-service-cli provision.
--strength int (Opcional) Especifica a força da criptografia dos certificados SSL usados no provisionamento do adaptador. Padrão 2048
-t, --token String (Somente híbridos) Token OAuth ou SAML da Apigee.
-u, --username String (Obrigatório apenas para autenticação básica) Seu nome de usuário da Apigee (normalmente um endereço de e-mail). Também é possível especificar o nome de usuário em um arquivo .netrc. Consulte também Como usar .netrc para credenciais.
-v, --verbose (Opcional) Gera uma saída detalhada.
--virtual-hosts String Substitui os hosts virtuais padrão, que são "padrão, seguro". Use essa opção se tiver hosts virtuais especificados para seu ambiente de organização do Edge diferente desses padrões. Consulte a documentação do Edge para saber mais sobre hosts virtuais.
--years int (Opcional) O número de anos para o certificado SSL usado no provisionamento expirar. Padrão: 1

Exemplo

Certifique-se de capturar a saída do comando provision em um arquivo, que é usado como entrada para outro adaptador da Apigee para operações do Envoy.

Exemplo de nuvem pública do Edge:

apigee-remote-service-cli provision --legacy --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml

Exemplo de híbrido da Apigee

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

Comandos de token

É possível usar um token JWT para fazer chamadas de proxy de API autenticadas, em vez de usar uma chave de API. Os comandos de token permitem criar, inspecionar e fazer a rotação de tokens JWT para essa finalidade.

Criar um token JWT

É possível usar um token JWT para fazer chamadas de proxy de API autenticadas a um destino de serviço remoto. Consulte também Como usar a autenticação baseada em JWT.

Uso

Para nuvem pública de borda:
apigee-remote-service-cli token create -c [config_file] --id [consumer_key] --secret [consumer_secret] -o [org] -e [env]
Para nuvem privada de borda:
apigee-remote-service-cli token create -c [config_file] --id [consumer_key] --secret [consumer_secret] -r [runtime] -o [org] -e [env]
Para a Apigee híbrida:
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 Descrição
-c, --config String (Obrigatório) O caminho do arquivo de configuração do serviço remoto da Apigee. Dica: ao especificar essa opção, é possível omitir a maioria dos outros parâmetros de comando. Consulte Como usar a opção --config.
-e, --env String (Obrigatório) Um ambiente na organização.
-h, --help Exibe a ajuda dos parâmetros de comando.
--insecure Permite conexões de servidor não seguras ao usar SSL.
-o, --org String (Obrigatório) Uma organização da Apigee. Você precisa ser um administrador da organização.
-r, --runtime String URL de base do ambiente de execução da Apigee (necessário apenas para híbrido ou opdk).
-v, --verbose (Opcional) Produza uma saída detalhada.

Exemplo

apigee-remote-service-cli token create -o myorg -e test -i YUmlZAcBKNsTAelJqPZFl3sh58ObATX9 -s icTARgaKHqvUH1dq -c config.yaml

Saída

Em caso de sucesso, você verá uma saída de token JST semelhante a esta:
eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJhY2Nlc3NfdG9rZW4iOiJ0a2tlVzVKQTY2a0pZYTB4bFV1cVBsUW1BMU43IiwiYXVkIjoiaXN0aW8iLCJuYmYiOjE1MzAxMzg1OTEsImFwaV9wcm9kdWN0X2xpc3QiOlsiaXN0aW8tcHJvZHVjdCJdLCJhcHBsaWNhdGlvbl9uYW1lIjoiaXN0aW8tYXBwIiwiZGV2ZWxvcGVyX2VtYWlsIjoicFluZ2Zsb3lkQGdvb2dsZS5jb20iLCJpc3MiOiJodHRwczovL2FwaWdlZXNlYXJjaC10ZXN0LmFwaWdlZS5uZXQvaXN0aW8tYXV0aC90b2tlbiIsImV4cCI6MTUzMDEzOTQ5MSwiaWF0IjoxNTMwMTM4NTkxLCJqdGkiOiIxODgzMzViZi0wMmE4LTRjZGUsOGFkOS0yMWJmNDZjNmRjZDkiLCJjbGllbnRfaWQiOiJZVW1sWkFjQktOc1RBZWxKcVBZRmwzc2g1OE9iQVRYOSJ9.AL7pKSTmond-NSPRNNHVbIzTdAnZjOXcjQ-BbOJ_8lsQvF7PuiOUrGIhY5XTcJusisKgbCdtIxBl8Wq1EiQ_fKnUc3JYYOqzpTB5bGoFy0Yqbfu96dneuWyzgZnoQBkqwZkbQTIg7WNTGx1TJX-UTePvBPxAefiAbaEUcigX9tTsXPoRJZOTrm7IOeKpxpB_gQYkxQtV1_NbERxjTPyMbHdMWal9_xRVzSt7mpTGudMN9OR-VtQ1uXA67GOqhZWcOzq57qImOiCMbaoKnKUADevyWjX_VscN5ZZUtzQUQhTrmv8aR69-uVhMIPKp9juMyYKaYn2IsYZEeCWfhfV45Q

Inspecionar um token JWT

É possível inspecionar um token JWT com esse comando. Consulte também Inspecionar um token.

Uso

Para nuvem pública de borda:
apigee-remote-service-cli token inspect -o [organization] -e [environment] -f [token_file]
Para nuvem privada de borda:
apigee-remote-service-cli token inspect -o [organization] -e [environment] -f [token_file] --runtime [host_alias]
Para a Apigee híbrida:
apigee-remote-service-cli token inspect -o [organization] -e [environment] -f [token_file] --runtime [host_alias]

Parâmetros

Parâmetros Tipo Descrição
-c, --config String (Obrigatório) O caminho do arquivo de configuração do serviço remoto da Apigee. Dica: ao especificar essa opção, é possível omitir a maioria dos outros parâmetros de comando. Consulte Como usar a opção --config.
-e, --env String (Obrigatório) Um ambiente na organização.
-h, --help Exibe a ajuda dos parâmetros de comando.
--insecure Permite conexões de servidor não seguras ao usar SSL.
-o, --org String (Obrigatório) Uma organização da Apigee. Você precisa ser um administrador da organização.
-r, --runtime String URL de base do ambiente de execução da Apigee (necessário apenas para híbrido ou opdk).
-v, --verbose (Opcional) Produza uma saída detalhada.

Exemplo

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

Saída

Se tudo der certo, você vai receber uma resposta semelhante a esta:
{
	"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.

Fazer a rotação de um token JWT

Em algum momento depois de gerar um JWT inicial, talvez seja necessário alterar o par de chaves pública/privada armazenado pelo Apigee Edge no mapa de chave-valor (KVM, na sigla em inglês) criptografado. Esse processo de geração de um novo par de chaves é chamado de rotação de chaves. Quando você faz a rotação, um novo par de chaves privada/pública é gerado e armazenado na KVM "istio" na organização/ambiente do Apigee Edge. Além disso, a chave pública antiga é mantida com seu valor de ID de chave original.

Uso

Se você estiver na nuvem pública do Edge:
apigee-remote-service-cli token rotate-cert -c [config_file] -o [organization] -e [environment] -k [provision_key] -s [provision_secret] --kid [new_key_id]
Se você estiver na nuvem privada do Edge:
apigee-remote-service-cli token rotate-cert -o [organization] -e [environment] -u [username] -p [password] -k [provision_key] -s [provision_secret] --kid [new_key_id]

Parâmetros

Parâmetros Tipo Descrição
-c, --config String (Obrigatório) O caminho do arquivo de configuração do serviço remoto da Apigee. Dica: ao especificar essa opção, é possível omitir a maioria dos outros parâmetros de comando. Consulte Como usar a opção --config.
-e, --env String (Obrigatório) Um ambiente na organização.
-h, --help Exibe a ajuda dos parâmetros de comando.
--insecure Permite conexões de servidor não seguras ao usar SSL.
--truncate int Número de certificados que serão mantidos em jwks (padrão 2)
-o, --org String (Obrigatório) Uma organização da Apigee. Você precisa ser um administrador da organização.
-r, --runtime String URL de base do ambiente de execução da Apigee (obrigatório para híbrido ou opdk).
-v, --verbose (Opcional) Produza uma saída detalhada.

Exemplo

apigee-remote-service-cli token rotate-cert -c config.yaml -o myorg -e test -k 2e238ffa15dc5ab6a1e97868e7581f6c60ddb8575478582c256d8b7e5b2677a8 -s 51058077223fa7b683c3bea845c5cca138340d1d5583922b6d465f9f918a4b08

Saída

certificate successfully rotated

Como usar .netrc para credenciais

apigee-remote-service-cli extrai automaticamente o username e o password (para autenticação básica, quando necessário) de um arquivo .netrc no seu diretório principal, se você estiver na nuvem pública do Edge e tiver uma entrada para a máquina api.enterprise.apigee.com. Se você estiver na nuvem privada da Apigee, o valor da máquina é igual ao URL do management (por exemplo: http://192.162.55.100). Por exemplo, na nuvem pública do Edge:
machine api.enterprise.apigee.com
login jdoe@google.com
password abc123
Por exemplo, na nuvem privada do Edge:
machine http://192.162.55.100
login jdoe@google.com
password abc123

Comando de versão

Imprima a versão da CLI.

apigee-remote-service-cli version

Como usar a opção de comando --config

A opção --config especifica a localização do arquivo de configuração gerado pelo comando provision. Uma vantagem útil dessa opção é a possibilidade de ignorar a maioria dos outros parâmetros de comando, que a CLI extrai do arquivo de configuração. As opções incluem:
  • organização
  • ambiente
  • runtime
  • management
  • insecure
  • namespace
  • legacy
  • opdk

Por exemplo, execute o comando provision da seguinte maneira:

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

Arquivo de configuração

Nesta seção, mostramos um exemplo de arquivo de configuração com todas as opções disponíveis.

global:
  temp_dir: /tmp/apigee-istio
  keep_alive_max_connection_age: 10m
  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