在文档中不清楚在配置异步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."
}
]
请注意,您尝试使用的客户端是低级 gRPC 客户端。这意味着您必须了解Cloud Spanner gRPC 接口 的工作原理。
关于具体问题:
ExecuteSql
方法,您首先需要通过执行 CreateSession 或 BatchCreateSessions 创建一个会话。这将创建一个或多个会话,然后您可以将其与后续的ExecuteSql
方法一起使用。session
的ExecuteSqlRequest
字段必须包含会话的全名。这采用projects/my-project/instances/my-instance/databases/my-database/sessions/my-session
的形式。会话名称必须是现有会话(即由 CreateSession
调用返回的会话。