Crie uma APIMExtensionPolicy

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

Veja a documentação do Apigee Edge.

Esta página descreve 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 iniciar esta tarefa, conclua os seguintes passos:

Funções necessárias

Se atribuir as funções necessárias à sua conta de serviço, conforme descrito no artigo Instale o operador do Apigee para Kubernetes, não são necessárias funções nem autorizações de IAM adicionais para concluir estas tarefas.

Pode optar por autorizar ações em recursos no seu cluster do Google Kubernetes Engine através do mecanismo de controlo de acesso baseado em funções (RBAC) integrado no Kubernetes. Para mais informações, consulte o artigo Autorize ações em clusters através do controlo de acesso baseado em funções.

Crie o APIMExtensionPolicy

Neste passo, crie o APIMExtensionPolicy e aplique-o ao GKE Gateway em execução no seu cluster. Esta política rege todo o tráfego que passa pelo Gateway e o respetivo HTTPRoutes, funcionando de forma semelhante a um flowhook ao nível do ambiente no Apigee atualmente.

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

  1. Crie um novo ficheiro com o nome global-ext-lb1-apim-policy.yaml no espaço de nomes apim.
  2. Copie o seguinte conteúdo para o novo ficheiro:
    # 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

    Onde ENV_NAME é o nome do ambiente Apigee criado no passo de instalação Crie um ambiente Apigee.

    Pode ver todos os ambientes disponíveis na página Apigee Environments na Google Cloud consola:

    Aceder a Ambientes

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

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

  4. Verifique o estado da política de extensão da APIM através do seguinte comando:
    kubectl -n apim get APIMExtensionPolicy

    O resultado deve ser semelhante ao seguinte, com um State de RUNNING:

    NAME                         STATE      ERRORMESSAGE
    global-ext-lb1-apim-policy   RUNNING  
  5. Use o seguinte comando para enviar um pedido ao gateway:
    curl http://GATEWAY_IP_ADDRESS/get -H "Host: HOST_NAME"

    Onde:

    • GATEWAY_IP_ADDRESS é o endereço IP do gateway. Pode obter o endereço IP do gateway através do 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 de anfitrião definido no HTTPRoute do gateway.
  6. O pedido deve falhar porque a segurança predefinida está ativada ao definir defaultSecurityEnabled: true no recurso da política de extensão da API. Deve ver uma resposta semelhante à seguinte:
    {"fault":{"faultstring":"Raising fault. Fault name : RF-insufficient-request-raise-fault","detail":{"errorcode":"steps.raisefault.RaiseFault"}}}

    Isto indica que a política de extensão do Apigee está ativa e que a aplicação da chave de API e a validação do token de acesso estão ativas.

O que se segue?