如何使用Python调用Google Cloud AppEngine Admin API发起请求?
正确调用Google AppEngine Admin API list_services接口的方法
错误原因排查
- 未实例化
ServicesAsyncClient客户端对象,直接调用类的list_services方法,此时传入的URL字符串会被当作类方法的self参数接收,因此抛出字符串类型无_client属性的错误 - 官方封装的SDK不需要传入完整接口URL,只需按要求传入资源标识参数即可
正确调用步骤
1. 提前安装依赖包
pip install google-cloud-appengine-admin
2. 提前配置身份认证
将谷歌云服务账号密钥文件路径赋值给环境变量GOOGLE_APPLICATION_CREDENTIALS即可,SDK会自动读取认证信息。
3. 代码实现示例
import asyncio from google.cloud.appengine_admin_v1 import ServicesAsyncClient async def get_appengine_services(project_id: str): # 实例化异步客户端 client = ServicesAsyncClient() # 构造请求参数,parent格式固定为 apps/项目ID request = { "parent": f"apps/{project_id}" } # 调用接口返回异步分页迭代器 result = await client.list_services(request=request) # 遍历获取所有服务信息 service_list = [] async for service in result: service_list.append({ "name": service.name, "service_id": service.id, "labels": service.labels }) return service_list # 调用示例 if __name__ == "__main__": # 替换为对应项目ID MY_PROJECT_ID = "utility-destiny-325416" services = asyncio.run(get_appengine_services(MY_PROJECT_ID)) print(services)
补充说明
返回的ListServicesAsyncPager是异步分页迭代器,若服务数量超过单页返回上限,SDK会自动处理分页请求,直接遍历即可拿到全量结果。
内容的提问来源于stack exchange,提问作者lowkey
相关产品推荐
相关产品推荐

