Configurar e implementar ambientes

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

Veja a documentação do Apigee Edge.

Um ambiente é um contexto de execução de tempo de execução para os proxies de API e os fluxos partilhados que quer implementar. Tem de implementar os seus proxies de API e fluxos partilhados num ou mais ambientes antes de poder aceder a eles para testes. Para mais informações sobre ambientes, consulte o artigo Acerca dos ambientes e dos grupos de ambientes.

Configure e implemente ambientes conforme descrito nas secções seguintes. Consulte também o artigo Gerir pastas e ficheiros num espaço de trabalho do Apigee.

Configurar um ambiente

Antes de implementar um ambiente, configure-o para identificar os proxies de API e os fluxos partilhados que quer implementar, e configure os hooks de fluxos partilhados ou os servidores de destino, conforme necessário.

Para configurar um ambiente, crie o ambiente e edite a configuração definida na tabela seguinte.

Configuração Descrição
Máscaras de depuração (debugmasks.json) Defina configurações de ocultação para ocultar dados específicos em sessões de rastreio e depuração.
Implementações (deployments.json) Defina os proxies de API e os fluxos partilhados na sua implementação.
Flow hooks (flowhooks.json) Anexe fluxos partilhados a pontos de ligação de fluxos para que sejam executados no mesmo local para todos os proxies de API implementados no ambiente.
Servidores de destino (targetservers.json) Desacople os seus pontos finais concretos dos seus pontos finais de destino para suportar o balanceamento de carga e a comutação por falha em várias instâncias do servidor de back-end.
Principais lojas (keystores.json) Adicione suporte de TLS aos seus pontos finais de destino e servidores de destino.

Além disso, se usar políticas que exijam recursos, pode gerir recursos ao nível do ambiente, conforme necessário.

Criar um ambiente

Para criar um ambiente no Apigee no Cloud Code:

  1. Realize uma das seguintes ações:

    • Posicione o cursor sobre a pasta environments no espaço de trabalho do Apigee e clique em Crie um ícone de ambiente.

      O sinal + é apresentado quando posiciona o cursor sobre a pasta environments

    • Selecione Ver > Paleta de comandos para abrir a paleta de comandos e selecione Cloud Code: Create Apigee environment.

    O assistente Criar ambiente é aberto.

  2. Introduza um nome para o ambiente e prima Enter.

O ambiente é adicionado à pasta environments na secção Apigee:

Pasta Environments com os ficheiros deployments.json, flowhooks.json e targetservers.json

Configure o ambiente, conforme descrito nas secções seguintes.

Configurar máscaras de depuração (debugmask.json)

O Apigee permite-lhe definir configurações de ocultação para ocultar dados específicos em sessões de rastreio e depuração. Quando os dados são ocultados, são substituídos por asteriscos no resultado da rastreabilidade. Por exemplo:

<description>**********</description>

Para mais informações, consulte o artigo Ocultar dados confidenciais.

Para configurar máscaras de depuração, atualize o ficheiro debugmask.json editando-o diretamente.

Segue-se um exemplo da estrutura básica de uma configuração de máscara no formato JSON. Para mais informações sobre os campos de configuração da máscara apresentados no exemplo, consulte DebugMask.

{
  "namespaces": {
    "myco": "https://example.com"
  },
  "requestXPaths": [
    "/myco:Greeting/myco:User"
  ],
  "responseXPaths": [
    "/myco:Greeting/myco:User"
  ],
  "faultXPaths": [
    "/myco:Greeting/myco:User"
  ],
  "requestJSONPaths": [
    "$.store.book[].author"
  ],
  "responseJSONPaths": [
    "$.store.book[].author"
  ],
  "faultJSONPaths": [
    "$.store.book[*].author"
  ],
  "variables": [
    "request.header.user-agent",
    "request.formparam.password"
  ]
}

Configurar as implementações (deployments.json)

Configure os proxies de API e os fluxos partilhados que quer incluir na implementação.

Para configurar as implementações, atualize o ficheiro deployments.json através do assistente de configuração ou editando o ficheiro diretamente.

