如何在 Google Cloud Spanner 中使用异步 Python?

问题描述 投票:0回答:1

在文档中不清楚在配置异步spanner客户端时如何设置实例和数据库名称。 有谁知道从异步 Python 中使用 Spanner 的最佳方式是什么?

我使用 FastAPI,使用简单 SQL 的基本请求失败了

  File "/Users/annas/python_virutal_envs/spanner-exp/lib/python3.11/site-packages/google/api_core/grpc_helpers_async.py", line 84, in __await__
    raise exceptions.from_grpc_error(rpc_error) from rpc_error
google.api_core.exceptions.InvalidArgument: 400 Invalid ExecuteSql request. [field_violations {
  field: "session"
  description: "Expected projects/{project ID}/instances/{instance ID}/databases/{database name}/sessions/{session ID}\nGot: session_value\nError: projects/{project ID} is missing from uri."
}
]

python asynchronous fastapi google-cloud-spanner
1个回答
0
投票

请注意,您尝试使用的客户端是低级 gRPC 客户端。这意味着您必须了解Cloud Spanner gRPC 接口 的工作原理。

关于具体问题:

  1. 数据库名称是会话名称的一部分。为了使用
    ExecuteSql
    方法,您首先需要通过执行 CreateSessionBatchCreateSessions 创建一个会话。这将创建一个或多个会话,然后您可以将其与后续的
    ExecuteSql
    方法一起使用。
  2. session
    ExecuteSqlRequest
    字段必须包含会话的全名。这采用
    projects/my-project/instances/my-instance/databases/my-database/sessions/my-session
    的形式。会话名称必须是现有会话(即由
    CreateSession
    调用返回的会话。
© www.soinside.com 2019 - 2024. All rights reserved.