使用aws-amplify api定制地理定位搜索解析器

问题描述 投票:0回答:1

我正在尝试添加一个使用aws-amplify API(base on documentation)定位Elasticsearch域的自定义地理位置搜索解析器

我的自定义堆栈json是:

{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "An auto-generated nested stack.",
    "Metadata": {},
    "Parameters": {
        "AppSyncApiId": {
            "Type": "String",
            "Description": "The id of the AppSync API associated with this project."
        },
        "AppSyncApiName": {
            "Type": "String",
            "Description": "The name of the AppSync API",
            "Default": "AppSyncSimpleTransform"
        },
        "env": {
            "Type": "String",
            "Description": "The environment name. e.g. Dev, Test, or Production",
            "Default": "NONE"
        },
        "S3DeploymentBucket": {
            "Type": "String",
            "Description": "The S3 bucket containing all deployment assets for the project."
        },
        "S3DeploymentRootKey": {
            "Type": "String",
            "Description": "An S3 key relative to the S3DeploymentBucket that points to the root\nof the deployment directory."
        }
    },
    "Resources": {
        "QueryNearbyUsers": {
            "Type": "AWS::AppSync::Resolver",
            "Properties": {
                "ApiId": {
                    "Ref": "AppSyncApiId"
                },
                "DataSourceName": "ElasticsearchDomain",
                "TypeName": "Query",
                "FieldName": "nearbyUsers",
                "RequestMappingTemplateS3Location": {
                    "Fn::Sub": [
                        "s3://${S3DeploymentBucket}/${S3DeploymentRootKey}/resolvers/Query.nearbyUsers.req.vtl",
                        {
                            "S3DeploymentBucket": {
                                "Ref": "S3DeploymentBucket"
                            },
                            "S3DeploymentRootKey": {
                                "Ref": "S3DeploymentRootKey"
                            }
                        }
                    ]
                },
                "ResponseMappingTemplateS3Location": {
                    "Fn::Sub": [
                        "s3://${S3DeploymentBucket}/${S3DeploymentRootKey}/resolvers/Query.nearbyUsers.res.vtl",
                        {
                            "S3DeploymentBucket": {
                                "Ref": "S3DeploymentBucket"
                            },
                            "S3DeploymentRootKey": {
                                "Ref": "S3DeploymentRootKey"
                            }
                        }
                    ]
                }
            }
        }
    },
    "Conditions": {

    },
    "Outputs": {
    }

}

但它给了我这个错误:

Resource Name: QueryNearbyUsers (AWS::AppSync::Resolver)
Event Type: create
Reason: No data source found named ElasticsearchDomain (Service: AWSAppSync; Status Code: 404; Error Code: NotFoundException; Request ID: 920993d8-46ef-11e9-82c8-e977f5face03)

我为DataSourceName尝试了许多不同的东西,包括aws控制台中的域名或者复制粘贴其他自动生成的堆栈中的代码,...遗憾的是,它们都不起作用。

我怎样才能找到DataSourceName值?

amazon-web-services elasticsearch aws-amplify
1个回答
0
投票

好像,他们的文档中有一个拼写错误,它应该是:

"DataSourceName": "ElasticSearchDomain",

不是:

"DataSourceName": "ElasticsearchDomain",

现在它工作得很好..这么简单的错字浪费了这么多小时。

© www.soinside.com 2019 - 2024. All rights reserved.