Salida de puerto flexible
Obtenga información sobre cómo configurar y utilizar la salida de puerto flexible para admitir conexiones externas de AEM as a Cloud Service a servicios externos.
¿Qué es la salida de puerto flexible?
La salida de puerto flexible permite adjuntar a AEM as a Cloud Service AEM reglas de reenvío de puerto específicas y personalizadas, lo que permite realizar conexiones desde el puerto a servicios externos.
Un programa Cloud Manager solo puede tener un tipo de infraestructura de red single. Asegúrese de que la salida de puerto flexible sea el tipo más apropiado de infraestructura de red para su AEM as a Cloud Service antes de ejecutar los siguientes comandos.
Requisitos previos
Se requiere lo siguiente al configurar una salida de puerto flexible mediante las API de Cloud Manager:
-
Proyecto de Adobe Developer Console con la API de Cloud Manager habilitada y permisos de propietario de Cloud Manager Business
-
Acceso a credenciales de autenticación de la API de Cloud Manager
- ID de organización (también conocido como ID de organización de IMS)
- ID del cliente (también conocido como clave API)
- Token de acceso (también conocido como Token de portador)
-
El ID del programa Cloud Manager
-
Los ID de entorno de Cloud Manager
Para obtener más información revise cómo configurar y obtener las credenciales de la API de Cloud Manager para utilizarlas en una llamada de la API de Cloud Manager.
Este tutorial utiliza curl
para realizar las configuraciones de la API de Cloud Manager. Los comandos curl
proporcionados suponen una sintaxis Linux/macOS. Si usa el símbolo del sistema de Windows, reemplace el carácter de salto de línea \
por ^
.
Habilitar salida de puerto flexible por programa
Comience habilitando la salida de puerto flexible en AEM as a Cloud Service.
La salida de puerto flexible se puede activar mediante Cloud Manager. Los siguientes pasos describen cómo habilitar la salida de puerto flexible en AEM as a Cloud Service mediante Cloud Manager.
-
Inicie sesión en Adobe Experience Manager Cloud Manager como propietario de Cloud Manager Business.
-
Vaya al programa deseado.
-
En el menú de la izquierda, vaya a Servicios > Infraestructura de red.
-
Seleccione el botón Agregar infraestructura de red.
-
En el cuadro de diálogo Agregar infraestructura de red, seleccione la opción Salida de puerto flexible y seleccione la Región para crear la dirección IP de salida dedicada.
-
Seleccione Guardar para confirmar la adición de la salida de puerto flexible.
-
Espere a que se cree la infraestructura de red y se marque como Listo. Este proceso puede tardar hasta 1 hora.
Con la salida de puerto flexible creada, ahora puede configurar las reglas de reenvío de puerto mediante las API de Cloud Manager como se describe a continuación.
La salida de puerto flexible se puede habilitar mediante las API de Cloud Manager. Los siguientes pasos describen cómo habilitar la salida de puerto flexible en AEM as a Cloud Service mediante la API de Cloud Manager.
-
En primer lugar, determine la región en la que está configurada la red avanzada mediante la operación listRegions de la API de Cloud Manager. Se requiere
region name
para realizar llamadas subsiguientes a la API de Cloud Manager. Normalmente, se utiliza la región en la que reside el entorno de producción.Busque la región de su entorno de AEM as a Cloud Service en Cloud Manager en los detalles del entorno. El nombre de región mostrado en Cloud Manager se puede asignar al código de región utilizado en la API de Cloud Manager.
solicitud 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'
-
Habilite la salida de puerto flexible para un programa de Cloud Manager mediante la operación createNetworkInfrastructure de la API de Cloud Manager. Utilice el código
region
apropiado obtenido de la operación de la API de Cloud ManagerlistRegions
.solicitud 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" }'
Espere 15 minutos para que el programa Cloud Manager aprovisione la infraestructura de red.
-
Compruebe que el entorno haya finalizado la configuración de salida de puerto flexible mediante la operación getNetworkInfrastructure de la API de Cloud Manager, utilizando la
id
devuelta desde la solicitud HTTPcreateNetworkInfrastructure
del paso anterior.petición 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'
Compruebe que la respuesta HTTP contiene un estado de listo. Si aún no está listo, vuelva a comprobar el estado cada pocos minutos.
Con la salida de puerto flexible creada, ahora puede configurar las reglas de reenvío de puerto mediante las API de Cloud Manager como se describe a continuación.
Configuración de proxies de salida de puerto flexibles por entorno
-
Habilite y configure la configuración de salida de puerto flexible en cada entorno de AEM as a Cloud Service mediante la operación enableEnvironmentAdvancedNetworkingConfiguration de la API de Cloud Manager.
petición HTTP enableEnvironmentAdvancedNetworkingConfiguration
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
Defina los parámetros JSON en un
flexible-port-egress.json
y proporcione para ondulación mediante... -d @./flexible-port-egress.json
.Descargue el ejemplo flexible-port-egress.json. Este archivo es solo un ejemplo. Configure el archivo según sea necesario en función de los campos opcionales/obligatorios documentados en enableEnvironmentAdvancedNetworkingConfiguration.
code language-json { "portForwards": [ { "name": "mysql.example.com", "portDest": 3306, "portOrig": 30001 }, { "name": "smtp.sendgrid.com", "portDest": 465, "portOrig": 30002 } ] }
Para cada asignación
portForwards
, la red avanzada define la siguiente regla de reenvío:table 0-row-5 1-row-5 Host de proxy Puerto Proxy Host externo Puerto externo AEM_PROXY_HOST
portForwards.portOrig
→ portForwards.name
portForwards.portDest
AEM Si la implementación de la only requiere conexiones HTTP/HTTPS (puerto 80/443) al servicio externo, deje vacía la matriz
portForwards
, ya que estas reglas solo son necesarias para solicitudes que no sean HTTP/HTTPS. -
Para cada entorno, valide que las reglas de salida estén en vigor mediante la operación de la API de Cloud Manager getEnvironmentAdvancedNetworkingConfiguration.
petición 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'
-
Las configuraciones de salida de puerto flexible se pueden actualizar mediante la operación de la API de Cloud Manager enableEnvironmentAdvancedNetworkingConfiguration. Recuerde que
enableEnvironmentAdvancedNetworkingConfiguration
es una operación dePUT
, por lo que todas las reglas deben proporcionarse con cada invocación de esta operación. -
AEM Ahora, puede utilizar la configuración flexible de salida de puerto en el código personalizado de la y en la configuración.
Conexión a servicios externos mediante salida de puerto flexible
AEM Con el proxy de salida de puerto flexible habilitado, el código y la configuración de la pueden utilizarlos para realizar llamadas a servicios externos. AEM Existen dos tipos de llamadas externas que se tratan de manera diferente en el modo que se hace:
- Llamadas HTTP/HTTPS a servicios externos en puertos no estándar
- Incluye llamadas HTTP/HTTPS realizadas a servicios que se ejecutan en puertos que no son los puertos estándar 80 o 443.
- llamadas no HTTP/HTTPS a servicios externos
- Incluye cualquier llamada que no sea HTTP, como conexiones con servidores de correo, bases de datos SQL o servicios que se ejecutan en otros protocolos que no son HTTP/HTTPS.
AEM Las solicitudes HTTP/HTTPS de los puertos estándar (80/443) se permiten de forma predeterminada y no necesitan configuraciones ni consideraciones adicionales.
HTTP/HTTPS en puertos no estándar
AEM Cuando se crean conexiones HTTP/HTTPS a puertos no estándar (no-80/443) desde la red de puertos, las conexiones deben realizarse a través de puertos y hosts especiales, proporcionados mediante marcadores de posición.
AEM AEM proporciona dos conjuntos de variables de sistema Java™ especiales que se asignan a los proxies HTTP/HTTPS que se utilizan para la ejecución de un proceso de.
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]
Al realizar llamadas HTTP/HTTPS a servicios externos en puertos no estándar, no se debe definir ningún portForwards
correspondiente mediante la operación de la API de Cloud Manager enableEnvironmentAdvancedNetworkingConfiguration
, ya que las "reglas" de reenvío de puertos se definen "en el código".
Ejemplos de código
Conexiones no HTTP/HTTPS a servicios externos
Al crear conexiones no HTTP/HTTPS (por ejemplo, AEM AEM SQL, SMTP, etc.) desde el punto de vista de la seguridad, la conexión debe realizarse a través de un nombre de host especial proporcionado por el usuario de la red de seguridad de la red de datos (SQL, SMTP, etc.) de la red de seguridad de la red de datos
AEM_PROXY_HOST
System.getenv().getOrDefault("AEM_PROXY_HOST", "proxy.tunnel")
$[env:AEM_PROXY_HOST;default=proxy.tunnel]
AEM A continuación, se llama a las conexiones a servicios externos a través de AEM_PROXY_HOST
y del puerto asignado (portForwards.portOrig
), que luego enruta al nombre de host externo asignado (portForwards.name
) y al puerto (portForwards.portDest
).
AEM_PROXY_HOST
portForwards.portOrig
portForwards.name
portForwards.portDest