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 flessibile della porta consente di collegare a 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 singolo tipo di infrastruttura di rete. Garantire che l'uscita della porta flessibile sia la più tipo appropriato di infrastruttura di rete per l’AEM as a Cloud Service prima di eseguire i seguenti comandi.
Prerequisiti
Durante l’impostazione o la configurazione dell’uscita di porta flessibile con le API di Cloud Manager sono necessari i seguenti elementi:
-
Progetto della console Adobe Developer con API di Cloud Manager abilitata e Autorizzazioni di Proprietario business di Cloud Manager
-
Accesso a Credenziali di autenticazione dell’API di 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 di Cloud Manager
Per ulteriori dettagli, consulta la procedura dettagliata seguente per scoprire come impostare, 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 effettuare le configurazioni API di Cloud Manager. Il fornito curl
I comandi presuppongono una sintassi Linux/macOS. Se si utilizza il prompt dei comandi di Windows, sostituire \
carattere di interruzione di riga con ^
.
Abilita uscita porta flessibile per programma
Iniziare abilitando l'uscita della porta flessibile su AEM as a Cloud Service.
L’uscita dalla porta flessibile può essere abilitata utilizzando Cloud Manager. I passaggi seguenti descrivono come abilitare l’uscita di porta flessibile su AEM as a Cloud Service utilizzando Cloud Manager.
-
Accedi a Adobe Experience Manager Cloud Manager Proprietario business di Cloud Manager.
-
Passa al programma desiderato.
-
Nel menu a sinistra, passa a Servizi > Infrastruttura di rete.
-
Seleziona la Aggiungere l'infrastruttura di rete pulsante.
-
In Aggiungere l'infrastruttura di rete , seleziona la Uscita porta flessibile e selezionare la Regione per creare l’indirizzo IP in uscita dedicato.
-
Seleziona Salva per confermare l’aggiunta dell’uscita della porta flessibile.
-
Attendere che l'infrastruttura di rete venga creata e contrassegnata come Pronto. Questo processo può richiedere fino a 1 ora.
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.
L’uscita dalla porta flessibile può essere abilitata utilizzando le API di Cloud Manager. I passaggi seguenti descrivono come abilitare l’uscita di porta flessibile su AEM as a Cloud Service utilizzando l’API di Cloud Manager.
-
Innanzitutto, determina l’area in cui è configurato il networking avanzato utilizzando l’API di Cloud Manager. listRegions operazione. Il
region name
è richiesto per effettuare chiamate API successive di Cloud Manager. 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 sotto dettagli dell’ambiente. Il nome dell’area visualizzato in Cloud Manager può essere mappato al codice di regione utilizzato nell’API di 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'
-
Abilitare l’uscita con porta flessibile per un programma Cloud Manager utilizzando l’API di Cloud Manager createNetworkInfrastructure operazione. Utilizza il
region
codice ottenuto dall’API di Cloud ManagerlistRegions
operazione.richiesta 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" }'
Attendi 15 minuti affinché il programma Cloud Manager esegua il provisioning dell’infrastruttura di rete.
-
Verifica che l’ambiente sia stato completato uscita porta flessibile configurazione tramite l’API di Cloud Manager getNetworkInfrastructure funzionamento, utilizzando
id
restituiti dalcreateNetworkInfrastructure
richiesta HTTP 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'
Verifica 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
-
Abilita e configura il uscita porta flessibile configurazione in ogni ambiente AEM as a Cloud Service tramite l’API di Cloud Manager enableEnvironmentAdvancedNetworkingConfiguration operazione.
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
Definire i parametri JSON in una
flexible-port-egress.json
e forniti a 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.
code language-json { "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: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 l’implementazione dell’AEM solo richiede connessioni HTTP/HTTPS (porta 80/443) al servizio esterno, lasciare
portForwards
array vuoto, in quanto queste regole sono necessarie solo per le richieste non HTTP/HTTPS. -
Per ogni ambiente, verifica che le regole di uscita siano attive utilizzando l’API di Cloud Manager. getEnvironmentAdvancedNetworkingConfiguration operazione.
richiesta 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'
-
Le configurazioni di uscita della porta flessibile possono essere aggiornate utilizzando l’API di Cloud Manager enableEnvironmentAdvancedNetworkingConfiguration operazione. Ricorda
enableEnvironmentAdvancedNetworkingConfiguration
è unPUT
, pertanto tutte le regole devono essere fornite con ogni chiamata di questa operazione. -
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:
- 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.
- 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.
AEM_PROXY_HOST
System.getenv().getOrDefault("AEM_PROXY_HOST", "proxy.tunnel")
$[env:AEM_PROXY_HOST;default=proxy.tunnel]
AEM_HTTP_PROXY_PORT
3128
)System.getenv().getOrDefault("AEM_HTTP_PROXY_PORT", 3128)
$[env:AEM_HTTP_PROXY_PORT;default=3128]
AEM_HTTPS_PROXY_PORT
3128
)System.getenv().getOrDefault("AEM_HTTPS_PROXY_PORT", 3128)
$[env:AEM_HTTPS_PROXY_PORT;default=3128]
Quando si effettuano chiamate HTTP/HTTPS a servizi esterni su porte non standard, non viene restituito alcun portForwards
deve essere definito utilizzando l’API di Cloud Manager enableEnvironmentAdvancedNetworkingConfiguration
operazione, in quanto le "regole" di port forwarding sono definite "nel codice".
Esempi di codice
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.
AEM_PROXY_HOST
System.getenv().getOrDefault("AEM_PROXY_HOST", "proxy.tunnel")
$[env:AEM_PROXY_HOST;default=proxy.tunnel]
Le connessioni ai servizi esterni vengono quindi richiamate tramite AEM_PROXY_HOST
e la porta mappata (portForwards.portOrig
), che AEM indirizza quindi al nome host esterno mappato (portForwards.name
) e porta (portForwards.portDest
).
AEM_PROXY_HOST
portForwards.portOrig
portForwards.name
portForwards.portDest