

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 对 API 关联策略存储进行故障排除
<a name="policy-stores-api-userpool-considerations-troubleshooting"></a>

使用此处的信息来帮助您诊断和修复构建与 Amazon Verified Permissions API 关联的策略存储库时的常见问题。

**Topics**
+ [我更新了政策，但授权决定没有改变](#policy-stores-api-userpool-considerations-troubleshooting-update-didnt-change)
+ [我将 Lambda 授权器附加到我的 API 中，但它没有生成授权请求](#policy-stores-api-userpool-considerations-troubleshooting-attached-not-deployed)
+ [我收到了意想不到的授权决定，想查看授权逻辑](#policy-stores-api-userpool-considerations-troubleshooting-review-code)
+ [我想从我的 Lambda 授权机构那里查找日志](#policy-stores-api-userpool-considerations-troubleshooting-find-logs)
+ [我的 Lambda 授权机构不存在](#policy-stores-api-userpool-considerations-troubleshooting-didnt-deploy)
+ [我的 API 位于私有 VPC 中，无法调用授权方](#policy-stores-api-userpool-considerations-troubleshooting-in-a-vpc)
+ [我想在我的授权模型中处理其他用户属性](#policy-stores-api-userpool-considerations-troubleshooting-fgac)
+ [我想添加新的操作、操作上下文属性或资源属性](#policy-stores-api-userpool-considerations-troubleshooting-action-resource-attributes)

## 我更新了政策，但授权决定没有改变
<a name="policy-stores-api-userpool-considerations-troubleshooting-update-didnt-change"></a>

默认情况下，已验证权限将 Lambda 授权机构配置为将授权决策缓存 120 秒。两分钟后重试，或者在授权方上禁用缓存。有关更多信息，请参阅 *Amazon API Gateway 开发者指南中的启用 API* [缓存以增强响应能力](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html)。

## 我将 Lambda 授权器附加到我的 API 中，但它没有生成授权请求
<a name="policy-stores-api-userpool-considerations-troubleshooting-attached-not-deployed"></a>

要开始处理请求，您必须部署授权者所连接的 API 阶段。有关更多信息，请参阅 *Amazon [API Gateway 开发者指南中的部署 RES](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-deploy-api.html) T API*。

## 我收到了意想不到的授权决定，想查看授权逻辑
<a name="policy-stores-api-userpool-considerations-troubleshooting-review-code"></a>

与 API 关联的策略存储流程会为您的授权方创建一个 Lambda 函数。已验证的权限会自动将您的授权决策逻辑构建到授权者函数中。创建策略存储后，您可以返回以查看和更新函数中的逻辑。

要从 AWS CloudFormation 控制台中找到您的 Lambda 函数，请在新策略存储的**概**述页面上选择**检查部署**按钮。

您也可以在 AWS Lambda 控制台中找到您的函数。导航到策略存储 AWS 区域 中的控制台，搜索前缀为的函数名称`AVPAuthorizerLambda`。如果您创建了多个与 API 关联的策略存储，请使用函数的**上次修改**时间将其与策略存储的创建相关联。

## 我想从我的 Lambda 授权机构那里查找日志
<a name="policy-stores-api-userpool-considerations-troubleshooting-find-logs"></a>

Lambda 函数收集指标并将其调用结果记录在亚马逊中。 CloudWatch要查看您的日志，请在 Lambda 控制台中[找到您的函数](#policy-stores-api-userpool-considerations-troubleshooting-review-code)，然后选择**监控**选项卡。选择**查看 CloudWatch 日志**并查看日志组中的条目。

有关 Lambda 函数日志的更多信息，请参阅*AWS Lambda 开发者*指南 AWS Lambda中的[将 Amazon CloudWatch 日志与一起使用](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html)。

## 我的 Lambda 授权机构不存在
<a name="policy-stores-api-userpool-considerations-troubleshooting-didnt-deploy"></a>

完成 API 关联策略存储的设置后，您必须将 Lambda 授权方附加到您的 API。如果您在 API Gateway 控制台中找不到授权者，则您的策略存储的其他资源可能已失败或尚未部署。与 API 关联的策略存储将这些资源部署在堆栈中。 CloudFormation 

在创建过程结束时，已验证权限会显示一个标有 “**检查部署**” 标签的链接。如果您已经离开了此屏幕，请前往 CloudFormation 控制台，在最近的堆栈中搜索前缀为的名称。`AVPAuthorizer-<policy store ID>` CloudFormation 在堆栈部署的输出中提供了宝贵的故障排除信息。

有关 CloudFormation 堆栈故障排除的帮助，请参阅《*AWS CloudFormation 用户指南》 CloudFormation*中的[故障排除](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html)。

## 我的 API 位于私有 VPC 中，无法调用授权方
<a name="policy-stores-api-userpool-considerations-troubleshooting-in-a-vpc"></a>

已验证权限不支持通过 VPC 终端节点访问 Lambda 授权方。您必须在您的 API 和用作授权方的 Lambda 函数之间打开一条网络路径。

## 我想在我的授权模型中处理其他用户属性
<a name="policy-stores-api-userpool-considerations-troubleshooting-fgac"></a>

与 API 关联的策略存储流程从用户令牌中的群组声明中派生出经过验证的权限策略。要更新您的授权模型以考虑其他用户属性，请将这些属性集成到您的策略中。

您可以将 Amazon Cognito 用户池中的 ID 和访问令牌中的许多声明映射到已验证的权限政策声明。例如，大多数用户的 ID 令牌中都有`email`声明。有关将身份来源的声明添加到策略的更多信息，请参阅将[Amazon Cognito 令牌映射到架构和将 OIDC 令](cognito-map-token-to-schema.md)[牌映射到](oidc-map-token-to-schema.md)架构。

## 我想添加新的操作、操作上下文属性或资源属性
<a name="policy-stores-api-userpool-considerations-troubleshooting-action-resource-attributes"></a>

与 API 关联的策略存储库及其创建的 Lambda 授权方是一种资源。 point-in-time它们反映了创建 API 时的状态。策略存储架构不会为操作分配任何上下文属性，也不会为默认`Application`资源分配任何属性或父项。

向 API 添加操作（路径和方法）时，必须更新策略存储库以了解新操作。您还必须更新您的 Lambda 授权机构以处理新操作的授权请求。您可以[重新开始使用新的保单存储](policy-stores-create.md)，也可以更新现有的保单存储。

要更新现有的政策存储，请[找到您的函数](#policy-stores-api-userpool-considerations-troubleshooting-review-code)。检查自动生成的函数中的逻辑，并对其进行更新以处理新的操作、属性或上下文。然后[编辑您的架构](schema-edit.md)，使其包含新的操作和属性。