在AWS无服务器框架中,可以使用以下代码示例在Lambda函数中获取Cognito用户池ID和应用客户端ID:
import json
import boto3
def lambda_handler(event, context):
# 获取Cognito用户池ID和应用客户端ID
user_pool_id = event['requestContext']['authorizer']['claims']['cognito:pool']
app_client_id = event['requestContext']['authorizer']['claims']['client_id']
# 输出用户池ID和应用客户端ID
print("User Pool ID:", user_pool_id)
print("App Client ID:", app_client_id)
return {
'statusCode': 200,
'body': json.dumps('Cognito User Pool ID and App Client ID retrieved successfully!')
}
在上述代码中,我们假定您已经使用AWS API Gateway配置了Cognito用户池作为Lambda函数的授权器。在请求的API网关事件参数(event)中,Cognito用户池ID可以通过event['requestContext']['authorizer']['claims']['cognito:pool']
获取,应用客户端ID可以通过event['requestContext']['authorizer']['claims']['client_id']
获取。
请注意,上述代码仅适用于已经通过Cognito用户池进行了身份验证的请求。确保您的API网关已正确配置,并且Lambda函数已授权使用Cognito用户池作为授权器。