

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Escenarios de conectividad avanzada
<a name="connectivity-scenarios"></a>

AWS SDK para SAP ABAP consume Servicios de AWS realizando llamadas HTTPS a los AWS puntos finales. En general, los puntos de conexión de AWS son accesibles a través de Internet. Un sistema SAP debe poder conectarse a Internet para establecer estas conexiones salientes. El SDK de SAP ABAP nunca requiere una conexión entrante desde Internet al sistema SAP.

Los siguientes escenarios ofrecen diferentes formas de establecer la conexión saliente.

**Topics**
+ [Conexión a través de un servidor proxy](#proxy-server)
+ [Conexión a través de un firewall de inspección de paquetes](#packet-firewall)
+ [Puntos de conexión de la puerta de enlace](#gateway-endpoints)
+ [Puntos de conexión personalizados](#interface-endpoints)
+ [Enrutamiento avanzado](#advanced-routing)
+ [Acceso a puntos de conexión en varias regiones](#multiple-regions)

## Conexión a través de un servidor proxy
<a name="proxy-server"></a>

Para establecer una conexión a través de un servidor proxy, siga estos pasos.

1. En el SDK, vaya a Transacción **`SICF`**.

1. Elija **Ejecutar**.

1. En el menú, seleccione **Cliente** > **Servidor proxy**.

1. Establezca la **configuración del proxy** como **Activa**.

1. En el campo para **No hay proxy para las siguientes direcciones**, muestre las excepciones separadas por punto y coma.

1. En los campos **Protocolo HTTP** y **HTTPs Protocolo**, especifique los detalles de conexión de su servidor proxy.

El SDK desconoce el servidor proxy y no requiere ninguna configuración para utilizar la configuración del servidor proxy del sistema SAP.

**nota**  
Si utiliza la [autenticación de metadatos de la EC2 instancia de Amazon](https://docs.aws.amazon.com/sdk-for-sapabap/latest/developer-guide/system-authentication.html#metadata-authentication), el sistema SAP no puede utilizar el servidor proxy para acceder a los metadatos de la instancia local en`http://169.254.169.254`. Debe incluir `169.254.169.254` en el campo para *No hay proxy para las siguientes direcciones*.

## Conexión a través de un firewall de inspección de paquetes
<a name="packet-firewall"></a>

Puede configurar un firewall de inspección de paquetes para la conexión saliente. Estos firewalls descifran el tráfico SSL y, a continuación, lo vuelven a cifrar antes de pasarlo al punto de conexión. Esta configuración normalmente requiere que el firewall emita sus propios certificados para el sistema SAP que consume un Servicio de AWS. Debe instalar el certificado de CA de su firewall en `STRUST`. Para obtener más información, consulte [Conectividad HTTPS](https://docs.aws.amazon.com/sdk-for-sapabap/latest/developer-guide/prerequisites.html#https-connectivity).

## Puntos de conexión de la puerta de enlace
<a name="gateway-endpoints"></a>

Algunos Servicios de AWS ofrecen puntos finales de puerta de enlace para proporcionar a una VPC un acceso de alto rendimiento sin Internet. Estos puntos de conexión son transparentes para el SDK de SAP ABAP y no requieren ninguna configuración.

Para obtener más información, consulte [Puntos de conexión de puerta de enlace](https://docs.aws.amazon.com/vpc/latest/privatelink/gateway-endpoints.html).

## Puntos de conexión personalizados
<a name="interface-endpoints"></a>

Si necesita anular la resolución de punto de conexión predeterminado por un punto de conexión personalizado, puede usar un punto de conexión de interfaz para proporcionar a su VPC acceso de alto rendimiento sin Internet. Para obtener más información, consulte [Configurar un punto de conexión de interfaz](https://docs.aws.amazon.com/vpc/latest/privatelink/interface-endpoints.html).

Cuando no se utiliza un DNS privado, estos puntos de conexión tienen sus propias direcciones DNS y un programa ABAP debe anular de forma explícita la lógica habitual de resolución de puntos de conexión. Para obtener más información, consulte AWS re:Post : [¿Por qué no puedo resolver los nombres de dominio de servicio para un punto final de VPC de interfaz](https://repost.aws/knowledge-center/vpc-interface-configure-dns)?

En el siguiente ejemplo, se crea un punto final de interfaz para AWS STS y Amazon Translate. El sistema SAP no utiliza un DNS privado y llama a los servicios con un punto de conexión personalizado. Los recursos lógicos definidos en `/AWS1/IMG` representan las direcciones de punto de conexión de la interfaz física, por ejemplo, `vpce-0123456789abcdef-hd52vxz.translate.us-west-2.vpce.amazonaws.com`. Esto evita la codificación rígida del DNS en código.

En el código siguiente, los recursos lógicos en `/AWS1/IMG` se resuelven primero en los nombres de los puntos de conexión físicos. A continuación, se proporcionan a los métodos de fábrica de la clase de AWS sesión (que se utiliza AWS STS para asumir una función de IAM) y a la clase de API de traducción.

```
" This example assumes we have defined our logical endpoints in /AWS1/IMG
" as logical resources so that we don't hardcode our endpoints in code.
" The endpoints may be different in Dev, QA and Prod environments.
DATA(lo_config) = /aws1/cl_rt_config=>create( 'DEMO' ).
DATA(lo_resolver) = /aws1/cl_rt_lresource_resolver=>create( lo_config ).

" logical resource STS_ENDPOINT should resolve to the interface endpoint
" for example vpce-0123456789-abcdefg.sts.us-west-2.vpce.amazonaws.com
DATA(lv_sts_endpoint) = lo_resolver->resolve_lresource( 'STS_ENDPOINT' ).

" logical resource XL8_ENDPOINT should resolve to the interface endpoint
" e.g. vpce-0123456789abcdefg-12345567.translate.us-west-2.vpce.amazonaws.com
DATA(lv_xl8_endpoint) = lo_resolver->resolve_lresource( 'XL8_ENDPOINT' ).

" the session itself uses the sts service to assume a role, so the
" session creation process requires a custom endpoint, specified here
DATA(lo_session) = /aws1/cl_rt_session_aws=>create(
  iv_profile_id = 'DEMO'
  iv_custom_sts_endpoint = |https://{ lv_sts_endpoint }|
).

" now we create an API object, and override the default endpoint with 
" the custom endpoint
DATA(lo_xl8)     = /aws1/cl_xl8_factory=>create(
  io_session = lo_session
  iv_custom_endpoint = |https://{ lv_xl8_endpoint }| " provide custom endpoint
).
" now calls to lo_xl8 go to custom endpoint...
```

Como se muestra en el ejemplo, cualquier llamada a un método en `go_xl8` va al punto de conexión `https://vpce-0123456789abcdefg-12345567.translate.us-west-2.vpce.amazonaws.com`. También es posible definir el punto final personalizado de enrutamiento en la configuración de IMG en lugar de hacerlo en el código, como se muestra en la siguiente sección. 

## Enrutamiento avanzado
<a name="advanced-routing"></a>

 En la sección anterior, mostramos cómo se puede especificar un punto final personalizado en el `iv_custom_endpoint` argumento de los métodos de fábrica para los módulos del SDK. A medida que aumenta el número de programas ABAP que utilizan el SDK, esto puede resultar difícil de gestionar. Es posible configurar un mapeo desde un punto final Servicio de AWS a uno personalizado en el perfil del SDK. Para cada SID, cliente y escenario, la abreviatura de tres letras (TLA) del servicio se puede asignar a la URL de un punto final: 


|  TLA  |  URL de punto final personalizada  | 
| --- | --- | 
| BDR | https://vpce-23456789abcdef012-3c4d5e6f.bedrock-runtime.us-east-1.vpce.amazonaws.com | 
| LMD | https://vpce-123456789abcdef01-2b3c4d5e.lambda.us-east-1.vpce.amazonaws.com | 
| S3 | https://vpce-0123456789abcdef0-1a2b3c4d.s3.us-east-1.vpce.amazonaws.com | 

 Con esta configuración, no es necesario especificar las llamadas a `iv_custom_endpoint` los métodos de fábrica. El punto final personalizado se selecciona automáticamente en la tabla de configuración. La configuración es específica del perfil del SDK, por lo que puede crear varios perfiles con diferentes enrutamientos en función de sus necesidades. Al igual que con otras configuraciones de perfiles del SDK, el enrutamiento es específico del SID y del cliente, por lo que se puede definir un enrutamiento independiente para diferentes sistemas. 

## Acceso a puntos de conexión en varias regiones
<a name="multiple-regions"></a>

AWS El punto final se determina automáticamente a partir del valor predeterminado Región de AWS definido en el perfil del SDK. También puede especificar una región mediante programación, anulando la región predeterminada. Esto se puede anular en el método `CREATE()` de fábrica o, posteriormente, con el objeto de configuración del SDK. Para obtener más información, consulte [Configuración programática](https://docs.aws.amazon.com/sdk-for-sapabap/latest/developer-guide/features.html#programmatic-configuration).

En el siguiente ejemplo, se utiliza el método `CREATE()` de fábrica para establecer la región y mostrar las colas de Amazon SQS en las regiones `us-east-1` y `us-west-2`.

```
REPORT zdemo_sqs_queue_list.
parameters: profile type /AWS1/RT_PROFILE_ID OBLIGATORY.

START-OF-SELECTION.
DATA(go_session) = /aws1/cl_rt_session_aws=>create( profile ).
data(lt_region) = VALUE stringtab(
  ( |us-east-1| )
  ( |us-west-2| )
).

LOOP AT lt_region INTO DATA(lv_region).
  DATA(go_sqs)  = /aws1/cl_sqs_factory=>create(
    io_session = go_session
    iv_region = conv /AWS1/RT_REGION_ID( lv_region )
  ).
  WRITE: / lv_region COLOR COL_HEADING.
  LOOP AT go_sqs->listqueues( )->get_queueurls( ) INTO DATA(lo_url).
    WRITE: / lo_url->get_value( ).
  ENDLOOP.
ENDLOOP.
```