Referência

Esta página aplica-se ao Apigee e ao Apigee Hybrid.

Veja a documentação do Apigee Edge.

A apigee-remote-service-cliinterface de linhas de comando (CLI) ajuda a aprovisionar e gerir o adaptador do Apigee para o Envoy.

Comandos de associação

A associação associa um serviço implementado na malha do Istio a um produto de API do Apigee. A CLI permite-lhe criar, remover, listar e validar associações.

Listar associações

Indique todos os produtos API associados ao serviço remoto.

Utilização

Para o Apigee Hybrid:

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

Parâmetros

Parâmetros Tipo Descrição
-c, --config String (Obrigatório) O caminho para o ficheiro de configuração do serviço remoto do Apigee.
Sugestão: esta flag permite omitir a maioria dos outros parâmetros de comando, porque a CLI consegue extraí-los diretamente do ficheiro de configuração. Consulte Usar a opção --config.
-e, --env String (Obrigatório) Um ambiente na sua organização.
-h, --help Apresenta ajuda para os parâmetros do comando.
--insecure Permitir ligações inseguras ao servidor quando usar SSL
--legacy Defina esta flag se estiver a usar o Apigee Cloud. Define os URLs de gestão e de tempo de execução para a nuvem de limite.
--opdk Defina esta flag se estiver a usar o Apigee para a nuvem privada.
-o, --org String (Obrigatório) Uma organização do Apigee. Tem de ser um administrador da organização.
-p, --password String (Obrigatório apenas para a autenticação básica, não disponível para a híbrida) A sua palavra-passe do Apigee. Opcionalmente, pode especificar a palavra-passe num ficheiro .netrc. Se o fizer, não tem de introduzir a palavra-passe na linha de comandos. Veja também Usar .netrc para credenciais.
-r, --runtime String Um URL que inclui o hostAlias para um anfitrião virtual definido na sua configuração híbrida. O URL tem de começar por https://. Por exemplo: https://apitest.apigee-hybrid-docs.net
-t, --token String (Obrigatório) Um token de acesso.
-u, --username String (Obrigatório apenas para a autenticação básica; não disponível para a autenticação híbrida) O seu nome de utilizador do Apigee (normalmente, um endereço de email). Opcionalmente, pode especificar o nome de utilizador num ficheiro .netrc. Se o fizer, não tem de fornecer o seu nome de utilizador na linha de comandos. Consulte também o artigo Usar o .netrc para credenciais.
-v, --verbose (Opcional) Produz uma saída detalhada.

Exemplo

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:

Valide uma associação

Verifique se o produto de API associado especificado e as respetivas apps de programador associadas também têm um produto de serviço remoto associado. Se não especificar um nome de produto da API, o comando verifica todos os produtos associados.

Utilização

Para o Apigee Hybrid:

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

Onde product_name é opcional. Se não especificar um nome do produto, todos os produtos associados são verificados.

Parâmetros

Parâmetros Tipo Descrição
-c, --config String (Obrigatório) O caminho para o ficheiro de configuração do serviço remoto do Apigee.
Sugestão: esta flag permite omitir a maioria dos outros parâmetros de comando, porque a CLI consegue extraí-los diretamente do ficheiro de configuração. Consulte Usar a opção --config.
-e, --env String (Obrigatório) Um ambiente na sua organização.
-h, --help Apresenta ajuda para os parâmetros do comando.
--insecure Permitir ligações inseguras ao servidor quando usar SSL
--legacy Defina esta flag se estiver a usar o Apigee Cloud. Define os URLs de gestão e de tempo de execução para a nuvem de limite.
--opdk Defina esta flag se estiver a usar o Apigee para a nuvem privada.
-o, --org String (Obrigatório) Uma organização do Apigee. Tem de ser um administrador da organização.
-r, --runtime String Um URL que inclui o hostAlias para um anfitrião virtual definido na sua configuração híbrida. O URL tem de começar por https://. Por exemplo: https://apitest.apigee-hybrid-docs.net
-t, --token String (Obrigatório) Um token de acesso.
-v, --verbose (Opcional) Produz uma saída detalhada.

Exemplo

/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 ajuda

A ajuda online é fornecida para todos os comandos apigee-remote-service-cli. Basta escrever:

apigee-remote-service-cli help

Para obter ajuda sobre qualquer comando, escreva:

