# Configurar Qlik Pasarela de datos - Acceso directo en un contenedor

Este tema describe cómo configurar Direct Access gateway en un contenedor. Proporciona requisitos previos e instrucciones de instalación, y describe las limitaciones y consideraciones que debe tener en cuenta al trabajar con Direct Access gateway en un contenedor.

Nota informativaCompatible a partir de Direct Access gateway 1.8.0.

## ¿Qué es Direct Access gateway en un contenedor?

Puede implementar Direct Access gateway en un contenedor Docker. Este tipo de implementación se denomina Direct Access gateway en contenedores. Las implementaciones de Direct Access gateway en contenedores son compatibles con Linux, macOS y Windows.

Direct Access gateway en contenedores proporciona portabilidad a su entorno Direct Access gateway.

## Buenas prácticas en el uso de Qlik Pasarela de datos - Acceso directo

Para disfrutar de una experiencia satisfactoria al utilizar Qlik Pasarela de datos - Acceso directo, se recomienda encarecidamente seguir las siguientes prácticas recomendadas:

* No utilice la misma Direct Access gateway para el desarrollo, las pruebas de aceptación del usuario y la producción, ya que esto aumentará el riesgo de sobrecargar los recursos disponibles y afectará a la estabilidad del sistema. Desde una perspectiva empresarial, la combinación de recursos insuficientes y una menor estabilidad podría provocar retrasos en la actualización de los datos de las aplicaciones de producción.

* Para un rendimiento óptimo, instale Direct Access gateway en un entorno que esté lo más cerca posible de su fuente de datos.

## Requisitos previos del sistema

Esta sección describe los requisitos para usar Direct Access gateway en contenedores.

### Requisitos de software

* Docker Engine versión 20.9+ y el plugin de Docker Compose (docker compose, sintaxis v2) instalados en el host.

### Puertos y protocolos requeridos

