Referência do modelo de mapeamento do resolvedor para OpenSearch - AWS AppSync

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Referência do modelo de mapeamento do resolvedor para OpenSearch

nota

Agora, oferecemos suporte principalmente ao tempo de execução APPSYNC _JS e sua documentação. Considere usar o tempo de execução APPSYNC _JS e seus guias aqui.

O AWS AppSync resolvedor do Amazon OpenSearch Service permite que você use o GraphQL para armazenar e recuperar dados em domínios de OpenSearch serviço existentes em sua conta. Esse resolvedor funciona permitindo que você mapeie uma solicitação de entrada do GraphQL em uma solicitação de serviço e, em OpenSearch seguida, mapeie a resposta do serviço de volta para OpenSearch o GraphQL. Esta seção descreve os modelos de mapeamento para as operações OpenSearch de serviço suportadas.

Modelo de mapeamento de solicitações

A maioria dos modelos de mapeamento de solicitações de OpenSearch serviço tem uma estrutura comum em que apenas algumas partes mudam. O exemplo a seguir executa uma pesquisa em um domínio OpenSearch de serviço, onde os documentos são organizados em um índice chamadopost. Os parâmetros de pesquisa são definidos na seção body, com muitas das cláusulas de consulta comuns definidas no campo query. Esse exemplo pesquisará documentos que contém "Nadia", "Bailey" ou ambos no campo author de um documento:

{ "version":"2017-02-28", "operation":"GET", "path":"/post/_search", "params":{ "headers":{}, "queryString":{}, "body":{ "from":0, "size":50, "query" : { "bool" : { "should" : [ {"match" : { "author" : "Nadia" }}, {"match" : { "author" : "Bailey" }} ] } } } } }

Modelo de mapeamento de respostas

Assim como em outras fontes de dados, o OpenSearch Service envia uma resposta AWS AppSync que precisa ser convertida em GraphQL.

A maioria das consultas do GraphQL está procurando o _source campo a partir de uma OpenSearch resposta de serviço. Como você pode fazer pesquisas para retornar um documento individual ou uma lista de documentos, há dois modelos comuns de mapeamento de respostas usados no OpenSearch Service:

Lista de resultados

[ #foreach($entry in $context.result.hits.hits) #if( $velocityCount > 1 ) , #end $utils.toJson($entry.get("_source")) #end ]

Item individual

$utils.toJson($context.result.get("_source"))

operation field

nota

Isso se aplica somente ao modelo de mapeamento de solicitações.

HTTPmétodo ou verbo (GET,, POSTPUT, HEAD ouDELETE) que é AWS AppSync enviado para o domínio do OpenSearch Serviço. A chave e o valor devem ser strings.

"operation" : "PUT"

path field

nota

Isso se aplica somente ao modelo de mapeamento de solicitações.

O caminho de pesquisa para uma solicitação de OpenSearch serviço de AWS AppSync. Isso forma a URL para o HTTP verbo da operação. A chave e o valor devem ser strings.

"path" : "/<indexname>/_doc/<_id>" "path" : "/<indexname>/_doc" "path" : "/<indexname>/_search" "path" : "/<indexname>/_update/<_id>

Quando o modelo de mapeamento é avaliado, esse caminho é enviado como parte da HTTP solicitação, incluindo o domínio do OpenSearch serviço. Por exemplo, o exemplo anterior pode ser traduzido como:

GET https://opensearch-domain-name.REGION.es.amazonaws.com/indexname/type/_search

params field

nota

Isso se aplica somente ao modelo de mapeamento de solicitações.

Usado para especificar qual é executada pela pesquisa, geralmente definindo o valor consulta dentro do corpo. No entanto, existem vários outros recursos que podem ser configurados, como a formatação de respostas.

  • headers

    As informações do cabeçalho, como pares de chave/valor. A chave e o valor devem ser strings. Por exemplo: .

    "headers" : { "Content-Type" : "application/json" }
    nota

    AWS AppSync atualmente suporta apenas JSON como umContent-Type.

  • queryString

    Pares de valores-chave que especificam opções comuns, como formatação de código para respostas. JSON A chave e o valor devem ser strings. Por exemplo, se você quiser obter uma formatação bonitaJSON, você usaria:

    "queryString" : { "pretty" : "true" }
  • body

    Essa é a parte principal da sua solicitação, permitindo AWS AppSync criar uma solicitação de pesquisa bem formada para seu domínio OpenSearch de serviço. A chave deve ser uma string composta por um objeto. Algumas demonstrações são mostradas abaixo.

Exemplo 1

Retornar todos os documentos com uma cidade correspondente a "seattle":

"body":{ "from":0, "size":50, "query" : { "match" : { "city" : "seattle" } } }

Exemplo 2

Retornar todos os documentos correspondentes a "washington" como a cidade ou o estado:

"body":{ "from":0, "size":50, "query" : { "multi_match" : { "query" : "washington", "fields" : ["city", "state"] } } }

Envio de variáveis

nota

Isso se aplica somente ao modelo de mapeamento de solicitações.

Você também pode passar variáveis como parte da avaliação na VTL declaração. Por exemplo, digamos que tenha uma consulta do GraphQL como a seguinte:

query { searchForState(state: "washington"){ ... } }

O modelo de mapeamento pode tomar o estado como um argumento:

"body":{ "from":0, "size":50, "query" : { "multi_match" : { "query" : "$context.arguments.state", "fields" : ["city", "state"] } } }

Para obter uma lista de utilitários que você pode incluir noVTL, consulte Cabeçalhos de solicitação de acesso.