Saída de porta flexível

Saiba como configurar e usar saída de porta flexível para suportar conexões externas do AEM as a Cloud Service para serviços externos.

O que é saída de porta flexível?

Saída de porta flexível permite que regras de encaminhamento de porta personalizadas e específicas sejam anexadas ao AEM as a Cloud Service, permitindo que conexões do AEM a serviços externos sejam feitas.

Um programa do Cloud Manager só pode ter um solteiro tipo de infraestrutura de rede. Garantir que a saída de porta flexível seja a mais tipo adequado de infraestrutura de rede para o AEM as a Cloud Service antes de executar os seguintes comandos.

Pré-requisitos

Os itens a seguir são necessários ao definir ou definir a saída de porta flexível usando as APIs do Cloud Manager:

Para obter mais detalhes, assista à seguinte apresentação de como configurar e obter credenciais da API do Cloud Manager e como usá-las para fazer uma chamada de API do Cloud Manager.

Este tutorial usa curl para fazer as configurações da API do Cloud Manager. Os dados fornecidos curl assumem uma sintaxe Linux/macOS. Se estiver usando o prompt de comando do Windows, substitua o \ caractere de quebra de linha com ^.

Habilitar saída de porta flexível por programa

Comece ativando a saída de porta flexível no AEM as a Cloud Service.

Cloud Manager

A saída de porta flexível pode ser ativada usando o Cloud Manager. As etapas a seguir descrevem como ativar a saída de porta flexível no AEM as a Cloud Service usando o Cloud Manager.

  1. Faça logon no Adobe Experience Manager Cloud Manager como Proprietário da empresa do Cloud Manager.

  2. Navegue até o Programa desejado.

  3. No menu esquerdo, navegue até Serviços > Infraestrutura de rede.

  4. Selecione o Adicionar infraestrutura de rede botão.

    Adicionar infraestrutura de rede

  5. No Adicionar infraestrutura de rede , selecione a Saída de porta flexível e selecione a opção Região para criar o endereço IP de saída dedicado.

    Adicionar saída de porta flexível

  6. Selecionar Salvar para confirmar a adição da saída de porta flexível.

    Confirmar criação de saída de porta flexível

  7. Aguardar a infraestrutura de rede ser criada e marcada como Pronto. Esse processo pode levar até 1 hora.

    Status de criação de saída de porta flexível

Com a saída de porta flexível criada, agora é possível configurar as regras de encaminhamento de porta usando as APIs do Cloud Manager, conforme descrito abaixo.

APIs do Cloud Manager

A saída de porta flexível pode ser ativada usando as APIs do Cloud Manager. As etapas a seguir descrevem como ativar a saída de porta flexível no AEM as a Cloud Service usando a API do Cloud Manager.

  1. Primeiro, determine a região em que a Rede avançada é configurada no usando a API do Cloud Manager listRegions operação. A variável region name O é necessário para fazer chamadas de API subsequentes do Cloud Manager. Normalmente, a região em que o ambiente de Produção reside é usada.

    Encontre a região do seu ambiente as a Cloud Service AEM em Cloud Manager no detalhes do ambiente. O nome da região exibido no Cloud Manager pode ser mapeado para o código de região usada na API do Cloud Manager.

    solicitação HTTP listRegions

    code language-shell
    $ curl -X GET https://cloudmanager.adobe.io/api/program/{programId}/regions \
        -H 'x-gw-ims-org-id: <ORGANIZATION_ID>' \
        -H 'x-api-key: <CLIENT_ID>' \
        -H 'Authorization: Bearer <ACCESS_TOKEN>' \
        -H 'Content-Type: application/json'
    
  2. Ativar saída de porta flexível para um programa do Cloud Manager usando a API do Cloud Manager createNetworkInfrastructure operação. Use o region código obtido da API do Cloud Manager listRegions operação.

    solicitação HTTP createNetworkInfrastructure

    code language-shell
    $ curl -X POST https://cloudmanager.adobe.io/api/program/{programId}/networkInfrastructures \
        -H 'x-gw-ims-org-id: <ORGANIZATION_ID>' \
        -H 'x-api-key: <CLIENT_ID>' \
        -H 'Authorization: Bearer <ACCESS_TOKEN>' \
        -H 'Content-Type: application/json' \
        -d '{ "kind": "flexiblePortEgress", "region": "va7" }'
    

    Aguarde 15 minutos para que o programa do Cloud Manager provisione a infraestrutura de rede.

  3. Verifique se o ambiente terminou saída de porta flexível configuração usando a API do Cloud Manager getNetworkInfrastructure operação, utilizando o id retornado do createNetworkInfrastructure Solicitação HTTP na etapa anterior.

    solicitação HTTP getNetworkInfrastructure

    code language-shell
    $ curl -X GET https://cloudmanager.adobe.io/api/program/{programId}/networkInfrastructure/{networkInfrastructureId} \
        -H 'x-gw-ims-org-id: <ORGANIZATION_ID>' \
        -H 'x-api-key: <CLIENT_ID>' \
        -H 'Authorization: Bearer <ACCESS_TOKEN>' \
        -H 'Content-Type: application/json'
    

    Verifique se a resposta HTTP contém um status de pronto. Se ainda não estiver pronto, verifique novamente o status a cada poucos minutos.