Para conocer los puertos y protocolos requeridos, consulte [Puertos y protocolos requeridos](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setting-up.htm#Ports).

### Hardware recomendado

* Host: 8 núcleos, 32 GB de memoria, 5 GB de almacenamiento disponibles para Docker

* Opcional: establezca límites coincidentes en el contenedor en el archivo compose para que la pasarela tenga capacidad específica en lugar de competir con otros contenedores o procesos en el host:

  ```
  direct-access-agent:
      image: ...
      deploy:
        resources:
          limits:
            cpus: "6"
            memory: 24G
  ...
  dcaas:
      image: ...
      deploy:
        resources:
          limits:
            cpus: "2"
  ```

#### Hardware mínimo

El hardware mínimo solo es adecuado para escenarios específicos que utilicen implementaciones dedicadas más pequeñas (desarrollo, pruebas o producción), con volúmenes de datos continuamente bajos y un número limitado de recargas simultáneas.

* Host: 4 núcleos, 8 GB de memoria, 5 GB de almacenamiento disponibles para Docker

* Opcional: establezca límites coincidentes en el contenedor en el archivo compose para que la pasarela tenga capacidad dedicada en lugar de competir con otros contenedores o procesos en el host:

  ```
  direct-access-agent:
      image: ...
      deploy:
        resources:
          limits:
            cpus: "2"
            memory: 4G
  ...
  dcaas:
      image: ...
      deploy:
        resources:
          limits:
            cpus: "2"
  ```

## Instalar Qlik Pasarela de datos - Acceso directo

La configuración de la pasarela Direct Access gateway implica procedimientos que deben realizarse tanto en el centro de actividades Administración como en el servidor de la pasarela Direct Access gateway.

Nota informativaLos procedimientos de la pasarela de datos que deban realizarse en el centro de actividades de Administración requieren el permiso del administrador del espacio empresarial inquilino.

### Etapa uno: Descargar Qlik Pasarela de datos - Acceso directo

1. En el centro de actividades Administración, seleccione Pasarelas de datos.

   Cualquier pasarela de datos existente se indicará en [una tabla que muestra información básica sobre cada puerta de enlace](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-managing-console.htm#gateprop).

2. Haga clic en el botón de la barra de herramientas Implementar.

   Se abre el cuadro de diálogo Implementar la pasarela de datos.

3. Seleccione Pasarela de datos - Direct Access - Containerized Direct Access Gateway, acepte el Acuerdo de cliente de Qlik y haga clic en Descargar. El archivo de configuración de Direct Access gateway (docker-compose.qlik-data-gateway-direct-access.yml) se descargará en su equipo.

### Segunda fase: inicie la implementación ejecutando el archivo Docker Compose

Para iniciar la implementación de Direct Access gateway, ejecute el siguiente comando:

docker compose -f docker-compose.qlik-data-gateway-direct-access.yml up

### Etapa tres: Configurar Direct Access gateway

Para obtener instrucciones de configuración detalladas, consulte [Etapa tres: configurar Direct Access gateway](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setting-up.htm#Stage3).

### Etapa cuatro: registre la pasarela de datos

El siguiente paso es registrar la pasarela de datos. Esto se puede hacer a través del centro de actividades Administración o en la línea de comandos.

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm)

#### Opción 1: desde el centro de actividades Administración

Puede registrar la pasarela utilizando el centro de actividades Administración. Vea [Opción 1: desde el centro de actividades Administración](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setting-up.htm#StageConsole).

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm)

#### Opción 2: registro automático mediante la línea de comandos

También puede registrar Direct Access gateway automáticamente desde la línea de comandos, sin utilizar el centro de actividades Administración. Este método utiliza un token de sesión de corta duración generado a partir de un cliente OAuth.

Nota informativaEl registro automático solo se admite a través de la línea de comandos. Actualmente no hay disponible una API REST para el registro automático de pasarelas.

Requisitos previos

Una clave de API con permiso de administrador de espacio empresarial inquilino para crear y administrar clientes OAuth.

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm)Registro de la pasarela con registro automático

1. En primer lugar, debe configurar un entorno de Python para generar un ID de cliente OAuth, así como una clave de aserción (token de corta duración) en el contenedor direct-access-agent. Ejecute los siguientes comandos por separado, en este orden:

   1. docker exec -it --user root direct-access-agent-1 bash

   2. apt-get update && apt-get install -y python3 python3-pip

   3. apt install python3.11-venv

   4. python3 -m venv .venv

   5. source .venv/bin/activate

   6. pip install cryptography pyjwt

   7. [](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm)python3 generate\_gateway\_assertion.py --tenant-url &lt;tenant-url&gt;

2. Para el [último comando de la lista anterior](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm#python3), siga las instrucciones interactivas y copie el client\_id (ID de cliente OAuth) y assertion cuando se proporcionen. Guarde estos datos en papel o en un archivo de texto temporal por ahora—son necesarios para pasos posteriores del proceso.

3. Cuando haya anotado el client\_id y assertion, limpie el entorno de Python con el siguiente comando:

   deactivate

4. Establezca el método de consentimiento del cliente de OAuth en de confianza.

   curl "https://&lt;tenant-url&gt;/api/v1/oauth-clients/&lt;client-id&gt;/connection-configs/me" -X PATCH -H 'accept: application/json' -H 'content-type: application/json' -H 'authorization: Bearer &lt;api-key&gt;' -d '[{"op":"replace","path":"/consentMethod","value":"trusted"}]'

5. Solicite un token de acceso. Esto también activa la creación automática de la cuenta de usuario bot utilizada por la pasarela.

   curl "https://&lt;tenant-url&gt;/oauth/token" -X POST -H 'content-type: application/x-www-form-urlencoded' -d "grant\_type=client\_credentials" -d "client\_id=&lt;client-id&gt;" -d "client\_assertion\_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer" -d "client\_assertion=&lt;assertion&gt;" -d "scope=admin.direct-access-gateways:register\_gateway admin.direct-access-gateways:delete\_gateway"

   Nota informativa

   Si la aserción ha caducado, vuelva a ejecutar el script desde el entorno virtual.

6. Busque el usuario bot creado automáticamente.

   curl "https://&lt;tenant-url&gt;/api/v1/users" -H 'accept: application/json' -H 'authorization: Bearer &lt;API-key&gt;'

7. Copie el ID de my-bot-client.

8. Cree un rol "DAG Registration".

   curl "https://&lt;tenant-url&gt;/api/v1/roles" -X POST -H 'accept: application/json' -H 'content-type: application/json' -H 'authorization: Bearer &lt;API-key&gt;' -d '{"name":"DAG Registration","description":"Role for registering a gateway","assignedScopes":["admin.direct-access-gateways:register\_gateway", "admin.direct-access-gateways:delete\_gateway"]}'

9. Asigne roles a nivel de espacio empresarial inquilino al usuario bot.

   curl "https://&lt;tenant-url&gt;/api/v1/users/&lt;bot-user-ID&gt;" -X PATCH -H 'accept: application/json' -H 'content-type: application/json' -H 'authorization: Bearer &lt;API-key&gt;' -d ' [ { "op": "replace", "path": "/assignedRoles", "value": [ { "name": "DAG Registration" } ] } ]'

10. Obtenga el espacio de Direct Access Gateway.

    curl "https://&lt;tenant-url&gt;/api/v1/spaces" -H 'authorization: Bearer &lt;API-key&gt;'

11. Copie el ID del espacio de Direct Access Gateway.

12. Añada el usuario bot al espacio con el permiso Puede editar.

    curl "https://&lt;tenant-url&gt;/api/v1/spaces/&lt;DAG-space-ID&gt;/assignments" -X POST -H 'accept: application/json' -H 'content-type: application/json' -H 'authorization: Bearer &lt;API-key&gt;' -d '{"assigneeId": "&lt;bot-user-ID&gt;","roles": ["consumer","dataconsumer","producer"], "type": "user"}'

13. En caso de que la aserción existente haya caducado, genere una nueva. Ejecute el siguiente comando:

    python3 generate\_gateway\_assertion.py --tenant-url &lt;tenant-url&gt;

14. Siga los pasos necesarios en el símbolo del sistema. Dado que el cliente OAuth ya está creado, es necesario actualizar JWK mediante esta llamada a la API:

    curl "https://&lt;tenant-url&gt;/api/v1/oauth-clients/&lt;client-ID&gt;" -X PATCH -H 'accept: application/json' -H 'content-type: application/json' -H 'authorization: Bearer &lt;API-key&gt;' -d '[{"op":"replace","path":"/publicKeys/0/y","value":"&lt;Y-value-from-JWK&gt;"},{"op":"replace","path":"/publicKeys/0/x","value":"&lt;X-value-from-JWK&gt;"},{"op":"remove","path":"/publicKeys/0/use"},{"op":"replace","path":"/publicKeys/0/kid","value":"&lt;kid-value-from-JWK&gt;"}]'

15. Registre la pasarela:

    dotnet ConnectorAgent.dll qcs register\_gateway --tenant\_url &lt;tenant-url&gt; --gateway\_name &lt;DAG-name&gt; --gateway\_description &lt;DAG-description&gt; --space\_name &lt;space-name&gt; --client-id &lt;client-ID&gt; --assertion &lt;assertion&gt;

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm)Eliminar una pasarela registrada automáticamente

Siga los pasos siguientes para anular el registro de una pasarela que se registró mediante el método automático basado en token de sesión descrito anteriormente. Estos pasos también eliminan el cliente OAuth, el usuario bot y el rol que se crearon para ella.

1. Genere una aserción, como se describe en [la sección anterior](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm#AutoRegister).

2. Elimine la pasarela de datos:

   dotnet ConnectorAgent.dll qcs delete\_gateway --tenant\_url &lt;tenant-url&gt; --gateway\_name &lt;gateway-name&gt; --client-id &lt;client-ID&gt; --assertion &lt;assertion&gt;

3. Busque la cuenta de usuario bot que se creó para la pasarela de datos.

   curl "https://&lt;tenant-url&gt;/api/v1/users" -H 'accept: application/json' -H 'authorization: Bearer &lt;api-key&gt;'

4. Copie el ID del bot.

5. Elimine esta cuenta de usuario bot.

   curl -X DELETE "https://&lt;tenant-url&gt;/api/v1/users/&lt;bot-user-ID&gt;" -H "Authorization: Bearer &lt;api-key&gt;"

6. Busque el rol “DAG Registration” que se creó para la pasarela de datos.

   curl "https://&lt;tenant-url&gt;/api/v1/roles?limit=1&filter=(name%20eq%20%22DAG%20Registration%22)" -H "Authorization: Bearer &lt;api-key&gt;"

7. Copie el ID del rol.

8. Elimine este rol.

   curl -X DELETE "https://&lt;tenant-url&gt;/api/v1/roles/&lt;role-ID&gt; -H "Authorization: Bearer &lt;api-key&gt;"

9. Elimine el cliente de OAuth.

   curl -X DELETE https://&lt;tenant-url&gt;/api/v1/oauth-clients/&lt;OAuth-client-ID&gt; -H "qlik-confirm-delete: &lt;OAuth-client-ID&gt;" -H "Authorization: Bearer &lt;api-key&gt;

### Etapa cinco: inicie el servicio Qlik Pasarela de datos - Acceso directo en el servidor de la pasarela de acceso directo

Para iniciar el servicio Qlik Pasarela de datos - Acceso directo, inicie los contenedores dcaas-dg y direct-access-agent.

### Etapa seis: agregue una conexión a su fuente de datos

Vea [Etapa seis: agregue una conexión a su fuente de datos](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm#Stage6).

## Configuración del entorno

Esta sección muestra variables de entorno específicas del archivo docker-compose.qlik-data-gateway-direct-access.yml que podría necesitar configurar para conectar correctamente sus fuentes de datos a través de la pasarela.

* ALLOW\_SOURCES: una lista de elementos permitidos separada por comas de nombres de host e IP. Cuando el agente de la pasarela necesite conectarse a algo en su propio servidor o a otro host en la red local o privada (por ejemplo, una base de datos en localhost, un nombre de servicio de Docker o un host con IP privada), añada esa dirección a ALLOW\_SOURCES — de lo contrario se rechazará el intento de conexión.

## Fuentes de datos compatibles

* Se admiten los siguientes conectores ODBC para instalaciones en contenedores:

  * PostgreSQL
  * SQL Server
  * Oracle

  Para más información sobre los conectores ODBC, consulte [Bases de datos ODBC ‒ Qlik Cloud](https://help.qlik.com/en-US/cloud-services/Subsystems/ODBC_Connector_help/Content/Connectors_ODBC/Introduction/ODBC-connector.htm) (solo en inglés).

* Conector REST (REST a través de Direct Access gateway). Para más información sobre las fuentes de datos REST, consulte [Fuentes REST ‒ Qlik Cloud](https://help.qlik.com/en-US/cloud-services/Subsystems/REST_Connector_help/Content/Connectors_REST/REST-connector.htm) (solo en inglés).

## Más información

* [Configurar Qlik Pasarela de datos - Acceso directo](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setting-up.htm)
* [Configurar Qlik Pasarela de datos - Acceso directo en un servidor Windows](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-win.htm)