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を返します。