

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Cenários avançados de conectividade
<a name="connectivity-scenarios"></a>

AWS SDK para SAP ABAP consome Serviços da AWS fazendo chamadas HTTPS para AWS endpoints. Em geral, os endpoints da AWS são acessados pela Internet. Um sistema SAP deve ser capaz de acessar a Internet para estabelecer essas conexões de saída. O SDK para SAP ABAP nunca requer uma conexão de entrada da Internet para o sistema SAP.

Os cenários a seguir oferecem maneiras diferentes de estabelecer a conexão de saída.

**Topics**
+ [Conexão por meio de um servidor proxy](#proxy-server)
+ [Conexão por meio de um pacote de inspeção do firewall](#packet-firewall)
+ [Endpoints de gateway](#gateway-endpoints)
+ [Endpoints de interface personalizada](#interface-endpoints)
+ [Roteamento avançado](#advanced-routing)
+ [Acesso de endpoints em várias regiões](#multiple-regions)

## Conexão por meio de um servidor proxy
<a name="proxy-server"></a>

Para estabelecer uma conexão por meio de um servidor proxy, use as etapas a seguir.

1. No SDK, acesse Transação **`SICF`**.

1. Clique em **Executar**.

1. No menu, escolha **Cliente** > **Servidor proxy**.

1. Defina a **Configuração de proxy** como **Ativa**.

1. No campo **Sem proxy para os seguintes endereços**, liste todas as exceções separadas por ponto e vírgula.

1. Nos campos **Protocolo HTTP** e **HTTPs Protocolo**, especifique os detalhes da conexão do seu servidor proxy.

O SDK não conhece o servidor proxy e não exige nenhuma configuração para usar a configuração do servidor proxy do sistema SAP.

**nota**  
Se você usa a [autenticação de metadados de EC2 instância da Amazon](https://docs.aws.amazon.com/sdk-for-sapabap/latest/developer-guide/system-authentication.html#metadata-authentication), o sistema SAP não pode usar o servidor proxy para acessar os metadados da instância local em. `http://169.254.169.254` Você deve incluir `169.254.169.254` no campo *Sem proxy para os seguintes endereços*.

## Conexão por meio de um pacote de inspeção do firewall
<a name="packet-firewall"></a>

Você pode configurar um pacote de inspeção do firewall para conexão de saída. Esses firewalls descriptografam o tráfego SSL e, em seguida, o criptografam novamente antes de passá-lo para o endpoint. Essa configuração geralmente exige que o firewall emita seus próprios certificados para o sistema SAP que está consumindo um AWS service (Serviço da AWS). Você deve instalar o certificado CA do seu firewall em `STRUST`. Para obter mais informações, consulte [Conectividade HTTPS](https://docs.aws.amazon.com/sdk-for-sapabap/latest/developer-guide/prerequisites.html#https-connectivity).

## Endpoints de gateway
<a name="gateway-endpoints"></a>

Alguns Serviços da AWS oferecem endpoints de gateway para fornecer a uma VPC acesso de alto desempenho sem internet. Esses endpoints são transparentes para o SDK para SAP ABAP e não exigem nenhuma configuração.

Para obter mais informações, consulte [Endpoints de gateway](https://docs.aws.amazon.com/vpc/latest/privatelink/gateway-endpoints.html).

## Endpoints de interface personalizada
<a name="interface-endpoints"></a>

Se precisar substituir a resolução padrão do endpoint por um endpoint personalizado, use um endpoint de interface para fornecer à sua VPC acesso de alto desempenho sem Internet. Para obter mais informações, consulte [Configurar um endpoint de interface](https://docs.aws.amazon.com/vpc/latest/privatelink/interface-endpoints.html).

Quando não estão usando DNS privado, esses endpoints têm seus próprios endereços DNS, e um programa ABAP deve substituir explicitamente a lógica usual de resolução de endpoints. Para obter mais informações, consulte AWS re:Post — [Por que não consigo resolver nomes de domínio de serviço para um endpoint VPC de interface](https://repost.aws/knowledge-center/vpc-interface-configure-dns)?

No exemplo a seguir, um endpoint de interface é criado para AWS STS e. Amazon Translate O sistema SAP não está usando DNS privado e chama os serviços com um endpoint personalizado. Os recursos lógicos definidos em `/AWS1/IMG` representam os endereços dos endpoints da interface física, como `vpce-0123456789abcdef-hd52vxz.translate.us-west-2.vpce.amazonaws.com`. Isso evita a codificação rígida do DNS no código.

No código a seguir, os recursos lógicos no `/AWS1/IMG` são primeiro resolvidos em nomes de endpoints físicos. Em seguida, eles são fornecidos aos métodos de fábrica da classe de AWS sessão (que usa AWS STS para assumir uma função do IAM) e da classe de API de tradução.

```
" 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...
```

Conforme mostrado no exemplo, qualquer chamada de método no `go_xl8` vai para o endpoint `https://vpce-0123456789abcdefg-12345567.translate.us-west-2.vpce.amazonaws.com`. Também é possível definir o endpoint personalizado de roteamento na configuração IMG em vez de no código, conforme mostrado na próxima seção. 

## Roteamento avançado
<a name="advanced-routing"></a>

 Na seção anterior, mostramos como um endpoint personalizado pode ser especificado no `iv_custom_endpoint` argumento dos métodos de fábrica para os módulos do SDK. À medida que o número de programas ABAP usando o SDK aumenta, isso pode se tornar difícil de gerenciar. É possível configurar um mapeamento de um AWS service (Serviço da AWS) para um endpoint personalizado no perfil do SDK. Para cada SID, cliente e cenário, a abreviação de três letras do serviço (TLA) pode ser mapeada para uma URL de endpoint: 


|  TLA  |  URL de endpoint personalizado  | 
| --- | --- | 
| 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 | 

 Com essa configuração, você não precisa especificar `iv_custom_endpoint` nas chamadas do método de fábrica. O endpoint personalizado é selecionado automaticamente na tabela de configuração. A configuração é específica para o perfil do SDK para que você possa criar vários perfis com roteamento diferente para atender às suas necessidades. Assim como em outras configurações do SDK Profile, o roteamento é específico do SID e do cliente, portanto, um roteamento separado pode ser definido para sistemas diferentes. 

## Acesso de endpoints em várias regiões
<a name="multiple-regions"></a>

AWS O endpoint é determinado automaticamente a partir do padrão Região da AWS definido no perfil do SDK. Você também pode especificar uma região programaticamente, substituindo a região padrão. Isso pode ser substituído no método `CREATE()` de fábrica ou posteriormente com o objeto de configuração do SDK. Para obter mais informações, consulte [Configuração programática](https://docs.aws.amazon.com/sdk-for-sapabap/latest/developer-guide/features.html#programmatic-configuration).

No exemplo a seguir, o método de fábrica `CREATE()` é usado para definir a região e listar as filas do Amazon SQS nas regiões `us-east-1` e `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.
```