Uzyskiwanie punktów końcowych połączeń i tworzenie parametry połączenia dla serwera PostgreSQL z obsługą usługi Azure Arc

W tym artykule opisano sposób pobierania punktów końcowych połączenia dla grupy serwerów oraz sposobu tworzenia parametry połączenia, które mogą być używane z aplikacjami i/lub narzędziami.

Uwaga

Jako funkcja w wersji zapoznawczej technologia przedstawiona w tym artykule podlega dodatkowym warunkom użytkowania dla wersji zapoznawczych platformy Microsoft Azure.

Najnowsze aktualizacje są dostępne w informacjach o wersji.

Uzyskiwanie punktów końcowych połączenia:

Uruchom następujące polecenie:

az postgres server-arc endpoint list -n <server name> --k8s-namespace <namespace> --use-k8s

Na przykład:

az postgres server-arc endpoint list -n postgres01 --k8s-namespace arc --use-k8s

Zwraca listę punktów końcowych: punkt końcowy postgreSQL, pulpit nawigacyjny wyszukiwania dzienników (Kibana) i pulpit nawigacyjny metryk (Grafana). Na przykład:

{
  "instances": [
    {
      "endpoints": [
        {
          "description": "PostgreSQL Instance",
          "endpoint": "postgresql://postgres:<replace with password>@12.345.567.89:5432"
        },
        {
          "description": "Log Search Dashboard",
          "endpoint": "https://23.456.78.99:5601/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:postgres01'))"
        },
        {
          "description": "Metrics Dashboard",
          "endpoint": "https://34.567.890.12:3000/d/postgres-metrics?var-Namespace=arc&var-Name=postgres01"
        }
      ],
      "engine": "PostgreSql",
      "name": "postgres01"
    }
  ],
  "namespace": "arc"
}

Użyj następujących punktów końcowych, aby:

  • Tworzenie parametry połączenia i łączenie się z narzędziami klienckimi lub aplikacjami
  • Uzyskiwanie dostępu do pulpitów nawigacyjnych Grafana i Kibana z przeglądarki

Na przykład możesz użyć punktu końcowego o nazwie Wystąpienie bazy danych PostgreSQL, aby nawiązać połączenie z bazą danych psql z grupą serwerów:

psql postgresql://postgres:MyPassworkd@12.345.567.89:5432
psql (10.14 (Ubuntu 10.14-0ubuntu0.18.04.1), server 12.4 (Ubuntu 12.4-1.pgdg16.04+1))
WARNING: psql major version 10, server major version 12.
         Some psql features might not work.
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.

postgres=#

Uwaga

  • Hasło użytkownika postgres wskazanego w punkcie końcowym o nazwie "Wystąpienie bazy danych PostgreSQL" to hasło wybrane podczas wdrażania grupy serwerów.

Z interfejsu wiersza polecenia za pomocą narzędzia kubectl

kubectl get postgresqls/<server name> -n <namespace name>

Na przykład:

kubectl get postgresqls/postgres01 -n arc

Te polecenia spowodują wygenerowanie danych wyjściowych, takich jak poniższe. Możesz użyć tych informacji, aby utworzyć parametry połączenia:

NAME         STATE   READY-PODS   PRIMARY-ENDPOINT     AGE
postgres01   Ready   3/3          12.345.567.89:5432   9d

Parametry połączenia formularzy

Użyj poniższych przykładów parametrów połączeń dla grupy serwerów. Skopiuj, wklej i dostosuj je zgodnie z potrzebami:

Ważne

Protokół SSL jest wymagany w przypadku połączeń klienckich. W parametry połączenia parametr trybu SSL nie powinien być wyłączony. Aby uzyskać więcej informacji, zapoznaj się z tematem https://www.postgresql.org/docs/14/runtime-config-connection.html.

ADO.NET

Server=192.168.1.121;Database=postgres;Port=24276;User Id=postgres;Password={your_password_here};Ssl Mode=Require;`

C++ (libpq)

host=192.168.1.121 port=24276 dbname=postgres user=postgres password={your_password_here} sslmode=require

JDBC

jdbc:postgresql://192.168.1.121:24276/postgres?user=postgres&password={your_password_here}&sslmode=require

Node.js

host=192.168.1.121 port=24276 dbname=postgres user=postgres password={your_password_here} sslmode=require

PHP

host=192.168.1.121 port=24276 dbname=postgres user=postgres password={your_password_here} sslmode=require

Psql

psql "host=192.168.1.121 port=24276 dbname=postgres user=postgres password={your_password_here} sslmode=require"

Python

dbname='postgres' user='postgres' host='192.168.1.121' password='{your_password_here}' port='24276' sslmode='true'

Ruby

host=192.168.1.121; dbname=postgres user=postgres password={your_password_here} port=24276 sslmode=require