apigee-remote-service-cli [command] help

Por exemplo:

apigee-remote-service-cli provision help

Comando de aprovisionamento

O comando apigee-remote-service-cli provision instala um proxy na sua organização do Apigee, configura um certificado e gera credenciais que tem de configurar no adaptador do Apigee para o Envoy.

Utilização

Para o Apigee Hybrid:

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

Parâmetros

Parâmetros Tipo Descrição
--analytics-sa String Use esta flag para especificar o caminho para um ficheiro de chave da conta de serviço do Google Cloud, em que a conta de serviço tem a função Apigee Analytics Agent. A SA é usada pelo adaptador para carregar diretamente dados de estatísticas para o Apigee. Se estiver a usar o Apigee Hybrid, esta opção permite-lhe instalar o tempo de execução híbrido num cluster e o adaptador noutro cluster. Esta flag só está disponível para instalações do Apigee hybrid e do Apigee no Google Cloud.
-c, --config String Caminho para o ficheiro de configuração do serviço remoto do Apigee. Consulte também Usar a opção --config.
-e, --environment String (Obrigatório) Um ambiente na sua organização.
-f, --force-proxy-install (Opcional) Força a reinstalação do proxy remote-service se já estiver instalado na sua organização.
-h, --help Apresenta ajuda para os parâmetros do comando.
-k, --key String Especifica a chave devolvida pelo comando apigee-remote-service-cli provision.
--legacy Apigee Edge (define o URL de gestão e de tempo de execução)
-m, --management String (Obrigatório se estiver no Apigee Private Cloud) O URL base de gestão do Apigee. Predefinição: https://api.enterprise.apigee.com
-n, --namespace String Emitir a configuração como um ConfigMap do Envoy no espaço de nomes especificado. Predefinição: apigee
--opdk String Defina esta flag se estiver a usar o Apigee para a nuvem privada.
-o, --organization String (Obrigatório) A sua organização do Apigee. Tem de ser um administrador da organização.
-p, --password String (Obrigatório apenas para a autenticação básica, não disponível para a híbrida) A sua palavra-passe do Apigee. Opcionalmente, pode especificar a palavra-passe num ficheiro .netrc. Se o fizer, não tem de introduzir a palavra-passe na linha de comandos. Veja também Usar .netrc para credenciais.
--rotate-int int Se n > 0, gere uma nova chave privada e mantenha n chaves públicas (apenas híbrido)
-r, --runtime String Um URL que inclui o hostAlias para um anfitrião virtual definido na sua configuração híbrida. O URL tem de começar por https://. Por exemplo: https://apitest.apigee-hybrid-docs.net
-s, --secret String Especifica o segredo devolvido pelo comando apigee-remote-service-cli provision.
--strength int (Opcional) Especifica a intensidade da encriptação para os certificados SSL usados no aprovisionamento do adaptador. Predefinição 2048
-t, --token String Token OAuth ou SAML do Apigee.
-u, --username String (Obrigatório apenas para a autenticação básica; não disponível para a autenticação híbrida) O seu nome de utilizador do Apigee (normalmente, um endereço de email). Opcionalmente, pode especificar o nome de utilizador num ficheiro .netrc. Consulte também o artigo Usar o .netrc para credenciais.
-v, --verbose (Opcional) Produz uma saída detalhada.
--virtual-hosts String Substitui os anfitriões virtuais predefinidos.
--years int (Opcional) O número de anos antes da expiração do certificado SSL usado no aprovisionamento. Predefinição: 1

Exemplo

Certifique-se de que captura a saída do comando provision num ficheiro, que é usado como entrada para outras operações do Apigee Adapter for Envoy.

Exemplo do Apigee Hybrid:

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

Comando Samples

Crie um ficheiro de configuração de exemplo

Cria ficheiros de configuração de exemplo para implementações nativas do Envoy ou Istio.

Utilização

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

Descrição

O comando requer um ficheiro config.yaml válido gerado através do aprovisionamento. Por predefinição, os ficheiros de exemplo são enviados para um diretório denominado ./samples. O comando cria este diretório para si.

Se estiver a usar o Envoy nativo, o comando usa o anfitrião do serviço de destino e o nome pretendido para o respetivo cluster. Também define a ligação SSL personalizada do proxy Envoy ao cluster do serviço remoto se for fornecida uma pasta que contenha tls.key e tls.crt através de --tls.

