Python3.11结合secret-manager2.16.0调用Google Secret Manager报错求助
排查Google Cloud Secret Manager「Invalid constructor input for AccessSecretVersionRequest」异常
你遇到的报错核心原因是变量名不一致:代码里创建的Secret Manager客户端实例是client,但调用access_secret_version方法时误用了未定义的secretmanager_client,导致请求构造失败。
修正后的完整代码
from google.cloud import secretmanager from google.oauth2 import service_account # 确保以下三个变量已正确赋值 GOOGLE_CLOUD_PROJECT_ID = "你的GCP项目ID" SECRET_NAME = "目标密钥的名称" SECRET_VERSION = "latest" # 或具体的密钥版本号,如"1" # 创建客户端实例 client = secretmanager.SecretManagerServiceClient() # 生成密钥版本的完整路径 name = client.secret_version_path( project=GOOGLE_CLOUD_PROJECT_ID, secret=SECRET_NAME, secret_version=SECRET_VERSION ) # 使用正确的客户端实例调用方法 api_key = client.access_secret_version(name=name).payload.data.decode("utf-8")
额外排查建议
- 检查
GOOGLE_CLOUD_PROJECT_ID、SECRET_NAME、SECRET_VERSION是否都已正确定义,且格式符合要求:版本号可以是latest或者GCP控制台中显示的具体版本ID - 确认运行代码的服务账号已被授予
roles/secretmanager.secretAccessor权限,拥有目标密钥的访问权限 - 确保Python环境为3.11,且安装的
google-cloud-secret-manager版本确实是2.16.0(可通过pip show google-cloud-secret-manager验证)
内容的提问来源于stack exchange,提问作者Ravi
相关产品推荐
相关产品推荐

