这是我从github获得的python代码。运行它,我得到了300。但是当我使用gcloud获取角色号时,总共得到了479个角色。GCP支持告诉我,需要使用pageSize。在哪里可以找到如何和pageSize可以使用的文档?因此,在我下面的代码中,pageSize应该去哪里?或者可能需要使用pageToken?
(gcptest):$ gcloud角色列表\grep名称\wc -l 479
(gcptest):$ python quickstart.py 300
def quickstart():# START iam_quickstart导入os
from google.oauth2 import service_account
import googleapiclient.discovery
import pprint
# Get credentials
credentials = service_account.Credentials.from_service_account_file(
filename=os.environ['GOOGLE_APPLICATION_CREDENTIALS'],
scopes=['https://www.googleapis.com/auth/cloud-platform'])
# Create the Cloud IAM service object
service = googleapiclient.discovery.build(
'iam', 'v1', credentials=credentials)
# Call the Cloud IAM Roles API
# If using pylint, disable weak-typing warnings
# pylint: disable=no-member
response = service.roles().list().execute()
roles = response['roles']
print(type(roles))
print(len(roles))if 名称 == 'main':quickstart()
发布于 2019-12-07 00:53:45
您需要编写类似于此的代码:
roles = service.roles()
request = roles.list()
while request is not None:
role_list = request.execute()
# process each role here
for role in role_list:
print(role)
# Get next page of results
request = roles.list_next(request, role_list)list_next方法的文档化list_next
发布于 2019-12-07 19:23:03
除了@JohnHanley的解决方案之外,还可以在方法的参数中添加查询参数。像这样
# Page size of 10
response = service.roles().list(pageSize=10).execute()这里 list方法的定义
https://stackoverflow.com/questions/59221579
复制相似问题