Uscita da porta flessibile

Scopri come impostare e utilizzare l’uscita flessibile della porta per supportare connessioni esterne da AEM as a Cloud Service a servizi esterni.

Cos’è l’uscita con porta flessibile?

L’uscita di porta flessibile consente di collegare ad AEM as a Cloud Service regole specifiche e personalizzate per l’inoltro delle porte, consentendo di effettuare connessioni dall’AEM a servizi esterni.

Un programma Cloud Manager può avere solo un tipo di infrastruttura di rete singolo. Prima di eseguire i seguenti comandi, assicurati che l'uscita da porta flessibile sia il tipo di infrastruttura di rete 🔗 più appropriato per il tuo AEM as a Cloud Service.

Prerequisiti

Quando si imposta o si configura l’uscita di porta flessibile con le API di Cloud Manager, è necessario quanto segue:

  • Progetto Adobe Developer Console con API Cloud Manager abilitata e autorizzazioni Proprietario business Cloud Manager

  • Accedi alle credenziali di autenticazione dell'API Cloud Manager 🔗

    • ID organizzazione (ID organizzazione IMS)
    • ID client (alias chiave API)
    • Token di accesso (token Bearer)
  • ID del programma Cloud Manager

  • ID dell’ambiente Cloud Manager

Per ulteriori dettagli consulta come impostare, configurare e ottenere le credenziali API di Cloud Manager, per utilizzarle per effettuare una chiamata API di Cloud Manager.

Questo tutorial utilizza curl per creare le configurazioni API di Cloud Manager. I comandi curl forniti assumono una sintassi Linux/macOS. Se si utilizza il prompt dei comandi di Windows, sostituire il carattere di interruzione di riga \ con ^.

Abilita uscita porta flessibile per programma

Per iniziare, abilita l’uscita della porta flessibile su AEM as a Cloud Service.

Cloud Manager

L’uscita dalla porta flessibile può essere abilitata utilizzando Cloud Manager. I passaggi seguenti descrivono come abilitare l’uscita con porta flessibile su AEM as a Cloud Service utilizzando Cloud Manager.

  1. Accedi a Adobe Experience Manager Cloud Manager come Proprietario business Cloud Manager.

  2. Passa al programma desiderato.

  3. Nel menu a sinistra, passare a Servizi > Infrastruttura di rete.

  4. Selezionare il pulsante Aggiungi infrastruttura di rete.

    Aggiungi infrastruttura di rete

  5. Nella finestra di dialogo Aggiungi infrastruttura di rete, seleziona l'opzione Uscita porta flessibile e la Area per creare l'indirizzo IP in uscita dedicato.

    Aggiungi uscita porta flessibile

  6. Seleziona Salva per confermare l'aggiunta dell'uscita della porta flessibile.

    Conferma creazione uscita porta flessibile

  7. Attendere che l'infrastruttura di rete venga creata e contrassegnata come Pronta. Questo processo può richiedere fino a 1 ora.

    Stato creazione uscita porta flessibile

Con l’uscita della porta flessibile creata, ora puoi configurare le regole di inoltro della porta utilizzando le API di Cloud Manager come descritto di seguito.

API Cloud Manager

L’uscita dalla porta flessibile può essere abilitata utilizzando le API di Cloud Manager. I passaggi seguenti descrivono come abilitare l’uscita con porta flessibile su AEM as a Cloud Service utilizzando l’API Cloud Manager.

  1. Innanzitutto, determina l'area in cui è impostata la rete avanzata utilizzando l'operazione listRegions dell'API Cloud Manager. region name è necessario per effettuare chiamate API Cloud Manager successive. In genere, viene utilizzata l’area in cui risiede l’ambiente di produzione.

    Trova l'area geografica dell'ambiente AEM as a Cloud Service in Cloud Manager nei dettagli ambiente. Il nome dell'area visualizzato in Cloud Manager può essere mappato al codice dell'area utilizzato nell'API Cloud Manager.

    richiesta 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. Abilita l'uscita con porta flessibile per un programma Cloud Manager utilizzando l'operazione createNetworkInfrastructure dell'API Cloud Manager. Utilizza il codice region appropriato ottenuto dall'operazione listRegions dell'API Cloud Manager.

    createNetworkInfrastructure richiesta HTTP

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

    Attendere 15 minuti affinché il programma Cloud Manager esegua il provisioning dell'infrastruttura di rete.

  3. Verificare che l'ambiente abbia completato la configurazione di uscita porta flessibile tramite l'operazione getNetworkInfrastructure dell'API Cloud Manager, utilizzando id restituito dalla richiesta HTTP createNetworkInfrastructure nel passaggio precedente.

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

    Verificare che la risposta HTTP contenga un stato di pronto. Se non è ancora pronto, ricontrolla lo stato ogni pochi minuti.