Se estiver a usar o Istio, em que o proxy Envoy atua como um sidecar, se o destino não for especificado, o exemplo httpbin é gerado. Caso contrário, é responsável por preparar os ficheiros de configuração relacionados com a implementação dos seus serviços de destino.

Parâmetros

Parâmetros Tipo Descrição
-c, --config String (Obrigatório) Caminho para o ficheiro de configuração do serviço remoto do Apigee.
Sugestão: esta flag permite omitir a maioria dos outros parâmetros de comando, porque a CLI consegue extraí-los diretamente do ficheiro de configuração. Consulte Usar a opção --config.
-f, --force Forçar a substituição do diretório existente.
-h, --help Apresenta ajuda para os parâmetros do comando.
--host O anfitrião do serviço de destino (predefinição "httpbin.org")
-n, --name O nome do serviço de destino (predefinição "httpbin")
--out O diretório no qual criar os ficheiros de configuração de exemplo. Predefinição: ./samples
-t, --template

O nome do modelo. Se estiver a fazer uma implementação do Istio (apenas híbrida), selecione uma das opções do Istio disponíveis. Use a opção nativa para implementações nativas do Envoy. As opções disponíveis são:

  • istio-1.6 (Predefinição)
  • istio-1.7
  • native
--tls O diretório no qual armazenar os ficheiros crt e da chave TLS.

Exemplo

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

Liste as opções de modelos disponíveis

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

Utilização

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

Pode usar um token JWT para fazer chamadas de proxy de API autenticadas em vez de usar uma chave da API. Os comandos de token permitem-lhe criar, inspecionar e rodar tokens JWT para este fim.

Crie um token JWT

Pode usar um token JWT para fazer chamadas de proxy de API autenticadas para um destino de serviço remoto. Consulte também o artigo Usar a autenticação baseada em JWT.

Utilização

Para o 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 Descrição
-c, --config String (Obrigatório) O caminho para o ficheiro de configuração do serviço remoto do Apigee.
Sugestão: esta flag permite omitir a maioria dos outros parâmetros de comando, porque a CLI consegue extraí-los diretamente do ficheiro de configuração. Consulte Usar a opção --config.
-e, --env String (Obrigatório) Um ambiente na sua organização.
-h, --help Apresenta ajuda para os parâmetros do comando.
--insecure Permitir ligações inseguras ao servidor quando usar SSL.
-o, --org String (Obrigatório) Uma organização do Apigee. Tem de ser um administrador da organização.
-r, --runtime String Um URL que inclui o hostAlias para um anfitrião virtual definido na sua configuração híbrida. O URL tem de começar por https://. Por exemplo: https://apitest.apigee-hybrid-docs.net
-v, --verbose (Opcional) Produz uma saída detalhada.

Exemplo

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

Resultado

Se for bem-sucedido, verá um resultado do token JST semelhante ao seguinte:
eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJhY2Nlc3NfdG9rZW4iOiJ0a2tlVzVKQTY2a0pZYTB4bFV1cVBsUW1BMU43IiwiYXVkIjoiaXN0aW8iLCJuYmYiOjE1MzAxMzg1OTEsImFwaV9wcm9kdWN0X2xpc3QiOlsiaXN0aW8tcHJvZHVjdCJdLCJhcHBsaWNhdGlvbl9uYW1lIjoiaXN0aW8tYXBwIiwiZGV2ZWxvcGVyX2VtYWlsIjoicFluZ2Zsb3lkQGdvb2dsZS5jb20iLCJpc3MiOiJodHRwczovL2FwaWdlZXNlYXJjaC10ZXN0LmFwaWdlZS5uZXQvaXN0aW8tYXV0aC90b2tlbiIsImV4cCI6MTUzMDEzOTQ5MSwiaWF0IjoxNTMwMTM4NTkxLCJqdGkiOiIxODgzMzViZi0wMmE4LTRjZGUsOGFkOS0yMWJmNDZjNmRjZDkiLCJjbGllbnRfaWQiOiJZVW1sWkFjQktOc1RBZWxKcVBZRmwzc2g1OE9iQVRYOSJ9.AL7pKSTmond-NSPRNNHVbIzTdAnZjOXcjQ-BbOJ_8lsQvF7PuiOUrGIhY5XTcJusisKgbCdtIxBl8Wq1EiQ_fKnUc3JYYOqzpTB5bGoFy0Yqbfu96dneuWyzgZnoQBkqwZkbQTIg7WNTGx1TJX-UTePvBPxAefiAbaEUcigX9tTsXPoRJZOTrm7IOeKpxpB_gQYkxQtV1_NbERxjTPyMbHdMWal9_xRVzSt7mpTGudMN9OR-VtQ1uXA67GOqhZWcOzq57qImOiCMbaoKnKUADevyWjX_VscN5ZZUtzQUQhTrmv8aR69-uVhMIPKp9juMyYKaYn2IsYZEeCWfhfV45Q

