列出和获取列入许可名单的网域
本页面提供了代码示例和操作详情,演示了如何使用列入许可名单的网域 API 列出和检索许可名单中的特定网域。
准备工作
在继续此页面的信息之前,请先执行以下任务:
列出许可名单中的网域
使用 list 方法可提取所有条目。您可以选择性地提供 pageSize、pageToken 或 filter 字符串来缩小结果范围。
Python
def list_allowlisted_domains(
service, page_size=None, page_token=None, domain_filter=None
):
"""Lists allowlisted domains."""
try:
filter_string = None
if domain_filter:
filter_string = f"domain = '{domain_filter}'"
response = (
service.allowlistedDomains()
.list(
pageSize=page_size, pageToken=page_token, filter=filter_string
)
.execute()
)
return response
except Exception as e:
print(f'An error occurred during list: {e}')
return None
获取特定网域
使用从之前的列表操作中获取的资源名称,以同步方式检索特定网域。
Python
def get_allowlisted_domain(service, resource_name):
"""Gets an allowlisted domain."""
if not resource_name:
print('Resource name is missing.')
return None
try:
response = service.allowlistedDomains().get(name=resource_name).execute()
return response
except Exception as e:
print(f'An error occurred during get: {e}')
return None
错误处理
本部分介绍了列出或获取列入许可名单的网域时常见的错误情况和问题排查步骤。
列表错误处理
| 错误情况 | RPC 状态代码 | 错误消息 | 问题排查 / 理由 |
|---|---|---|---|
| 未获资源授权 | PERMISSION_DENIED (403) |
"Permission denied for allowlisted domain resource." |
• 确保用户已获适当的范围授权。 •确保用户拥有所需的权限。 •请通过联系电子邮件地址确认项目/用户是否已列入许可名单。 |
| 找不到用户的客户 ID | NOT_FOUND (404) |
"Customer ID not found for user." |
登录的用户未与有效网域关联。 |
| 分页期间列表已发生变化 | ABORTED |
"List has been mutated. Please restart pagination." |
在您进行分页时,底层网域列表已发生修改(变化);您必须从第一页重新开始 allowlistedDomains.list 操作。如果存在并行进行的变动,请考虑一次性提取完整列表。 |
| 提供的网域过滤条件值无效 | INVALID_ARGUMENT (400) |
"Invalid domain filter value provided. Error: <Error message>." |
仔细检查列表请求的过滤条件参数中提供的网域,确保其不为空或语法无效。 提供无效过滤条件参数的情况: 由于过滤条件中传递的语法无效或操作不受支持, allowlistedDomains.list 操作失败。错误消息将说明确切的使用情形。请确保使用以下格式调用 API:GET https://cloudidentity.googleapis.com/v1/allowlistedDomains?filter="domain = 'google.com'" |
| 过滤表达式无效 | INVALID_ARGUMENT (400) |
"Invalid filter expression: %s." |
请求中传递的过滤表达式不正确。 |
| 不支持复合条件 | INVALID_ARGUMENT (400) |
"Composite conditions (AND, OR, NOT) are not supported in the filter." |
过滤条件不支持复合条件;仅允许使用单条件过滤。 |
| 仅支持“=”运算符 | INVALID_ARGUMENT (400) |
"Only '=' operator is supported in the filter." |
对所有过滤表达式使用等号运算符 (=)。不支持任何其他操作。 |
| 仅支持“domain”字段 | INVALID_ARGUMENT (400) |
"Only 'domain' field is supported in the filter." |
过滤条件必须以网域字段为目标(例如 domain = 'example.com')。不支持任何其他字段。 |
| RHS 具有无效的成员值 / 应为字符串 | INVALID_ARGUMENT (400) |
"RHS of filter expression has invalid member value.""RHS of filter expression should be a string." |
过滤表达式的右侧 (RHS) 值必须是字符串(网域名称)。 |
| 页面大小为负数 | INVALID_ARGUMENT (400) |
"Page size cannot be negative." |
确保 pageSize 参数为非负整数。 |
| 页面令牌无效 | INVALID_ARGUMENT (400) |
"Invalid page token." |
此错误表示令牌格式不正确或已过期。确保您使用的是紧邻之前的列表响应的 nextPageToken 字段提供的确切令牌,且未对其进行修改。如果验证失败,请省略 pageToken 参数,以从第一页重新开始分页。 |
获取错误处理
| 错误情况 | RPC 状态代码 | 错误消息 | 问题排查 / 理由 |
|---|---|---|---|
| 未获资源授权 | PERMISSION_DENIED (403) |
"Permission denied for allowlisted domain resource." |
• 确保用户已获适当的范围授权。 •确保用户拥有所需的权限。 •请通过联系电子邮件地址确认项目/用户是否已列入许可名单。 |
| 找不到用户的客户 ID | NOT_FOUND (404) |
"Customer ID not found for user." |
登录的用户未与有效网域关联。 |
| 在许可名单中找不到网域 | NOT_FOUND (404) |
"Allowlisted domain <domain> not found" |
许可名单中不存在提供的网域。 |
| 资源名称无效 | INVALID_ARGUMENT (400) |
"Invalid resource name: <resourceName>." |
验证资源名称格式:用于名称形参的字符串必须严格遵循 allowlistedDomains/UNIQUE_IDENTIFIER 格式。 |