Saiba como configurar e usar portas flexíveis para suportar conexões externas de AEM as a Cloud Service a serviços externos.
O acesso flexível da porta permite que regras personalizadas e específicas de encaminhamento da porta sejam anexadas a AEM as a Cloud Service, permitindo que sejam feitas conexões de AEM a serviços externos.
Um programa do Cloud Manager só pode ter um individual tipo de infraestrutura de rede. Certifique-se de que o endereço IP de saída dedicado seja o mais tipo adequado de infraestrutura de rede para seu AEM as a Cloud Service antes de executar os seguintes comandos.
Os itens a seguir são necessários ao configurar saídas flexíveis da porta:
Para obter mais detalhes, consulte a seguinte apresentação sobre como configurar, configurar e obter credenciais da API do Cloud Manager e como usá-las para fazer uma chamada da API do Cloud Manager.
Este tutorial usa curl
para fazer as configurações da API do Cloud Manager. O curl
Os comandos assumem uma sintaxe Linux/macOS. Se estiver usando o prompt de comando do Windows, substitua o \
caractere de quebra de linha com ^
.
Comece ativando o acesso flexível da porta AEM as a Cloud Service.
Primeiro, determine a região em que a Rede avançada está configurada usando a API do Cloud Manager listRegiões operação. O 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.
solicitação HTTP listRegiões
$ 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'
Habilitar saída de porta flexível para um Programa 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
$ 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 Cloud Manager forneça a infraestrutura de rede.
Verifique se o ambiente foi concluído saída de porta flexível configuração usando a API do Cloud Manager getNetworkInfrastructure , usando a id
retornado da solicitação HTTP createNetworkInfrastructure na etapa anterior.
solicitação HTTP getNetworkInfrastructure
$ 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 uma status de ready. Se ainda não estiver pronto, verifique novamente o status a cada poucos minutos.
Ative e configure a variável saída de porta flexível configuração em cada ambiente AEM as a Cloud Service usando a API do Cloud Manager enableEnvironmentAdvancedNetworkingConfiguration operação.
solicitação HTTP enableEnvironmentAdvancedNetworkingConfiguration
$ 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 um flexible-port-egress.json
e fornecidos por via de curl ... -d @./flexible-port-egress.json
.
Baixe o exemplo flexível-port-egress.json. Este arquivo é apenas um exemplo. Configure seu arquivo conforme necessário com base nos campos opcionais/obrigatórios documentados em enableEnvironmentAdvancedNetworkingConfiguration.
{
"portForwards": [
{
"name": "mysql.example.com",
"portDest": 3306,
"portOrig": 30001
},
{
"name": "smtp.sendgrid.com",
"portDest": 465,
"portOrig": 30002
}
]
}
Para cada portForwards
, a rede avançada define a seguinte regra de encaminhamento:
Host proxy | Porta proxy | Host externo | Porta externa | |
---|---|---|---|---|
AEM_PROXY_HOST |
portForwards.portOrig |
→ | portForwards.name |
portForwards.portDest |
Se sua implantação de AEM only exige conexões HTTP/HTTPS (porta 80/443) para o serviço externo, deixe a variável portForwards
matriz vazia, pois essas regras são necessárias apenas para solicitações não HTTP/HTTPS.
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
$ 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'
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
, portanto, todas as regras devem ser fornecidas com cada invocação desta operação.
Agora você pode usar a configuração flexível de saída da porta em seu código e configuração de AEM personalizados.
Com o proxy de saída de porta flexível ativado, AEM código e configuração podem usá-los para fazer chamadas para serviços externos. Há dois sabores de chamadas externas que AEM tratam de forma diferente:
Por padrão, as solicitações HTTP/HTTPS de AEM em portas padrão (80/443) são permitidas e não precisam de configuração ou considerações adicionais.
Ao criar conexões HTTP/HTTPS com portas não padrão (não-80/443) a partir de AEM, as conexões devem ser feitas por meio de host e portas especiais, fornecidas por meio de espaços reservados.
AEM fornece dois conjuntos de variáveis especiais do sistema Java™ que mapeiam para AEM proxies HTTP/HTTPS.
| Nome da variável | Utilização | Código Java™ | Configuração OSGi | | - | - | - | - | | AEM_PROXY_HOST
| Host proxy para ambas as 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 para 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 para 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 não padrão, nenhum portForwards
deve ser definido usando a API do Cloud Manager enableEnvironmentAdvancedNetworkingConfiguration
, já que as "regras" de encaminhamento de porta são definidas como "em código".
Consulte AEM documentação de saída de porta flexível do as a Cloud Service para o conjunto completo de regras de roteamento.
![]() Exemplo de código Java™ tornando a conexão HTTP/HTTPS de AEM as a Cloud Service para um serviço externo em portas HTTP/HTTPS não padrão. |
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 da variável AEM_PROXY_HOST
e a porta mapeada (portForwards.portOrig
), que AEM então roteia para o nome de host externo mapeado (portForwards.name
) e a porta (portForwards.portDest
).
Host proxy | Porta proxy | Host externo | Porta externa | |
---|---|---|---|---|
AEM_PROXY_HOST |
portForwards.portOrig |
→ | portForwards.name |
portForwards.portDest |