Google 秘密管理器使用 python3.11 和秘密管理器 2.16.0 抛出“AccessSecretVersionRequest 的构造函数输入无效”

Rav*_*avi 5 google-cloud-platform python-3.11

下面的代码片段抛出异常AccessSecretVersionRequest 的构造函数输入无效

from google.cloud import secretmanager
from google.oauth2 import service_account

client = secretmanager.SecretManagerServiceClient()

    name = client.secret_version_path(
        project=GOOGLE_CLOUD_PROJECT_ID,
        secret=SECRET_NAME,
        secret_version=SECRET_VERSION
    )

    api_key = secretmanager_client.access_secret_version(name=name).payload.data.decode("utf-8")

Run Code Online (Sandbox Code Playgroud)

Rav*_*avi 6

Google 秘密管理器 python SDK 2.16.0 期望第一个参数应该是请求而不是名称

def access_secret_version(self,
                          request: AccessSecretVersionRequest | dict | None = None,
                          *,
                          name: str | None = None,
                          retry: Retry | _MethodDefault | object = gapic_v1.method.DEFAULT,
                          timeout: float | object = gapic_v1.method.DEFAULT,
                          metadata: Sequence[tuple[str, str]] = ()) -> AccessSecretVersionResponse
Run Code Online (Sandbox Code Playgroud)

而不是直接在下面的函数中传递名称

api_key = secretmanager_client.access_secret_version(name).payload.data.decode("utf-8")
Run Code Online (Sandbox Code Playgroud)

使用parameter_name=value,如下所示

get_response_api_key = secretmanager_client.access_secret_version(name=name).payload.data.decode("utf-8")
Run Code Online (Sandbox Code Playgroud)