Amazon web services AWS放大应用同步IAM 401
我正在获取Amazon web services AWS放大应用同步IAM 401,amazon-web-services,amazon-iam,aws-appsync,aws-amplify,Amazon Web Services,Amazon Iam,Aws Appsync,Aws Amplify,我正在获取GraphQLError:请求失败,状态代码为401 我按照以下自动配置说明操作: 我试着寻找,但IAM缺乏资源。看起来一切都应该自动设置,并在我输入IAM访问密钥和密码后使用Amplify CLI完成 是否需要进一步设置?这是我的密码: import Amplify, { API, graphqlOperation, Hub } from "aws-amplify"; import aws_config from "../../aws-exports"; Amplify.conf
GraphQLError:请求失败,状态代码为401
我按照以下自动配置说明操作:
我试着寻找,但IAM缺乏资源。看起来一切都应该自动设置,并在我输入IAM访问密钥和密码后使用Amplify CLI完成
是否需要进一步设置?这是我的密码:
import Amplify, { API, graphqlOperation, Hub } from "aws-amplify";
import aws_config from "../../aws-exports";
Amplify.configure(aws_config);
const ListKeywords = `query ListKeywords {
listKeyword {
keyword {
id
name
}
}
}`;
const loop = async () => {
const allKeywords = await API.graphql(graphqlOperation(ListKeywords));
}
也可能是因为我的GraphQL解析器尚未为ListKeywords设置?如果您在AppSync API上使用IAM作为授权类型,那么问题在于调用
Amplify.configure()
时,Auth类别使用的Cognito角色未被授予GraphQL操作的权限。它需要这样的附件:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"appsync:GraphQL"
],
"Resource": [
"arn:aws:appsync:us-west-2:123456789012:apis/YourGraphQLApiId/*"
]
}
]
}
这里有更多详细信息:我刚刚更改了
~/.aws/credentials
,现在它开始工作了
看起来,即使您通过Amplify的命令行工具或
~/.awsmobile/aws config.js
进行了特定于项目的配置,它仍然依赖于~/.aws
不确定这是否有帮助,但我已经为此奋斗了一段时间,发现如果我添加API并使用IAM作为身份验证方法,我也需要将“auth”添加到模式中
见下文:
type TimeLapseCamera @model
@auth(rules: [
{ allow: private, provider: iam }
])
{
...
}
我刚刚测试了这个,我的网页正在成功添加记录
其他评论的注释;我在这里根本没有AWS-这是一个带有Amplify的简单VUE应用程序。它应该有AWSAPSyncAdministrator权限。这是使用awsmobile配置设置的同一IAM用户吗?是否有任何方法可以避免~/.aws覆盖您的放大配置?这是在配置了~/.aws目录的用户系统上编写我的应用程序