Para configurar as implementações através do assistente de configuração:

  1. Posicione o cursor sobre o ficheiro deployments.json do ambiente e clique em Ícone do assistente para configurar uma implementação.

    O ícone de definições é apresentado quando posiciona o cursor sobre a pasta deployments.json

  2. Siga o assistente de configuração para selecionar as implementações e preencher automaticamente os campos no ficheiro deployments.json. O ficheiro deployments.json é aberto no editor.
  3. Edite a configuração, conforme necessário.
  4. Selecione Ficheiro > Guardar ou ⌘S para guardar as edições.

O exemplo seguinte configura a implementação para incluir o proxy da API helloworld e os fluxos partilhados mysharedflow e hw-sharedflow:

{
  "proxies" : [
     "helloworld"
  ],
  "sharedflows" : [
     "mysharedflow",
     "hw-sharedflow"
  ]
}

Configurar contas de serviço com implementações de proxy e fluxo partilhado

Os proxies de API que dependem de um serviço Google como back-end podem exigir que uma Google Cloud conta de serviço seja associada à implementação. Consulte o artigo Usar a autenticação Google.

Quando edita o ficheiro deployments.json, pode associar o proxy de API ou o fluxo partilhado a uma Google Cloud conta de serviço. Por exemplo:

{
  "name": "proxy-name",
  "serviceAccount": "associated-service-account"
}

O exemplo seguinte mostra uma configuração de implementação em que as contas de serviço estão associadas ao proxy de API helloworld e ao fluxo partilhado mysharedflow. No entanto, o proxy healthcheck e o fluxo partilhado hw-sharedflow não estão associados a uma conta de serviço:

{
  "proxies": [
    {
      "name": "helloworld",
      "serviceAccount": "myserviceaccount@myorg.iam.gserviceaccount.com"
    },
    "healthcheck"
  ],
  "sharedflows": [
    {
      "name": "mysharedflow",
      "serviceAccount": "myserviceaccount@myorg.iam.gserviceaccount.com"
    },
    "hw-sharedflow"
  ]
}

Saiba como configurar o emulador do Apigee para testar funcionalidades de autenticação de contas de serviço no seu proxy de API.

Anexar fluxos partilhados através de pontos de ligação de fluxos (flowhooks.json)

Com um flow hook, anexa um fluxo partilhado para que seja executado no mesmo local para todos os proxies de API implementados num ambiente específico. Isto dá-lhe uma sequência de lógica implementada e implementada separadamente que não faz parte do código de implementação de um proxy de API. Especificamente, pode anexar um fluxo partilhado nas seguintes localizações no fluxo do proxy de API:

  • Antes da execução de um ponto final de proxy de API (PreProxyFlowHook)
  • Após a execução do ponto final do proxy de API e imediatamente antes de a resposta ser enviada para o cliente (PostProxyFlowHook)
  • Antes da execução de um ponto final de destino (PreTargetFlowHook)
  • Após a execução da resposta-alvo (PostTargetFlowHook)

Para mais informações sobre os pontos de ligação de fluxos, consulte o artigo Anexe fluxos partilhados através de pontos de ligação de fluxos.

Para anexar fluxos partilhados através de pontos de ligação de fluxos, atualize o ficheiro flowhooks.json através do assistente de configuração ou editando o ficheiro diretamente.

Para configurar os hooks de fluxo através do assistente de configuração:

  1. Posicione o cursor sobre o ficheiro flowhooks.json do ambiente e clique em Ícone do assistente para configurar um gancho de fluxo.
  2. Selecione os fluxos partilhados a anexar em localizações específicas no fluxo do proxy de API e preencha automaticamente os campos no ficheiro flowhooks.json. O ficheiro flowhooks.json é aberto no editor.
  3. Edite a configuração, conforme necessário.
  4. Selecione Ficheiro > Guardar ou ⌘S para guardar as edições.

O exemplo seguinte anexa o mysharedflow ao PreProxyFlowHook para que seja executado antes da execução de um ponto final do proxy da API:

{
  "PreProxyFlowHook": {
    "continueOnError": true,
    "sharedFlow": "mysharedflow",
    "description": "Shared enforced before a proxy endpoint executes."
  }
}

Configurar os servidores de destino (targetservers.json)