Com a saída de porta flexível criada, agora é possível configurar as regras de encaminhamento de porta usando as APIs do Cloud Manager, conforme descrito abaixo.

Configuração de proxies de saída de porta flexíveis por ambiente

  1. Habilite e configure o saída de porta flexível configuração em cada ambiente do AEM as a Cloud Service usando a API do Cloud Manager enableEnvironmentAdvancedNetworkingConfiguration operação.

    solicitação HTTP enableEnvironmentAdvancedNetworkingConfiguration

    code language-shell
    $ curl -X PUT https://cloudmanager.adobe.io/api/program/{programId}/environment/{environmentId}/advancedNetworking \
        -H 'x-gw-ims-org-id: <ORGANIZATION_ID>' \
        -H 'x-api-key: <CLIENT_ID>' \
        -H 'Authorization: Bearer <ACCESS_TOKEN>' \
        -H 'Content-Type: application/json' \
        -d @./flexible-port-egress.json
    

    Defina os parâmetros JSON em uma flexible-port-egress.json e fornecido para curl via ... -d @./flexible-port-egress.json.

    Baixe o exemplo de Flex-port-egress.json. Este arquivo é apenas um exemplo. Configure seu arquivo conforme necessário com base nos campos opcionais/obrigatórios documentados em enableEnvironmentAdvancedNetworkingConfiguration.

    code language-json
    {
        "portForwards": [
            {
                "name": "mysql.example.com",
                "portDest": 3306,
                "portOrig": 30001
            },
            {
                "name": "smtp.sendgrid.com",
                "portDest": 465,
                "portOrig": 30002
            }
        ]
    }
    

    Para cada portForwards de rede avançada define a seguinte regra de encaminhamento:

    table 0-row-5 1-row-5
    Host do proxy Porta do proxy Host externo Porta externa
    AEM_PROXY_HOST portForwards.portOrig portForwards.name portForwards.portDest

    Se a sua implantação do AEM somente exige conexões HTTP/HTTPS (porta 80/443) para o serviço externo, deixe o portForwards matriz vazia, pois essas regras são necessárias somente para solicitações não HTTP/HTTPS.

  2. Para cada ambiente, valide se as regras de saída estão em vigor usando a API do Cloud Manager getEnvironmentAdvancedNetworkingConfiguration operação.

    solicitação HTTP getEnvironmentAdvancedNetworkingConfiguration

    code language-shell
    $ curl -X GET https://cloudmanager.adobe.io/api/program/{programId}/environment/{environmentId}/advancedNetworking \
        -H 'x-gw-ims-org-id: <ORGANIZATION_ID>' \
        -H 'Authorization: Bearer <ACCESS_TOKEN>' \
        -H 'x-api-key: <CLIENT_ID>' \
        -H 'Content-Type: application/json'
    
  3. Configurações flexíveis de saída de porta podem ser atualizadas usando a API do Cloud Manager enableEnvironmentAdvancedNetworkingConfiguration operação. Lembrar enableEnvironmentAdvancedNetworkingConfiguration é um PUT para que todas as regras sejam fornecidas com cada chamada desta operação.

  4. Agora, você pode usar a configuração flexível de saída de porta em seu código e configuração personalizados do AEM.

Conexão com serviços externos por meio de saída de porta flexível

