メインコンテンツへスキップ
PostgreSQLツールを使用すると、PostgreSQLデータベースに対してSQLクエリを実行できます。
  • POSTGRES_RUN_QUERY
    • PostgreSQLデータベースに対してSQLクエリを実行します。SELECT、INSERT、UPDATE、DELETEなどのSQL文をサポートします。
    • 入力: connection(PostgreSQL接続シークレット)と query(実行するSQL)
    • 結果を構造化されたデータ(カラムと行)として取得します。

PostgreSQLの認証情報で接続する

接続情報を含む POSTGRES シークレットを作成し、connection 入力として渡してください。
  • Host: PostgreSQLサーバーのホスト名(必須)
  • Port: ポート番号。省略時は 5432 が使われます。
  • Database: 接続先のデータベース名
  • User: 接続に使用するユーザー名
  • Password: そのユーザーのパスワード
  • SSL: SSLを使用するかどうか。デフォルトで有効です。無効にする場合は false(または disable)を設定してください。旧形式の sslmode フィールドも利用できます。
  • ssl_verify: サーバーのTLS証明書を検証するかどうか。デフォルトで有効です。無効にすると通信は暗号化されたままですが、接続先サーバーの真正性を確認しなくなります(非推奨)。
  • ssl_ca: サーバー証明書に署名したCA証明書(PEM)。Amazon RDS、Google Cloud SQL、Supabaseへの直接接続など、プライベートCAや自己署名の証明書を使うサーバーに接続する場合に設定してください。複数の証明書をまとめて貼り付けることもできます。
注意: 認証情報は機密情報として扱い、公開リポジトリにコミットしないでください。

SSLの挙動

SSLはデフォルトで有効で、サーバー証明書を公開CAと ssl_ca に設定した証明書で検証します。証明書を検証できない場合、接続は PostgresConnectionError で失敗します。エラーメッセージには、変更が必要な設定が表示されます。 暗号化されていない接続に自動で切り替わることはありません。サーバーがSSLに対応していない場合は、SSL を明示的に無効にしてください。 ssl_verify を無効にした場合は、実行のたびにステップのログに警告が記録されます。 Host に IP アドレスを指定すると、サーバー証明書にその IP が含まれていないことがほとんどです。IP アドレスの Host で ssl_ca を設定した場合、ツールは証明書が ssl_ca で署名されていることだけを確認してホスト名の照合を省き、実行のたびにステップのログに通知を記録します。これは Google Cloud SQL インスタンスのサーバー CA のように、そのサーバー専用の CA を使う場合に限ってください。共有の CA や公開 CA を設定すると、その CA が署名したどの証明書でも受け入れてしまいます。それ以外の場合は、Host に証明書のホスト名を指定してください。

クエリを実行する

例: クエリ結果をLLMで要約

注意事項

  • タイムアウト: 接続は10秒、各SQL文の実行は30秒でタイムアウトします。
  • 読み取り専用ではありません: 書き込み系のSQL文(INSERT、UPDATE、DELETE、DDL)もそのまま実行されます。適切に権限を絞ったデータベースユーザーを使用してください。
  • 結果のシリアライズ: プリミティブ以外の値は文字列に変換されます。日時はISO 8601形式の文字列、バイナリ(bytea)は16進文字列、JSON・配列・オブジェクトはJSON文字列になります。
  • 結果セットを返さないSQL文: 結果セットを返さないクエリ(RETURNING なしの INSERT など)は、空の columns と rows を返します。