You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

仅Web端Cognito用户池用户登录活动追踪及数据同步方案咨询

问题排查:Pinpoint无数据的常见遗漏配置
  • 首先确认Cognito用户池的集成配置里,启用身份事件开关是打开状态,且绑定的Pinpoint项目所在区域和Cognito用户池区域完全一致,跨区域无法同步数据
  • 检查Cognito用户池的应用客户端配置,你要追踪登录的目标客户端,必须开启启用Pinpoint分析选项,默认创建客户端时该开关为关闭状态
  • 确认测试登录的用户账号状态为已确认,未确认/禁用的用户登录不会生成Pinpoint事件,且登录操作走Cognito托管UI或者官方SDK的认证接口,自定义登录逻辑不会自动上报事件
  • 检查IAM权限:Cognito默认会创建服务关联角色AWSServiceRoleForAmazonCognitoIdp,如果该角色被误删或者权限被修改,会导致无法向Pinpoint推送数据,角色必须包含pinpoint:PutEvents权限
可行实现方案

方案1:基于Pinpoint的实现(适配原有规划)

  • 不需要额外配置Identity Pool:你的场景只需要追踪Cognito原生的认证事件,不需要Web端用户行为埋点的话,Identity Pool属于冗余配置,无需配置
  • 可以获取指定用户的活动数据:使用Node.js的AWS SDK v3的@aws-sdk/client-pinpoint包,调用GetEndpoint或GetUserEndpoints接口可拉取单用户的所有关联活动,调用GetEvents接口可拉取指定时间范围内的所有登录事件,登录事件的固定类型为_userauth.sign_in
  • 同步到Power BI的流程:
    1. 开发定时触发的Lambda(Node/TS技术栈完全适配),按你需要的频率拉取Pinpoint的登录事件
    2. 做数据清洗转换,提取用户ID、登录时间、IP地址、设备信息等需要的字段
    3. 调用Power BI REST API或者把数据写入Power BI关联的数据源完成同步
  • 参考代码示例:
import { PinpointClient, GetEventsCommand } from "@aws-sdk/client-pinpoint";
const pinpointClient = new PinpointClient({ region: "你的AWS资源区域" });

// 拉取指定时间范围内的登录事件
export const getLoginEvents = async (applicationId: string, startTime: Date, endTime: Date) => {
  const command = new GetEventsCommand({
    ApplicationId: applicationId,
    StartTime: startTime.toISOString(),
    EndTime: endTime.toISOString(),
    EventType: "_userauth.sign_in"
  });
  const response = await pinpointClient.send(command);
  return response.EventsResponse?.Results || [];
};

方案2:更轻量的无Pinpoint实现

如果你的需求仅需要追踪登录/注册等Cognito认证事件,不需要其他用户行为分析能力,可以跳过Pinpoint简化链路:

  • 配置Cognito的认证后触发器,每次用户登录成功后直接触发Lambda,把登录数据写入你指定的存储(比如DynamoDB)
  • 后续定时任务直接从存储中拉取数据同步到Power BI即可,链路更简单,排查成本更低,也没有额外的Pinpoint使用成本

内容的提问来源于stack exchange,提问作者FullMoon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:21:02