Uscita porta flessibile

Scopri come impostare e utilizzare un'uscita di porta flessibile per supportare connessioni esterne da AEM as a Cloud Service a servizi esterni.

Che cos'è l'uscita della porta flessibile?

L'uscita di porta flessibile consente di allegare a AEM as a Cloud Service regole di inoltro di porta specifiche e personalizzate, consentendo connessioni da AEM a servizi esterni.

Un programma Cloud Manager può avere solo un singolo tipo di infrastruttura di rete. Assicurati che l'indirizzo IP dedicato in uscita sia il più importante tipo adeguato di infrastruttura di rete per la AEM as a Cloud Service prima di eseguire i seguenti comandi.

Prerequisiti

Quando si imposta un'uscita di porta flessibile sono necessari i seguenti requisiti:

Per ulteriori dettagli, consulta la procedura dettagliata seguente per scoprire come configurare, configurare e ottenere le credenziali API di Cloud Manager e come utilizzarle per effettuare una chiamata API di Cloud Manager.

Questa esercitazione utilizza curl per configurare le configurazioni API di Cloud Manager. Il curl i comandi si basano su una sintassi Linux/macOS. Se utilizzi il prompt dei comandi di Windows, sostituisci il \ carattere di interruzione di riga con ^.

Abilita uscita porta flessibile per programma

Inizia abilitando l'uscita della porta flessibile su AEM as a Cloud Service.

  1. Innanzitutto, determina la regione in cui verrà impostata la rete avanzata utilizzando l’API di Cloud Manager. listRegion funzionamento. La region name è necessario per effettuare chiamate API di Cloud Manager successive. In genere, viene utilizzata l'area in cui si trova l'ambiente Produzione.

    richiesta HTTP listRegion

    $ 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. Abilitare l’uscita della porta flessibile per un programma Cloud Manager tramite l’API di Cloud Manager createNetworkInfrastructure funzionamento. Utilizza le region codice ottenuto dall’API di Cloud Manager listRegions funzionamento.

    richiesta 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" }'
    

    Attendi 15 minuti affinché il programma Cloud Manager esegua il provisioning dell’infrastruttura di rete.

  3. Verifica che l’ambiente sia stato completato uscita porta flessibile configurazione tramite l’API di Cloud Manager getNetworkInfrastructure utilizzando id restituito dalla richiesta HTTP createNetworkInfrastructure nel passaggio precedente.

    richiesta 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'
    

    Verifica che la risposta HTTP contenga un status di ready. Se non è ancora pronto, controlla di nuovo lo stato ogni pochi minuti.

Configura proxy di uscita flessibili per ogni ambiente

  1. Abilita e configura le uscita porta flessibile configurazione su ogni ambiente as a Cloud Service AEM utilizzando l’API di Cloud Manager enableEnvironmentAdvancedNetworkingConfiguration funzionamento.

    richiesta 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
    

    Definire i parametri JSON in un flexible-port-egress.json e fornito per curl tramite ... -d @./flexible-port-egress.json.

    Scarica l'esempio Flexible-port-egress.json. Questo file è solo un esempio. Configura il file come richiesto in base ai campi facoltativi/obbligatori documentati in enableEnvironmentAdvancedNetworkingConfiguration.

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

    Per ogni portForwards mappatura, la rete avanzata definisce la seguente regola di inoltro:

    Host proxy Porta proxy Host esterno Porta esterna
    AEM_PROXY_HOST portForwards.portOrig portForwards.name portForwards.portDest

    Se la distribuzione AEM only richiede connessioni HTTP/HTTPS (porta 80/443) al servizio esterno, lascia portForwards array vuoto, in quanto queste regole sono necessarie solo per le richieste non HTTP/HTTPS.

  2. Per ogni ambiente, convalida le regole di uscita effettive utilizzando l’API di Cloud Manager getEnvironmentAdvancedNetworkingConfiguration funzionamento.

    richiesta 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'
    
  3. Le configurazioni di uscita delle porte flessibili possono essere aggiornate utilizzando l’API di Cloud Manager enableEnvironmentAdvancedNetworkingConfiguration funzionamento. Ricorda enableEnvironmentAdvancedNetworkingConfiguration è un PUT quindi tutte le regole devono essere fornite con ogni chiamata di questa operazione.

  4. Ora puoi utilizzare la configurazione flessibile dell’uscita della porta nel codice AEM e nella configurazione personalizzati.