Com o proxy de saída de porta flexível ativado, o código e a configuração do AEM podem usá-los para fazer chamadas para serviços externos. Há duas opções de chamadas externas que o AEM trata de forma diferente:

  1. Chamadas HTTP/HTTPS para serviços externos em portas fora do padrão
    • Inclui chamadas HTTP/HTTPS feitas para serviços executados em portas diferentes das portas padrão 80 ou 443.
  2. chamadas não HTTP/HTTPS para serviços externos
    • Inclui chamadas não HTTP, como conexões com servidores de email, bancos de dados SQL ou serviços que são executados em outros protocolos não HTTP/HTTPS.

As solicitações HTTP/HTTPS do AEM em portas padrão (80/443) são permitidas por padrão e não precisam de configuração ou considerações extras.

HTTP/HTTPS em portas fora do padrão

Ao criar conexões HTTP/HTTPS com portas fora do padrão (não-80/443) do AEM, as conexões devem ser feitas por meio de hosts e portas especiais, fornecidas por meio de espaços reservados.

O AEM fornece dois conjuntos de variáveis especiais do sistema Java™ que são mapeadas para proxies HTTP/HTTPS do AEM.

Nome da variável
Utilização
Código Java™
Configuração OSGi
AEM_PROXY_HOST
Host proxy para conexões HTTP/HTTPS
System.getenv().getOrDefault("AEM_PROXY_HOST", "proxy.tunnel")
$[env:AEM_PROXY_HOST;default=proxy.tunnel]
AEM_HTTP_PROXY_PORT
Porta proxy para conexões HTTPS (defina o fallback como 3128)
System.getenv().getOrDefault("AEM_HTTP_PROXY_PORT", 3128)
$[env:AEM_HTTP_PROXY_PORT;default=3128]
AEM_HTTPS_PROXY_PORT
Porta proxy para conexões HTTPS (defina o fallback como 3128)
System.getenv().getOrDefault("AEM_HTTPS_PROXY_PORT", 3128)
$[env:AEM_HTTPS_PROXY_PORT;default=3128]

Ao fazer chamadas HTTP/HTTPS para serviços externos em portas fora do padrão, nenhuma portForwards deve ser definido usando a API do Cloud Manager enableEnvironmentAdvancedNetworkingConfiguration operação, já que as "regras" de encaminhamento de porta são definidas "no código".

TIP
Consulte a documentação de saída de porta flexível do AEM as a Cloud Service para o conjunto completo de regras de roteamento.

Exemplos de código

HTTP/HTTPS em portas fora do padrão

HTTP/HTTPS em portas fora do padrão

Exemplo de código Java™ que faz a conexão HTTP/HTTPS do AEM as a Cloud Service para um serviço externo em portas HTTP/HTTPS não padrão.

Conexões não HTTP/HTTPS com serviços externos

Ao criar conexões não HTTP/HTTPS (por exemplo, SQL, SMTP e assim por diante) do AEM, a conexão deve ser feita por meio de um nome de host especial fornecido pelo AEM.

Nome da variável
Utilização
Código Java™
Configuração OSGi
AEM_PROXY_HOST
Host proxy para conexões não HTTP/HTTPS
System.getenv().getOrDefault("AEM_PROXY_HOST", "proxy.tunnel")
$[env:AEM_PROXY_HOST;default=proxy.tunnel]

As conexões com serviços externos são então chamadas por meio do AEM_PROXY_HOST e a porta mapeada (portForwards.portOrig), que o AEM roteia para o nome de host externo mapeado (portForwards.name) e porta (portForwards.portDest).

Host do proxy
Porta do proxy
Host externo
Porta externa
AEM_PROXY_HOST
portForwards.portOrig
portForwards.name
portForwards.portDest

Exemplos de código

Conexão SQL usando JDBC DataSourcePool

Conexão SQL usando JDBC DataSourcePool

Exemplo de código Java™ conectando-se a bancos de dados SQL externos configurando o pool de fontes de dados JDBC do AEM.

Conexão SQL usando APIs Java

Conexão SQL usando APIs Java™

Exemplo de código Java™ conectando-se a bancos de dados SQL externos usando APIs SQL do Java™.

VPN (Virtual Private Network)

Serviço de e-mail

Exemplo de configuração OSGi usando AEM para se conectar a serviços de email externos.

recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69