# Konfigurowanie Brama danych Qlik — dostęp bezpośredni w kontenerze

W tym temacie opisano, jak skonfigurować skonteneryzowane Brama dostępu bezpośredniego. Zawiera wymagania wstępne i instrukcje instalacji oraz opisuje ograniczenia i kwestie, o których należy pamiętać podczas pracy ze skonteneryzowanym Brama dostępu bezpośredniego.

InformacjaObsługiwane od Brama dostępu bezpośredniego 1.8.0.

## Czym jest skonteneryzowany Brama dostępu bezpośredniego?

Możesz wdrożyć Brama dostępu bezpośredniego w kontenerze Docker. Ten typ wdrożenia jest nazywany konteneryzowanym Brama dostępu bezpośredniego. Konteneryzowane wdrożenia Brama dostępu bezpośredniego są obsługiwane w systemach Linux, macOS i Windows.

Skonteneryzowany Brama dostępu bezpośredniego zapewnia przenośność do Twojego środowiska Brama dostępu bezpośredniego.

## Najlepsze praktyki podczas używania Brama danych Qlik — dostęp bezpośredni

W celu uzyskiwania oczekiwanych wyników podczas korzystania z Brama danych Qlik — dostęp bezpośredni, zdecydowanie zaleca się przestrzeganie następujących najlepszych praktyk:

* Nie używaj tego samego wystąpienia Brama dostępu bezpośredniego do programowania, testów akceptacji użytkownika i produkcji, ponieważ zwiększy to ryzyko przeciążenia dostępnych zasobów i wpłynie negatywnie na stabilność systemu. Z biznesowego punktu widzenia połączenie niewystarczających zasobów i zmniejszonej stabilności może skutkować opóźnieniem aktualizacji danych aplikacji produkcyjnej.

* Aby uzyskać optymalną wydajność, zainstaluj Brama dostępu bezpośredniego w środowisku znajdującym się jak najbliżej Twojego źródła danych.

## Wymagania systemowe

W tej sekcji opisano wymagania dotyczące korzystania ze skonteneryzowanego Brama dostępu bezpośredniego.

### Wymagania programowe

* Docker Engine w wersji 20.9+ oraz wtyczka Docker Compose (docker compose, składnia v2) zainstalowane na hoście.

### Wymagane porty i protokoły

