Referências

Você está vendo a documentação do Apigee Edge.
Acesse a 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 listar e verificar as vinculações.

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: essa sinalização permite omitir a maioria dos outros parâmetros de comando, porque a CLI é capaz de extraí-los diretamente do arquivo de configuração. Consulte Como usar a opção --config.
-e, --env String (Obrigatório) Um ambiente na sua organização.
-h, --help Mostra ajuda para os parâmetros de comando.
--insecure Permitir 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.
--mfa Token de autorização multifator da Apigee (usado apenas com --legacy)
--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 (Somente nuvem privada) Especifica o URL de ambiente de execução da sua instância de nuvem privada.
-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) Produz 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:

Verificar uma vinculação

Esse comando está obsoleto. Na versão 1.4, os apps de desenvolvedores não exigem mais uma associação com produtos de API usados com destinos de serviço remotos.

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
--analytics-sa String Essa sinalização só está disponível para instalações da Apigee híbrida e da Apigee no Google Cloud.

Use essa sinalização para especificar o caminho para um arquivo de chave da conta de serviço do Google Cloud, em que a conta de serviço tem o papel Apigee Analytics Agent. O SA é usado pelo adaptador para fazer o upload direto dos dados de análise para a Apigee. Se você estiver usando a Apigee híbrida, essa opção permite instalar o ambiente de execução híbrido em um cluster e o adaptador em outro cluster.

-c, --config String Caminho para o arquivo de configuração do serviço remoto da Apigee. Consulte também Como usar a opção --config.
-e, --environment String (Obrigatório) Um ambiente na sua 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 Mostra ajuda para os parâmetros de comando.
-k, --key String Especifica a chave retornada do comando apigee-remote-service-cli provision.
--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.
--mfa Token de autorização multifator da Apigee (usado apenas com --legacy)
-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 Emite a configuração como um ConfigMap do Envoy no namespace especificado. Padrão: apigee
--opdk String OPDK da Apigee.
-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 híbrida).
-r, --runtime String (Somente nuvem privada) Especifica o URL de ambiente de execução da sua instância de nuvem privada.
-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íbrido) 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) Produz uma saída detalhada.
--virtual-hosts String Substitui os hosts virtuais padrão, que são default,secure. Use essa opção se você tiver hosts virtuais especificados no seu ambiente da organização do Edge diferentes dos 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

Capture a saída do comando provision em um arquivo, que é usado como entrada para outras operações do adaptador da Apigee para Envoy.

Exemplo de nuvem pública do Edge:

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

Comandos de amostra

Cria arquivos de configuração de amostra para implantações nativas do Envoy ou do Istio.

Uso

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

Descrição

O comando requer um arquivo config.yaml válido gerado por meio do provisionamento. Por padrão, os arquivos de amostra são gravados em um diretório chamado ./samples. O comando cria esse diretório para você.

Se você estiver usando o Envoy nativo, o comando usará o host do serviço de destino e o nome desejado no cluster dele. Ele também define a conexão SSL personalizada do proxy Envoy como o cluster do serviço remoto, se uma pasta contendo tls.key e tls.crt for especificada em --tls.

Se você estiver usando o Istio, em que o proxy Envoy funciona como um arquivo secundário, se o destino não for especificado, o exemplo de httpbin será gerado. Caso contrário, você será responsável por preparar os arquivos de configuração relacionados à implantação dos serviços de destino.

Parâmetros

Parâmetros Tipo Descrição
-c, --config String (Obrigatório) Caminho para o arquivo de configuração do serviço remoto da Apigee.
Dica: essa sinalização permite omitir a maioria dos outros parâmetros de comando, porque a CLI é capaz de extraí-los diretamente do arquivo de configuração. Consulte Como usar a opção --config.
-f, --force Força a substituição do diretório existente.
-h, --help Mostra ajuda para os parâmetros de comando.
--host O host do serviço de destino (padrão "httpbin.org")
-n, --name O nome do serviço de destino (padrão "httpbin")
--out O diretório em que os arquivos de configuração de amostra serão criados. Padrão: ./samples
-t, --template

O nome do modelo. Se você estiver fazendo uma implantação do Istio (somente Apigee híbrida), selecione uma das opções do Istio disponíveis. Use a opção nativa para implantações nativas do Envoy. Veja a seguir as opções disponíveis:

  • istio-1.6 (padrão)
  • istio-1.7
  • native
--tls O diretório em que os arquivos de chave TLS e crt serão armazenados.

Exemplo

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

Listar opções de modelo disponíveis

Lista as opções disponíveis para usar com o parâmetro --templates.

Uso

apigee-remote-service-cli samples templates

Parâmetros

Nenhum

Exemplo

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

É 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 a 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 a nuvem privada do Edge:
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: essa sinalização permite omitir a maioria dos outros parâmetros de comando, porque a CLI é capaz de extraí-los diretamente do arquivo de configuração. Consulte Como usar a opção --config.
-e, --env String (Obrigatório) Um ambiente na sua organização.
-h, --help Mostra ajuda para os parâmetros de comando.
--insecure Permitir 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 (Somente nuvem privada) Especifica o URL de ambiente de execução da sua instância de nuvem privada.
-v, --verbose (Opcional) Produz uma saída detalhada.

Exemplo

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

Saída

Se houver êxito, 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 a nuvem pública de borda:
apigee-remote-service-cli token inspect -o [organization] -e [environment] -f [token_file]
Para a nuvem privada do Edge:
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: essa sinalização permite omitir a maioria dos outros parâmetros de comando, porque a CLI é capaz de extraí-los diretamente do arquivo de configuração. Consulte Como usar a opção --config.
-e, --env String (Obrigatório) Um ambiente na sua organização.
-h, --help Mostra ajuda para os parâmetros de comando.
--insecure Permitir 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 (Somente nuvem privada) Especifica o URL de ambiente de execução da sua instância de nuvem privada.
-v, --verbose (Opcional) Produz uma saída detalhada.

Exemplo

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

Saída

Em caso de êxito, você verá uma saída 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 de borda:
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: essa sinalização permite omitir a maioria dos outros parâmetros de comando, porque a CLI é capaz de extraí-los diretamente do arquivo de configuração. Consulte Como usar a opção --config.
-e, --env String (Obrigatório) Um ambiente na sua organização.
-h, --help Mostra ajuda para os parâmetros de comando.
--insecure Permitir conexões de servidor não seguras ao usar SSL
--truncate int Número de certificados a serem 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 (Somente nuvem privada) Especifica o URL de ambiente de execução da sua instância de nuvem privada.
-v, --verbose (Opcional) Produz 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 será o mesmo do seu URL management (por exemplo: http://192.162.55.100). Por exemplo, na nuvem pública de borda:
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:
  • organization
  • environment
  • runtime
  • management
  • insecure
  • namespace
  • legacy
  • opdk

Por exemplo, é possível executar o comando provision desta forma:

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: 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