在对REST API执行amplify add api
后,我无法推送Amplify后端。在"创建API模型..."阶段,我在CLI中收到以下IAM错误:
用户:arn:aws:iam::xxxxxxxxxx:用户/tb2-未授权放大器执行:资源上的apigateway:GET:arn:aws:apigateway:us-east-1::/restapis/xxxxxxxxxx/stages/dev/sdks/android,因为没有基于身份的策略允许apigateway:GET操作
我只需要一个公共GET方法从DynamoDB表中读取一个项目。我想要的管道是android -> Amplify.API.get() -> Lambda Function -> DynamoDB
。我已经遵循了Amplify Docs (Libraries/Guides)指南,在项目中重新初始化了Amplify,API是唯一的资源,尝试手动将API添加到amplifyconfiguration.json
文件中。我被难倒了。
- 问题出在我想要的管道上吗?在
amplify push
之前,我是否需要执行配置?有人知道为什么我配置的IAM没有被授权执行此操作吗?**
- 问题出在我想要的管道上吗?在
- 更新**
授予我的IAM用户完全管理员访问权限允许我对后端进行amplify push
操作。我现在遇到如下构建错误:
包com. amazonaws. mobileconnectors. apigateway.注解不存在
你访问的页面不存在
这些错误在生成的名为tb2api.TbapiClient.Java
的包中出现6次
现在正在研究这个问题。(看,只需要添加implementation 'com.amazonaws:aws-android-sdk-apigateway-core:<version>'
到gradle。
1条答案
按热度按时间xqnpmsa81#
Amplify内部版本正在使用的用户似乎没有
apigateway:GET
的权限。转到IAM中的tb 2-amplify用户并查看“Permissions policies”。您应该有一个类型为
AWS managed
的策略名称AdministratorAccess-Amplify
。该策略是Amplify项目所需的大多数权限。如果用户没有该策略,请添加该策略,或者在遇到所需权限时添加这些权限。
这个策略应该会让您遇到下一个错误:
编辑另一个Amplify用户reported an issue看起来与你所遇到的相同或极其相似。尝试为你的
tb2-amplify
用户授予完全权限,看看这是否能解决问题。如果能解决问题,说明你已经缩小了问题的范围。部署后删除“完全权限”,并添加到错误描述中。EDIT 2如果授予用户完全访问权限起作用,那么可以将其缩小到我在上面设置的权限或托管策略
AmazonAPIGatewayAdministrator
。这些权限没有“条件”语句,这可能会产生影响。我也强烈推荐去参观Amplify Discord channel,它非常活跃。