Conexões HTTP/HTTPS para endereço IP de saída dedicado e VPN

As conexões HTTP/HTTPS são automaticamente enviadas por proxy de AEM as a Cloud Service com endereço IP de saída dedicado ou VPN, e não precisam de nenhuma portForwards regras.

Suporte avançado para rede

O código de exemplo a seguir é suportado pelas seguintes opções avançadas de rede.

Verifique se a variável endereço IP de saída dedicado ou VPN a configuração avançada de rede foi configurada antes de seguir este tutorial.

Sem rede avançada Saída flexível da porta Endereço IP de saída dedicado Rede privada virtual
ATENÇÃO

Este exemplo de código é somente para Endereço IP de saída dedicado e VPN. Um exemplo de código semelhante, mas diferente, está disponível para Conexões HTTP/HTTPS em portas não padrão para saída de porta flexível.

Exemplo de código

Este exemplo de código Java™ é de um serviço OSGi que pode ser executado em AEM as a Cloud Service que faz uma conexão HTTP com um servidor da Web externo no 8080. As conexões HTTPS (ou HTTP) são automaticamente enviadas por proxy AEM as a Cloud Service e não exigem desenvolvimento especial.

OBSERVAÇÃO

Recomenda-se que APIs HTTP do Java™ 11 são usadas para fazer chamadas HTTP/HTTPS do AEM.

  • core/src/com/adobe/aem/wknd/examples/connections/impl/HttpExternalServiceImpl.java
package com.adobe.aem.wknd.examples.core.connections.impl;

import com.adobe.aem.wknd.examples.core.connections.ExternalService;
import org.osgi.service.component.annotations.Component;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

@Component
public class HttpExternalServiceImpl implements ExternalService {
    private static final Logger log = LoggerFactory.getLogger(HttpExternalServiceImpl.class);

    // client with connection pool reused for all requests
    private HttpClient client = HttpClient.newBuilder().build();

    @Override
    public boolean isAccessible() {

        // Prepare the full URI to request, note this will have the
        // - Scheme (http/https)
        // - External host name
        // - External port
        // The external service URI, including the scheme/host/port, is defined in code, rather than in Cloud Manager portForwards rules.
        URI uri = URI.create("http://api.example.com:8080/test.json");

        // Prepare the HttpRequest
        HttpRequest request = HttpRequest.newBuilder().uri(uri).timeout(Duration.ofSeconds(2)).build();

        // Send the HttpRequest using the configured HttpClient
        HttpResponse<String> response = null;
        try {
            // Request the URL
            response = client.send(request, HttpResponse.BodyHandlers.ofString());

            log.debug("HTTP response body: {} ", response.body());

            // Our simple example returns true is response is successful! (200 status code)
            return response.statusCode() == 200;
        } catch (IOException e) {
            return false;
        } catch (InterruptedException e) {
            return false;
        }
    }
}

Nesta página