Настраиваемый распознаватель поиска геолокации с использованием API-интерфейса AWS-Ampify - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь добавить пользовательский распознаватель поиска геолокации, который нацелен на домен Elasticsearch с использованием aws-ampify API ( на основе документации )

Мой пользовательский стек 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?

1 Ответ

0 голосов
/ 15 марта 2019

Кажется, в их документации есть опечатка, и она должна быть:

"DataSourceName": "ElasticSearchDomain",

не:

"DataSourceName": "ElasticsearchDomain",

теперь все работает нормально ... так много часов было потрачено на такую ​​простую опечатку.

...