带有React Native的AWS Amplify:凭证的作用域应为有效区域,而不是us-east-1

时间:2018-09-24 05:23:22

标签: amazon-web-services react-native aws-api-gateway amazon-iam aws-amplify

我正在尝试使用适用于React Native的AWS Amplify SDK和API Gateway中的IAM Authorizer提出一个简单的get请求。我总是收到以下错误消息:

  

凭据的范围应为有效区域,而不是'us-east-1'。

我在做什么错?这是我的代码(尚未执行任何操作):

function getImageIdForUpload() {
    let apiName = 'MyAPIGatewayAPI';
    let path = '/upload-image/get-new-id';
    let myInit = {
        // replace this with attributes you need
    };

    API.get(apiName, path, myInit).then(response => {
        console.log(response)
    }).catch(error => {
        console.error(error.response)
    });
}

我的配置:

Auth: {
        // REQUIRED - Amazon Cognito Identity Pool ID
        identityPoolId: 'eu-central-1:xxxx',
        // REQUIRED - Amazon Cognito Region
        region: 'eu-central-1',
        // OPTIONAL - Amazon Cognito User Pool ID
        userPoolId: 'eu-central-1_xxxx',
        // OPTIONAL - Amazon Cognito Web Client ID
        userPoolWebClientId: 'xxxx',
    },

任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:3)

我自己找到了解决方案:您必须在API配置中设置区域。

示例:

API: {
        endpoints: [
            {
                name: "MyAPIGatewayAPI",
                endpoint: "https://xxx.execute-api.eu-central-1.amazonaws.com/dev",
                region: "eu-central-1"
            }
        ]
    },

如果API设置为“边缘优化”,则可能不是问题。