• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - AWS 如何知道从 iOS api 连接到哪个 DynamoDB 数据库?

[复制链接]
菜鸟教程小白 发表于 2022-12-11 19:26:15 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有两个独立的 AWS 账户,一个用于生产,一个用于开发。我使用 DynamoDB、S3 和 Elastic Beanstalk。我使用 AWS 网站上的 ID 和密码、Elastic Beanstalk servlet 上的不同 AWS_ACCESS_KEY_ID/AWS_SECRET_KEY 和我的 iOS 应用程序中的 Cognito 身份在两个帐户之间切换。直到最近,当我尝试将 iOS 应用程序设置为使用开发 AWS 账户时,这一直运行良好。这在过去运行良好,唯一的区别是以下代码中的 CognitoIdentityPoolId。

    AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:CognitoRegionType identityPoolId:CognitoIdentityPoolId];
    AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegionefaultServiceRegionType credentialsProvider:credentialsProvider];
    AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration;

但是,我的 iOS 应用程序继续访问生产帐户中的 DynamoDB,即使它具有开发帐户的 CognitoIdentitytPoolID。我已经从 iPhone 中删除了应用程序及其数据(并在模拟器上尝试了相同的操作)并清理了项目。我仔细检查了 CognitoIdentitytPoolID 是否已更改为 Development 。

我看到现在可以设置角色以允许用户访问不同账户中的资源,但我没有做任何复杂的事情 - 我什至没有在任何一个账户上设置 IAM 用户(atm 安全不是问题)。我只是拥有 IAM 角色 (CognitoXXXUnauthRole) 以及访问 DynamoDB 和 S3 所需的策略。这些策略没有适用于 DynamoDB 的完整 arn,因此这似乎不是 ios 应用程序的帐户没有更改的原因。

所以我的问题归结为“AWS 如何知道从 iOS api 连接到哪个 DynamoDB 数据库?”



Best Answer-推荐答案


原因很简单——我的硬编码 CognitoIdentityPoolId 被忽略了。 Info.plist 中有一个被使用。我现在有两个 Info.plist 文件,这取决于我是否处于 Debug模式。不是特别方便,因为沙盒/生产不是调试/发布的同义词,但下次会解决...

关于ios - AWS 如何知道从 iOS api 连接到哪个 DynamoDB 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47764731/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap