Criando um Gateway de API

Descubra como criar um gateway de API com o serviço de Gateway de API para processar o tráfego de clientes front-end e roteá-lo para serviços de back-end.

Você pode criar um ou mais gateways de API para processar o tráfego de clientes de API e roteá-lo para serviços de back-end. Depois de criar um gateway de API, você implantará uma API no gateway de API criando uma implantação de API.

Você pode usar um gateway de API único como front-end para vários serviços de back-end das seguintes maneiras:

  • Crie uma implantação de API única no gateway de API, com uma especificação de implantação de API que define vários serviços de back-end.
  • Crie várias implementações de API no mesmo gateway de API, cada uma com uma especificação de implantação de API que define um (ou mais) serviços de back-end.

Ter um único gateway de API como front-end permite apresentar uma única API coesa aos consumidores de API e clientes de API, mesmo que a API realmente consista em microsserviços menores escritos por diferentes equipes de software usando diferentes linguagens ou tecnologias de programação.

    1. Na página da lista Gateways, selecione Criar Gateway. Se precisar de ajuda para localizar a página da lista, consulte Listando Gateways de API.
    2. Especifique os seguintes valores para o novo gateway de API:

      • Nome: O nome do gateway de API. Evite digitar informações confidenciais.
      • Tipo: o tipo de gateway de API a ser criado.
        • Selecione Privado se quiser que o gateway de API (e as APIs implantadas nele) seja acessível por recursos na mesma rede privada (VCN) ou por recursos em outras redes privadas ou locais pareadas com essa rede privada.
        • Selecione Público se quiser que o gateway de API (e as APIs implantadas nele) seja acessível publicamente. Os gateways de API pública podem ser acessados pela internet, desde que um gateway de internet esteja presente na VCN do gateway de API.
      • Compartimento: O compartimento no qual criar o gateway de API.
      • Rede virtual na nuvem em <compartment-name>: A VCN na qual o gateway de API será criado. A VCN pode estar no mesmo compartimento do gateway de API, mas não precisa estar.
      • Sub-rede em <compartment-name>: A sub-rede regional pública ou privada na qual será criado o gateway de API. Se quiser criar um gateway de API pública, você deverá especificar uma sub-rede regional pública.

        Lembre-se de que o Gateway de API se comunica na porta 443, que não é aberta por padrão. Você tem que adicionar uma nova regra de segurança de entrada com monitoramento de estado para a sub-rede regional (em uma lista de segurança ou em um grupo de segurança de rede) a fim de permitir o tráfego na porta 443. Para obter as propriedades da regra de segurança de entrada, consulte Criar uma VCN a Ser Usada com o Gateway de API, Se Já Não Houver Uma.

      • Ativar Grupos de Segurança de Rede: Selecione essa opção para controlar o acesso ao gateway de API usando regras de segurança definidas para um ou mais grupos de segurança de rede (NSGs) especificados (até um máximo de cinco grupos de segurança de rede). Você pode usar regras de segurança definidas para NSGs em vez das definidas para listas de segurança ou além delas. Os NSGs podem pertencer ao mesmo compartimento do novo gateway de API, mas não precisam. Consulte Grupos de Segurança de Rede.
      • Certificado: O certificado TLS que o gateway de API usa. O certificado TLS selecionado determina o nome de domínio do gateway de API.
        • Padrão (*.oci.customer-oci.com) (se mostrado): Selecione esta opção se desejar que o nome de domínio seja gerado automaticamente para você e se desejar que o gateway de API use um certificado TLS padrão obtido pelo serviço de Gateway de API. O nome de domínio padrão gerado conterá uma string aleatória de caracteres seguida por .apigateway.<region-identifier>.oci.customer-oci.com. Por exemplo, laksjd.apigateway.us-phoenix-1.oci.customer-oci.com. Essa opção só estará disponível se sua tenancy existir no realm OC1.
        • Categoria Serviço de Certificados (se mostrada): Selecione um recurso de certificado de serviço de Certificados existente que contenha os detalhes do certificado TLS personalizado que você deseja que o gateway de API use. O gateway de API usa um nome de domínio personalizado associado ao certificado selecionado. Esta categoria só será mostrada se os recursos de certificado do serviço Certificates estiverem disponíveis no compartimento selecionado.
        • Categoria Certificados do Serviço API Gateway (se mostrada): Selecione um recurso de certificado do serviço API Gateway existente que contenha os detalhes do certificado TLS personalizado que você deseja que o gateway de API use. O gateway de API usa um nome de domínio personalizado associado ao certificado selecionado. Essa categoria só será mostrada se os recursos de certificado do Gateway de API estiverem disponíveis no compartimento selecionado.

        Consulte Configurando Domínios e Certificados TLS Personalizados.

        Observação

        Recomendamos o uso de um certificado TLS personalizado para sistemas públicos ou de produção. Recomendamos usar um certificado TLS padrão obtido pelo serviço Gateway de API apenas para sistemas privados ou não de produção (por exemplo, para desenvolvimento e teste).

    3. Opcionalmente, selecione Mostrar opções avançadas e especifique os seguintes valores:
      • Cache de resposta: Opções para ativar e configurar o cache de resposta para o gateway de API a fim de melhorar o desempenho e reduzir a carga nos serviços de back-end. Consulte Armazenando Respostas no Cache para Melhorar o Desempenho.
      • Autoridades de certificação: Um ou mais recursos de Autoridade de Certificação (CA) ou de pacote de CAs a serem adicionados ao armazenamento confiável do gateway de API como CAs personalizadas e pacotes de CAs personalizados (além do pacote de CAs padrão). As CAs personalizadas e os pacotes de CA personalizados são usados para verificar certificados TLS apresentados por clientes de API e serviços de back-end. Consulte Personalizando Armazenamentos Confiáveis para Verificação de Certificado TLS.
      • Tags: Se você tiver permissões para criar um recurso, também terá permissões para aplicar tags de formato livre a esse recurso. Para aplicar uma tag definida, você deve ter permissões para usar o namespace da tag. Para obter mais informações sobre tags, consulte Tags de Recursos. Se você não tiver certeza se deseja aplicar tags, ignore essa opção ou pergunte a um administrador. Você pode aplicar tags posteriormente.
        Observação

        Se você aplicar uma tag definida a um gateway de API (diretamente ou como padrão de tag para um compartimento) e modificar subsequentemente a definição de tag, o gateway de API poderá informar um estado de falha. Aplique uma tag definida a um gateway de API somente se a tag definida não for alterada. Se você não tiver certeza se uma tag definida será alterada, recomendamos que você não a aplique a um gateway de API.
    4. Selecione Criar Gateway para criar o gateway de API imediatamente.

      Lembre-se de que pode levar alguns minutos para criar o novo gateway de API. Enquanto está sendo criado, o gateway de API é mostrado com o estado Criando. Quando ele tiver sido criado com sucesso, o gateway de API será mostrado com um estado Ativo.

      Observe também que, em vez de criar o novo gateway de API imediatamente, você pode criá-lo posteriormente usando o Resource Manager e o Terraform, selecionando Salvar como pilha para salvar a definição de recurso como uma configuração do Terraform. Para obter mais informações sobre como salvar pilhas de definições de recursos, consulte Criando uma Pilha de uma Página de Criação de Recurso.

    5. Se você tiver aguardado mais do que alguns minutos para que o gateway de API seja mostrado com um estado Ativo (ou se a operação de criação do gateway de API tiver falhado), execute as seguintes ações:

      1. Selecione o nome do gateway de API e selecione Solicitações de serviço para ter uma visão geral da operação de criação do gateway de API.
      2. Selecione a operação Criar gateway para ver mais informações sobre a operação (incluindo mensagens de erro, mensagens de log e o status de recursos associados).
      3. Se a operação de criação do gateway de API tiver falhado e você não puder diagnosticar a causa do problema com base nas informações da solicitação de serviço, consulte Solução de Problemas do Serviço API Gateway.

    Depois de criar com sucesso um gateway de API, você poderá implantar uma API nele. Consulte Implantando uma API em um Gateway de API por meio da Criação de uma Implantação de API.

  • Para criar um novo gateway de API usando a CLI:

    1. Configure seu ambiente de cliente para usar a CLI ( Configurando Seu Ambiente de Cliente para usar a CLI para o Desenvolvimento de Gateway de API).
    2. Abra um prompt de comando e execute oci api-gateway gateway create para criar o gateway de API:

      oci api-gateway gateway create --display-name "<gateway-name>" --compartment-id <compartment-ocid> --endpoint-type "<gateway-type>" --subnet-id <subnet-ocid> --certificate-id <certificate-ocid> --ca-bundles file:///<filename> --response-cache-details file:///<filename>

      em que:

      • <gateway-name> é o nome do novo gateway da API. Evite digitar informações confidenciais.
      • <compartment-ocid> é o OCID do compartimento ao qual pertencerá o novo gateway de API.
      • <gateway-type> é o tipo de gateway de API a ser criado. Especifique PRIVATE se quiser que apenas o gateway de API (e as APIs implantadas nele) seja acessível por recursos na mesma rede privada (VCN) ou por recursos em outras redes privadas ou locais pareadas com essa rede privada. Especifique PUBLIC se quiser que o gateway de API (e as APIs implantadas nele) seja acessível publicamente. Os gateways de API pública podem ser acessados pela internet, desde que um gateway de internet esteja presente na VCN do gateway de API.
      • <subnet-ocid> é o OCID de uma sub-rede regional pública ou privada na qual o gateway de API será criado. Se quiser criar um gateway de API pública, você deverá especificar uma sub-rede regional pública.

        Observe que o Gateway de API se comunica na porta 443, que não é aberta por padrão. Você tem que adicionar uma nova regra de segurança de entrada com monitoramento de estado para a sub-rede regional (em uma lista de segurança ou em um grupo de segurança de rede) a fim de permitir o tráfego na porta 443. Para obter as propriedades da regra de segurança de entrada, consulte Criar uma VCN a Ser Usada com o Gateway de API, Se Já Não Houver Uma.

      • --network-security-group-ids <nsg-ocids> (opcional) é o OCID de um ou mais grupos de segurança de rede. O valor de <nsg-ocids> deve estar no formato JSON válido (como uma string ou informado como um arquivo usando a sintaxe file:///<filename>, incluindo um caminho).
      • <certificate-ocid> (opcional) é o OCID do recurso de certificado criado para o certificado TLS personalizado do gateway de API (um recurso de certificado do Gateway de API ou um recurso de certificado do serviço Certificates). Consulte Configurando Domínios e Certificados TLS Personalizados.
      • --ca-bundles file:///<filename> (opcional) é um arquivo que contém detalhes de um ou mais recursos da Autoridade de Certificação (CA) ou do pacote de CAs a serem adicionados ao armazenamento confiável do gateway de API como CAs personalizadas e pacotes de CAs personalizados (além do pacote de CAs padrão). As CAs personalizadas e os pacotes de CA personalizados são usados para verificar certificados TLS apresentados por clientes de API e serviços de back-end. Consulte Personalizando Armazenamentos Confiáveis para Verificação de Certificado TLS.
      • --response-cache-details file:///<filename> (opcional) é o arquivo de configuração de cache, incluindo um caminho, para ativar e configurar o cache de resposta. Consulte Armazenando Respostas no Cache para Melhorar o Desempenho.

      Por exemplo:

      oci api-gateway gateway create --display-name "Hello World Gateway" --compartment-id ocid1.compartment.oc1..aaaaaaaa7______ysq --endpoint-type "PRIVATE" --subnet-id ocid1.subnet.oc1.iad.aaaaaaaaz______rca

      A resposta ao comando inclui:

      • O OCID do gateway de API.
      • O nome do host, como o nome do domínio a ser usado ao chamar uma API implantada no gateway de API. Se você não especificou um recurso de certificado ao criar o gateway de API, um nome de domínio será gerado automaticamente no formato <gateway-identifier>.apigateway.<region-identifier>.oci.customer-oci.com, em que:

        • <gateway-identifier> é uma string de caracteres que identifica o gateway de API. Por exemplo, lak...sjd (abreviado para fins de legibilidade).
        • <region-identifier> é o identificador da região na qual o gateway de API foi criado. Consulte Disponibilidade por Região.

        Por exemplo, lak...sjd.apigateway.us-phoenix-1.oci.customer-oci.com.

      • O estado do ciclo de vida (por exemplo, ACTIVE, FAILED).
      • O id da solicitação de serviço para criar o gateway de API (detalhes das solicitações de serviço ficam disponíveis por sete dias após a conclusão, o cancelamento ou a falha).

      Se você quiser que o comando aguarde o retorno de controle até que o gateway de API esteja ativo (ou a solicitação tenha falhado), inclua um ou ambos os parâmetros a seguir:

      • --wait-for-state ACTIVE
      • --wait-for-state FAILED

      Por exemplo:

      oci api-gateway gateway create --display-name "Hello World Gateway" --compartment-id ocid1.compartment.oc1..aaaaaaaa7______ysq --endpoint-type "PRIVATE" --subnet-id ocid1.subnet.oc1.iad.aaaaaaaaz______rca --wait-for-state ACTIVE

      Observe que você não pode usar o gateway de API até que a solicitação de serviço o tenha criado com sucesso e o gateway de API esteja ativo.

    3. (Opcional) Para ver o status do gateway de API, informe:

      oci api-gateway gateway get --gateway-id <gateway-ocid>
    4. (Opcional) Para ver o status da solicitação de serviço que está criando o gateway de API, informe:

      oci api-gateway work-request get --work-request-id <work-request-ocid>
    5. (Opcional) Para exibir os logs da solicitação de serviço que está criando o gateway de API, informe:

      oci api-gateway work-request-log list --work-request-id <work-request-ocid>
    6. (Opcional) Se a solicitação de serviço que está criando o gateway de API falhar e você quiser revisar os logs de erro, informe:

      oci api-gateway work-request-error --work-request-id <work-request-ocid>

    Para obter mais informações sobre o uso da CLI, consulte Interface de Linha de Comando (CLI). Para obter uma lista completa de flags e opções disponíveis para comandos da CLI, consulte a Ajuda da CLI.

  • Execute a operação CreateGateway para criar um gateway de API.