You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCP Python示例代码中service变量未定义问题求助

解决GCP组成员查询代码中service变量未定义的问题

你遇到的service未定义问题,是因为官方示例代码省略了GCP Cloud Identity服务客户端的初始化步骤。以下是完整的解决方案:

1. 安装必要依赖

先安装GCP Python SDK相关库:

pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib

2. 创建Cloud Identity服务客户端

需要通过GCP服务账号密钥完成认证,生成service实例:

  • 在GCP控制台创建并下载服务账号密钥文件(JSON格式),确保该账号拥有Cloud Identity Groups Viewer或对应权限。
  • 在代码中加载密钥,构建服务客户端。

完整可运行代码

from googleapiclient.discovery import build
from google.oauth2.service_account import Credentials
from urllib.parse import urlencode

def search_transitive_memberships(service, parent, page_size):
    try:
        memberships = []
        next_page_token = ''
        while True:
            query_params = urlencode(
                {
                    "page_size": page_size,
                    "page_token": next_page_token
                }
            )
            request = service.groups().memberships().searchTransitiveMemberships(parent=parent)
            request.uri += "&" + query_params
            response = request.execute()

            if 'memberships' in response:
                memberships += response['memberships']

            if 'nextPageToken' in response:
                next_page_token = response['nextPageToken']
            else:
                next_page_token = ''

            if len(next_page_token) == 0:
                break

        print(memberships)
    except Exception as e:
        print(e)

# 初始化Cloud Identity服务客户端
def init_cloud_identity_service(service_account_key_path):
    credentials = Credentials.from_service_account_file(
        service_account_key_path,
        scopes=['https://www.googleapis.com/auth/cloud-identity']
    )
    return build('cloudidentity', 'v1', credentials=credentials)

# 替换为你的服务账号密钥路径和目标group ID
service = init_cloud_identity_service('/path/to/your/service-account-key.json')
search_transitive_memberships(service, 'groups/01234567abcdefg', 50)

关键说明

  • init_cloud_identity_service函数负责加载服务账号密钥、生成认证凭据,并构建Cloud Identity服务客户端实例——这就是示例中缺失的service对象。
  • 务必确保服务账号拥有足够权限访问Cloud Identity群组数据,否则会返回权限错误。

内容的提问来源于stack exchange,提问作者RThomas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 15:55:28