Aby uzyskać informacje o wymaganych portach i protokołach, zobacz [Wymagane porty i protokoły](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setting-up.htm#Ports).

### Zalecany sprzęt

* Host: 8 rdzeni, 32 GB pamięci, 5 GB pamięci masowej dostępnej dla Dockera

* Opcjonalnie: Ustaw odpowiednie limity dla kontenera w pliku compose, aby brama miała dedykowane zasoby, zamiast konkurować z innymi kontenerami lub procesami na hoście:

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

#### Minimalny sprzęt

Minimalny sprzęt jest odpowiedni tylko do określonych zastosowań z użyciem mniejszych wdrożeń dedykowanych (deweloperskich, testowych i produkcyjnych), używanych przy stale niskich wolumenach danych i ograniczonej liczbie jednoczesnych przeładowań.

* Host: 4 rdzenie, 8 GB pamięci, 5 GB pamięci masowej dostępnej dla platformy Docker

* Opcjonalnie: Ustaw odpowiednie limity dla kontenera w pliku compose, aby brama miała dedykowane zasoby, zamiast konkurować z innymi kontenerami lub procesami na hoście:

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

## Instalowanie programu Brama danych Qlik — dostęp bezpośredni

Konfiguracja bramy Direct Access gateway obejmuje procedury, które należy wykonać zarówno w centrum aktywności Administrowanie, jak i na serwerze bramy Direct Access gateway.

InformacjaProcedury bramy danych, które należy wykonać w centrum aktywności Administrowanie, wymagają uprawnień administratora dzierżawy.

### Etap pierwszy: pobierz Brama danych Qlik — dostęp bezpośredni

1. W centrum aktywności Administrowanie wybierz Bramy danych.

   Wszystkie istniejące bramy danych zostaną przedstawione w [tabeli pokazującej podstawowe informacje o każdej z nich](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-managing-console.htm#gateprop).

2. Kliknij przycisk Wdrażaj na pasku narzędzi.

   Zostanie otwarte okno dialogowe Wdrażanie bramy danych.

3. Wybierz Brama danych — dostęp bezpośredni - Containerized Direct Access Gateway, zaakceptuj Umowę z klientem Qlik i kliknij Pobierz. Plik instalacyjny Direct Access gateway (docker-compose.qlik-data-gateway-direct-access.yml) zostanie pobrany na Twój komputer.

### Etap drugi: Rozpocznij wdrożenie, uruchamiając plik Docker Compose

Aby rozpocząć wdrożenie Brama dostępu bezpośredniego, uruchom następujące polecenie:

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

### Etap trzeci: Konfigurowanie Brama dostępu bezpośredniego

Aby uzyskać szczegółowe instrukcje konfiguracji, zobacz [Etap trzeci: Skonfiguruj Brama dostępu bezpośredniego](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setting-up.htm#Stage3).

### Etap czwarty: Zarejestruj bramę danych

Kolejnym krokiem jest zarejestrowanie bramy danych. Można to zrobić za pośrednictwem centrum aktywności Administrowanie lub w wierszu poleceń.

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

#### Opcja 1: Za pośrednictwem centrum aktywności Administrowanie

Możesz zarejestrować bramę za pomocą centrum aktywności Administrowanie. Zobacz [Opcja 1: Za pośrednictwem centrum aktywności Administrowanie](https://help.qlik.com/pl-PL/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)

#### Opcja 2: Automatyczna rejestracja za pomocą wiersza poleceń

Możesz także zarejestrować Brama dostępu bezpośredniego automatycznie z poziomu wiersza poleceń, bez korzystania z centrum aktywności Administrowanie. Ta metoda używa krótkotrwałego tokenu sesji wygenerowanego przez klienta OAuth.

InformacjaAutomatyczna rejestracja jest obsługiwana wyłącznie z poziomu wiersza poleceń. REST API do automatycznej rejestracji bramy nie jest obecnie dostępne.

Wymagania wstępne

Klucz API z uprawnieniami administratora dzierżawy do tworzenia klientów OAuth i zarządzania nimi.

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm)Rejestracja bramy za pomocą automatycznej rejestracji

1. Najpierw musisz skonfigurować środowisko Python, aby wygenerować identyfikator klienta OAuth, a także klucz asercji (krótkotrwały token) w kontenerze direct-access-agent. Uruchom następujące polecenia oddzielnie, w tej kolejności:

   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. W przypadku [ostatniego polecenia na powyższej liście](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm#python3) obserwuj interaktywne monity i skopiuj client\_id (identyfikator klienta OAuth) oraz assertion, gdy zostaną podane. Zapisz na razie te informacje na papierze lub w tymczasowym pliku tekstowym — będą one potrzebne w kolejnych krokach procesu.

3. Gdy zapiszesz client\_id i assertion, wyczyść środowisko Python za pomocą następującego polecenia:

   deactivate

4. Ustaw metodę wyrażania zgody klienta OAuth na zaufaną.

   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. Zażądaj tokenu dostępu. Powoduje to również automatyczne utworzenie konta użytkownika bota używanego przez bramę.

   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"

   Informacja

   Jeśli asercja wygasła, uruchom ponownie skrypt z wirtualnego środowiska.

6. Wyszukaj automatycznie utworzonego użytkownika bota.

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

7. Skopiuj identyfikator my-bot-client.

8. Utwórz 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. Przypisz role na poziomie dzierżawy użytkownikowi bota.

   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. Pobierz przestrzeń Bramy dostępu bezpośredniego.

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

11. Skopiuj identyfikator przestrzeni Direct Access Gateway.

12. Dodaj użytkownika bota do przestrzeni z uprawnieniem Może edytować.

    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. W przypadku gdy istniejąca asercja wygasła, wygeneruj nową. Wykonaj następujące polecenie:

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

14. Wykonaj wymagane kroki w wierszu poleceń. Ponieważ klient OAuth został już utworzony, należy zaktualizować JWK za pomocą tego wywołania 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. Zarejestruj bramę:

    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)Usuwanie automatycznie zarejestrowanej bramy

Wykonaj poniższe kroki, aby wyrejestrować bramę, która została zarejestrowana przy użyciu opisanej powyżej automatycznej metody opartej na tokenie sesji. Kroki te usuwają również klienta OAuth, użytkownika bota oraz rolę, które zostały dla niego utworzone.

1. Wygeneruj asercję, jak opisano w [powyższej sekcji](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm#AutoRegister).

2. Usuń bramę:

   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. Wyszukaj konto użytkownika bota utworzone dla bramy.

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

4. Skopiuj identyfikator bota.

5. Usuń to konto użytkownika bota.

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

6. Wyszukaj rolę „DAG Registration”, która została utworzona dla bramy.

   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. Skopiuj identyfikator roli.

8. Usuń tę rolę.

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

9. Usuń klienta 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;

### Etap piąty: uruchom usługę Brama danych Qlik — dostęp bezpośredni na serwerze bramy Direct Access gateway

Aby uruchomić usługę Brama danych Qlik — dostęp bezpośredni, uruchom kontenery dcaas-dg i direct-access-agent.

### Etap szósty: dodaj połączenie do swojego źródła danych

Zobacz [Etap szósty: dodaj połączenie do swojego źródła danych](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm#Stage6).

## Ustawienia środowiska

W tej sekcji wymieniono określone zmienne środowiskowe z pliku docker-compose.qlik-data-gateway-direct-access.yml, które może być konieczne skonfigurować, aby poprawnie połączyć źródła danych za pośrednictwem bramy.

* ALLOW\_SOURCES: Rozdzielana przecinkami lista dozwolonych nazw hostów i adresów IP. Gdy agent bramy musi połączyć się z czymś na Twoim własnym serwerze lub innym hoście w sieci lokalnej lub prywatnej (na przykład z bazą danych na localhost, nazwą usługi Docker lub hostem o prywatnym adresie IP), należy dodać ten adres do ALLOW\_SOURCES — w przeciwnym razie próba połączenia zostanie odrzucona.

## Obsługiwane źródła danych

* Następujące łączniki ODBC są obsługiwane w przypadku instalacji konteneryzowanych:

  * PostgreSQL
  * SQL Server
  * Oracle

  Więcej informacji na temat łączników ODBC zawiera temat [Bazy danych ODBC — Qlik Cloud](https://help.qlik.com/en-US/cloud-services/Subsystems/ODBC_Connector_help/Content/Connectors_ODBC/Introduction/ODBC-connector.htm) (tylko w języku angielskim).

* REST łącznik (REST za pośrednictwem Direct Access gateway). Więcej informacji na temat źródeł danych REST zawiera temat [Źródła REST ‒ Qlik Cloud](https://help.qlik.com/en-US/cloud-services/Subsystems/REST_Connector_help/Content/Connectors_REST/REST-connector.htm) (tylko w języku angielskim).

## Dowiedz się więcej

* [Konfigurowanie Brama danych Qlik — dostęp bezpośredni](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setting-up.htm)
* [Konfigurowanie Brama danych Qlik — dostęp bezpośredni na serwerze Windows](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-win.htm)