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
相关产品推荐
相关产品推荐