Inspecione um token JWT

Pode inspecionar um token JWT com este comando. Veja também Inspecione um token.

Utilização

Para o Apigee Hybrid:
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 para o ficheiro de configuração do serviço remoto do Apigee.
Sugestão: esta flag permite omitir a maioria dos outros parâmetros de comando, porque a CLI consegue extraí-los diretamente do ficheiro de configuração. Consulte Usar a opção --config.
-e, --env String (Obrigatório) Um ambiente na sua organização.
-h, --help Apresenta ajuda para os parâmetros do comando.
--insecure Permitir ligações inseguras ao servidor quando usar SSL.
-o, --org String (Obrigatório) Uma organização do Apigee. Tem de ser um administrador da organização.
-r, --runtime String Um URL que inclui o hostAlias para um anfitrião virtual definido na sua configuração híbrida. O URL tem de começar por https://. Por exemplo: https://apitest.apigee-hybrid-docs.net
-v, --verbose (Opcional) Produz uma saída detalhada.

Exemplo

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

Resultado

Se for bem-sucedido, vê um resultado semelhante ao seguinte:
{
	"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.

Alterne um token JWT

Algum tempo depois de gerar inicialmente um JWT, pode ter de alterar o par de chaves públicas/privadas armazenado pelo Apigee no respetivo mapa de chave-valor (KVM) encriptado. Este processo de geração de um novo par de chaves chama-se rotação de chaves. Quando roda as chaves, é gerado um novo par de chaves públicas/privadas e armazenado no KVM "istio" na sua organização/ambiente do Apigee. Além disso, a chave pública antiga é mantida juntamente com o valor do ID da chave original.

Utilização

Para o 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 Descrição
-c, --config String (Obrigatório) O caminho para o ficheiro de configuração do serviço remoto do Apigee.
Sugestão: esta flag permite omitir a maioria dos outros parâmetros de comando, porque a CLI consegue extraí-los diretamente do ficheiro de configuração. Consulte Usar a opção --config.
-e, --env String (Obrigatório) Um ambiente na sua organização.
-h, --help Apresenta ajuda para os parâmetros do comando.
--insecure Permitir ligações inseguras ao servidor quando usar SSL
--truncate int Número de certificados a manter em jwks (predefinição: 2)
-o, --org String (Obrigatório) Uma organização do Apigee. Tem de ser um administrador da organização.
-r, --runtime String Um URL que inclui o hostAlias para um anfitrião virtual definido na sua configuração híbrida. O URL tem de começar por https://. Por exemplo: https://apitest.apigee-hybrid-docs.net
-v, --verbose (Opcional) Produz uma saída detalhada.

Exemplo

./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

Usar o ficheiro .netrc para credenciais

apigee-remote-service-cli seleciona automaticamente o username e o password (para autenticação básica, quando necessário) de um ficheiro .netrc no seu diretório principal se estiver no Edge Public Cloud e tiver uma entrada para a máquina api.enterprise.apigee.com. Se estiver no Apigee Private Cloud, o valor da máquina é igual ao seu URL 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

Usar a opção de comando --config

A opção --config especifica a localização do ficheiro de configuração gerado pelo comando provision. Uma vantagem útil desta opção é que permite ignorar a maioria dos outros parâmetros de comando, que a CLI extrai do ficheiro de configuração. Estas opções incluem:
  • organização
  • ambiente
  • tempo de execução
  • gestão
  • inseguro
  • espaço de nome
  • antigo
  • opdk

Por exemplo, pode executar o comando provision da seguinte forma:

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

Ficheiro de configuração

Esta secção mostra um ficheiro de configuração de exemplo 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