Criar uma APIMExtensionPolicy

Esta página se aplica à Apigee e à Apigee híbrida.

Confira a documentação da Apigee Edge.

Nesta página, descrevemos como criar um APIMExtensionPolicy para criar a extensão de tráfego necessária no gateway do Google Kubernetes Engine (GKE) em execução no seu cluster.

Antes de começar

Antes de começar esta tarefa, conclua as seguintes etapas:

Funções exigidas

Se você atribuir os papéis necessários à sua conta de serviço, conforme descrito em Instalar o operador do Apigee para Kubernetes, não serão necessários outros papéis ou permissões do IAM para concluir essas tarefas.

É possível autorizar ações em recursos no cluster do Google Kubernetes Engine usando o mecanismo integrado de controle de acesso baseado em papéis (RBAC, na sigla em inglês) no Kubernetes. Para mais informações, consulte Autorizar ações em clusters usando o controle de acesso baseado em papéis.

Criar o APIMExtensionPolicy

Nesta etapa, crie o APIMExtensionPolicy e aplique-o ao gateway do GKE em execução no cluster. Essa política rege todo o tráfego que passa pelo gateway e pelo HTTPRoutes associado, funcionando de maneira semelhante a um flowhook no nível do ambiente no Apigee hoje.

Crie a política de extensão do APIM:

  1. Crie um novo arquivo chamado global-ext-lb1-apim-policy.yaml no namespace apim.
  2. Copie o conteúdo a seguir no novo arquivo:
    # global-ext-lb1-apim-policy.yaml
    apiVersion: apim.googleapis.com/v1
    kind: APIMExtensionPolicy
    metadata:
      name: global-ext-lb1-apim-policy
      namespace: apim
    spec:
      apigeeEnv: ENV_NAME # optional
      location: global
      failOpen: false
      timeout: 1000ms
      defaultSecurityEnabled: true
      targetRef: # identifies the Gateway where the extension should be applied
        name: global-ext-lb1
        kind: Gateway
        namespace: default

    Em que ENV_NAME é o nome do ambiente da Apigee criado na etapa de instalação Criar um ambiente da Apigee.

    É possível conferir todos os ambientes disponíveis na página Ambientes do Apigee no console Google Cloud :

    Acessar "Ambientes"

  3. Aplique a política:
    kubectl -n apim apply -f global-ext-lb1-apim-policy.yaml

    Depois que a política é aplicada, o operador do Apigee para Kubernetes cria recursos de rede em segundo plano.

  4. Verifique o status da política de extensão do APIM usando o seguinte comando:
    kubectl -n apim get APIMExtensionPolicy

    A saída será parecida com esta, com um State de RUNNING:

    NAME                         STATE      ERRORMESSAGE
    global-ext-lb1-apim-policy   RUNNING  
  5. Use o comando a seguir para enviar uma solicitação ao gateway:
    curl http://GATEWAY_IP_ADDRESS/get -H "Host: HOST_NAME"

    Em que:

    • GATEWAY_IP_ADDRESS é o endereço IP do gateway. É possível recuperar o endereço IP do gateway usando o seguinte comando, em que GATEWAY_NAME é o nome do gateway:
      kubectl get gateways.gateway.networking.k8s.io GATEWAY_NAME -o=jsonpath="{.status.addresses[0].value}"
    • HOST_NAME é o nome do host definido no HTTPRoute do gateway.
  6. A solicitação vai falhar porque a segurança padrão é ativada definindo defaultSecurityEnabled: true no recurso de política de extensão da API. Uma resposta semelhante a esta vai aparecer:
    {"fault":{"faultstring":"Raising fault. Fault name : RF-insufficient-request-raise-fault","detail":{"errorcode":"steps.raisefault.RaiseFault"}}}

    Isso indica que a política de extensão da Apigee está ativa e que a aplicação de chaves de API e a verificação de token de acesso estão ativas.

A seguir