AWS GraphQL Appsync - 无法承担角色

clg*_*123 3 amazon-web-services aws-lambda graphql aws-appsync

我正在运行一个技术堆栈 react -> graphQL -> appsync -> lambda -> go

当我从客户端运行我的 graphQL 查询时,我收到了这个错误:

Unable to assume role arn:aws:iam::<SOMENUMBER>:role/service-role/MyRoleForMyLambda.

事实上,这一切都运行良好,直到我不小心将数据源上的功能 ARN 和角色更改为其他功能。我把它们改回来了,但现在 Appsync 似乎无法找到角色和功能 ARN。我尝试创建一个全新的数据源,但我遇到了同样的问题。通常,函数 ARN 和/或角色不会出现在下拉列表中,我手动输入它们。有时它可以让我保存而没有错误 - 其他时候尝试保存数据源时我会收到有用的错误消息“错误”。有时在保存后,当我再次查看它们时,函数 ARN 字段是空白的,除非我单击“不在下拉列表中”链接。

我认为问题不在于我的角色本身,因为似乎 appsync 甚至无法承担该角色。我已经阅读了有关信任策略作为解决方案的内容,但我不知道将它们放在哪里。

非常感谢任何帮助。

Eph*_*ris 6

在您的 IAM 控制台中,您需要将 Appsync 服务作为受信任实体添加到您尝试代入的角色中 IAM 可信实体

单击编辑信任关系并输入以下内容:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "appsync.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)