Os servidores de destino (TargetServers) desvinculam os URLs de pontos finais concretos das configurações de ponto final de destino (TargetEndpoint). Em vez de definir um URL concreto na configuração, pode configurar um ou mais TargetServers com nome. Em seguida, referencie cada TargetServer pelo nome numa HTTPConnection de TargetEndpoint.

Para mais informações sobre servidores de destino, consulte os seguintes tópicos:

Para configurar os servidores de destino, atualize o ficheiro targetservers.json através do assistente de configuração ou editando o ficheiro diretamente. Para ver uma descrição dos campos no ficheiro targetservers.json, consulte o artigo Recurso: TargetServer.

Para configurar os servidores de destino através do assistente de configuração:

  1. Posicione o cursor sobre o ficheiro targetservers.json do ambiente e clique em Ícone do assistente para configurar servidores de destino.
  2. Siga o assistente de configuração para configurar o servidor de destino e preencher automaticamente os campos no ficheiro targetservers.json. O ficheiro targetservers.json é aberto no editor.
  3. Edite a configuração, conforme necessário.
  4. Selecione Ficheiro > Guardar ou ⌘S para guardar as edições.

O exemplo seguinte adiciona um novo servidor de destino no ambiente:

[
  {
    "enabled": true,
    "name": "mytargetserver",
    "description": "My first target server",
    "host": "localhost",
    "port": 80
  }
]

O exemplo seguinte configura um servidor de destino com TLS mútuo através de armazenamentos de chaves:

[
    {
        "name": "mtlsserver",
        "host": "mytargetserver.mydomain",
        "port": 443,
        "enabled": true,
        "protocol": "HTTP",
        "tlsInfo": {
            "enabled": true,
            "clientAuthEnabled": true,
            "keyStore": "mykeystore",
            "keyAlias": "mykeyandcert",
            "trustStore": "mytruststore"
        }
    }
]

Configurar os repositórios de chaves (keystores.json)

Os keystores definem repositórios de certificados de segurança usados para a encriptação TLS em pontos finais de destino e servidores de destino.

Para mais informações sobre a configuração do TLS, consulte o artigo Opções para configurar o TLS.

Para configurar keystores:

  1. Abra o ficheiro keystores.json para o ambiente no editor. O ficheiro tem dois elementos principais
    • stores – Um mapa do nome do keystore adicionado e dos aliases.
    • references – Um mapa de todos os nomes de referência do keystore e o nome do keystore associado.
  2. Edite a configuração, conforme necessário.
  3. Selecione Ficheiro > Guardar ou ⌘S para guardar as edições.

O exemplo seguinte mostra um keystore mykeystore com dois alias, mycert-alias e mykeycert-alias:

{
    "stores": {
      "mykeystore": {
        "my-cert-alias": {
          "cert": "/Users/jdoe/testkeys/cert1.pem"
        },
        "my-keycert-alias": {
          "key": "/Users/jdoe/testkeys/key1.pem",
          "cert": "/Users/jdoe/testkeys/cert1.pem"
        }
      }
    }
  }

Implementar um ambiente

Implemente os proxies de API e os fluxos partilhados configurados para um ambiente, para que possam ser acedidos para testes.

Para implementar um ambiente:

  1. Na secção do Apigee, posicione o cursor sobre a pasta do ambiente que quer implementar.
  2. Clique em Ícone Implementar para o ambiente Apigee.

    O ícone Implementar é apresentado quando posiciona o cursor sobre a pasta do ambiente de desenvolvimento

  3. Se estiverem em execução vários contentores para o Apigee Emulator, selecione o contentor para o qual quer implementar o ambiente.
  4. Selecione o pacote de teste que quer exportar com a implementação ou selecione Implementar sem um pacote de teste.

    Pedido para exportar o pacote de teste

    Pode exportar recursos de teste mais tarde, conforme descrito no artigo Exportar recursos de teste para o Apigee Emulator.

O ambiente é implementado e apresenta uma mensagem de êxito no separador Output.

As aplicações implementadas são apresentadas no Apigee Emulator:

O emulador do Apigee mostra a aplicação helloworld implementada e os recursos de teste ativos