Collegamento a servizi esterni tramite uscita di porta flessibile

Con il proxy di uscita della porta flessibile abilitato, il codice AEM e la configurazione possono utilizzarli per effettuare chiamate a servizi esterni. Esistono due tipi di chiamate esterne che AEM trattate in modo diverso:

  1. Chiamate HTTP/HTTPS a servizi esterni su porte non standard
    • Include le chiamate HTTP/HTTPS effettuate a servizi in esecuzione su porte diverse dalle porte standard 80 o 443.
  2. chiamate non HTTP/HTTPS a servizi esterni
    • Include tutte le chiamate non HTTP, come le connessioni con server di posta, database SQL o servizi che vengono eseguite su altri protocolli non HTTP/HTTPS.

Le richieste HTTP/HTTPS da AEM sulle porte standard (80/443) sono consentite per impostazione predefinita e non richiedono configurazioni o considerazioni aggiuntive.

HTTP/HTTPS su porte non standard

Quando si creano connessioni HTTP/HTTPS a porte non standard (not-80/443) da AEM, le connessioni devono essere effettuate tramite host e porte speciali, forniti tramite segnaposto.

AEM fornisce due set di variabili di sistema Java™ speciali associate a proxy HTTP/HTTPS AEM.

| Nome della variabile | Uso | Codice Java™ | Configurazione OSGi | | - | - | - | - | | AEM_PROXY_HOST | Host proxy per entrambe le connessioni HTTP/HTTPS | System.getenv().getOrDefault("AEM_PROXY_HOST", "proxy.tunnel") | $[env:AEM_PROXY_HOST;default=proxy.tunnel] | | AEM_HTTP_PROXY_PORT | Porta proxy per le connessioni HTTPS (impostare il fallback su 3128) | System.getenv().getOrDefault("AEM_HTTP_PROXY_PORT", 3128) | $[env:AEM_HTTP_PROXY_PORT;default=3128] | | AEM_HTTPS_PROXY_PORT | Porta proxy per le connessioni HTTPS (impostare il fallback su 3128) | System.getenv().getOrDefault("AEM_HTTPS_PROXY_PORT", 3128) | $[env:AEM_HTTPS_PROXY_PORT;default=3128] |

Quando si eseguono chiamate HTTP/HTTPS a servizi esterni su porte non standard, non corrisponde portForwards deve essere definito utilizzando l’API di Cloud Manager enableEnvironmentAdvancedNetworkingConfiguration , in quanto le "regole" di inoltro della porta sono definite "nel codice".

SUGGERIMENTO

Consulta la documentazione sull'uscita della porta flessibile di AEM as a Cloud Service per l'intero insieme di regole di routing.

Esempi di codice

HTTP/HTTPS su porte non standard

Esempio di codice Java™ per la connessione HTTP/HTTPS da AEM as a Cloud Service a un servizio esterno su porte HTTP/HTTPS non standard.

Connessioni non HTTP/HTTPS a servizi esterni

Durante la creazione di connessioni non HTTP/HTTPS (ad esempio. SQL, SMTP e così via) da AEM, la connessione deve essere effettuata attraverso un nome host speciale fornito da AEM.

| Nome della variabile | Uso | Codice Java™ | Configurazione OSGi | | - | - | - | - | | AEM_PROXY_HOST | Host proxy per connessioni non HTTP/HTTPS | System.getenv().getOrDefault("AEM_PROXY_HOST", "proxy.tunnel") | $[env:AEM_PROXY_HOST;default=proxy.tunnel] |

Le connessioni a servizi esterni vengono quindi chiamate attraverso AEM_PROXY_HOST e la porta mappata (portForwards.portOrig), che AEM quindi effettua l’indirizzamento al nome host esterno mappato (portForwards.name) e la porta (portForwards.portDest).

Host proxy Porta proxy Host esterno Porta esterna
AEM_PROXY_HOST portForwards.portOrig portForwards.name portForwards.portDest

Esempi di codice

Connessione SQL tramite JDBC DataSourcePool

Esempio di codice Java™ che si collega a database SQL esterni configurando AEM pool di origini dati JDBC.

Connessione SQL tramite API Java

Esempio di codice Java™ per la connessione a database SQL esterni utilizzando le API SQL di Java™.

Virtual Private Network (VPN)

Esempio di configurazione OSGi tramite AEM per la connessione a servizi e-mail esterni.

In questa pagina