Con l’uscita della porta flessibile creata, ora puoi configurare le regole di inoltro della porta utilizzando le API di Cloud Manager come descritto di seguito.

Configurare proxy di uscita di porta flessibili per ambiente

  1. Abilita e configura la configurazione dell'uscita porta flessibile in ogni ambiente AEM as a Cloud Service utilizzando l'operazione enableEnvironmentAdvancedNetworkingConfiguration dell'API Cloud Manager.

    enableEnvironmentAdvancedNetworkingConfiguration richiesta HTTP

    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
    

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

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

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

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

    table 0-row-5 1-row-5
    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, lasciare vuoto l'array portForwards, in quanto queste regole sono necessarie solo per le richieste non HTTP/HTTPS.

  2. Per ogni ambiente, verifica che le regole di uscita siano attive utilizzando l'operazione API getEnvironmentAdvancedNetworkingConfiguration di Cloud Manager.

    getEnvironmentAdvancedNetworkingConfiguration richiesta HTTP

    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. Le configurazioni di uscita della porta flessibile possono essere aggiornate utilizzando l'operazione API enableEnvironmentAdvancedNetworkingConfiguration di Cloud Manager. Ricorda che enableEnvironmentAdvancedNetworkingConfiguration è un'operazione PUT, pertanto tutte le regole devono essere fornite con ogni chiamata di questa operazione.

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

Connessione a servizi esterni tramite uscita porta flessibile

Con il proxy di uscita con porta flessibile abilitato, il codice e la configurazione AEM possono utilizzarli per effettuare chiamate a servizi esterni. Esistono due tipi di chiamate esterne che l’AEM tratta 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, ad esempio le connessioni con i server di posta, i database SQL o i servizi eseguiti 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 (non-80/443) dall’AEM, le connessioni devono essere effettuate tramite host e porte speciali, forniti tramite segnaposto.

L'AEM fornisce due set di variabili speciali di sistema Java™ mappate ai proxy HTTP/HTTPS dell'AEM.

Nome variabile
Utilizzare
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 connessioni HTTPS (fallback impostato su 3128)
System.getenv().getOrDefault("AEM_HTTP_PROXY_PORT", 3128)
$[env:AEM_HTTP_PROXY_PORT;default=3128]
AEM_HTTPS_PROXY_PORT
Porta proxy per connessioni HTTPS (fallback impostato 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 è necessario definire portForwards corrispondenti utilizzando l'operazione API enableEnvironmentAdvancedNetworkingConfiguration di Cloud Manager, in quanto le "regole" di inoltro delle porte sono definite "nel codice".

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

Esempi di codice

HTTP/HTTPS su porte non standard

HTTP/HTTPS su porte non standard

Esempio di codice Java™ per stabilire una 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 es. SQL, SMTP e così via) dall’AEM, la connessione deve essere effettuata attraverso uno speciale nome host fornito dall’AEM.

Nome variabile
Utilizzare
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 ai servizi esterni vengono quindi chiamate tramite AEM_PROXY_HOST e la porta mappata (portForwards.portOrig), che AEM indirizza quindi al nome host esterno mappato (portForwards.name) e alla 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 DataSourcePool JDBC

Connessione SQL tramite DataSourcePool JDBC

Esempio di codice Java™ connessione a database SQL esterni tramite la configurazione del pool di origini dati JDBC dell'AEM.

Connessione SQL tramite API Java

Connessione SQL tramite API Java™

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

Virtual Private Network (VPN)

Servizio di posta elettronica

Esempio di configurazione OSGi con AEM per la connessione a servizi di posta elettronica esterni.

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