AWS AppSyncreferensi template pemetaan resolver untuk OpenSearch - AWS AppSync

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

AWS AppSyncreferensi template pemetaan resolver untuk OpenSearch

catatan

Kami sekarang terutama mendukung runtime APPSYNC _JS dan dokumentasinya. Harap pertimbangkan untuk menggunakan runtime APPSYNC _JS dan panduannya di sini.

AWS AppSync Resolver untuk Amazon OpenSearch Service memungkinkan Anda menggunakan GraphQL untuk menyimpan dan mengambil data di domain Layanan yang ada di akun Anda. OpenSearch Penyelesai ini berfungsi dengan memungkinkan Anda memetakan permintaan GraphQL yang masuk ke dalam permintaan Layanan, lalu memetakan OpenSearch respons Layanan kembali ke GraphQL. OpenSearch Bagian ini menjelaskan template pemetaan untuk operasi OpenSearch Layanan yang didukung.

Meminta template pemetaan

Sebagian besar templat pemetaan permintaan OpenSearch Layanan memiliki struktur umum di mana hanya beberapa bagian yang berubah. Contoh berikut menjalankan pencarian terhadap domain OpenSearch Layanan, di mana dokumen diatur di bawah indeks yang disebutpost. Parameter pencarian didefinisikan di body bagian, dengan banyak klausa kueri umum yang didefinisikan di query bidang. Contoh ini akan mencari dokumen yang berisi "Nadia""Bailey", atau, atau keduanya, di author bidang dokumen:

{ "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" }} ] } } } } }

Templat pemetaan respons

Seperti sumber data lainnya, OpenSearch Layanan mengirimkan respons AWS AppSync yang perlu dikonversi ke GraphQL.

Sebagian besar kueri GraphQL mencari bidang _source dari respons Layanan. OpenSearch Karena Anda dapat melakukan pencarian untuk mengembalikan dokumen individual atau daftar dokumen, ada dua templat pemetaan respons umum yang digunakan dalam OpenSearch Layanan:

Daftar Hasil

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

Barang Individu

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

operationlapangan

catatan

Ini hanya berlaku untuk template pemetaan Permintaan.

HTTPmetode atau kata kerja (GET,POST,PUT, HEAD atauDELETE) yang AWS AppSync mengirimkan ke domain OpenSearch Layanan. Baik kunci dan nilainya harus berupa string.

"operation" : "PUT"

pathlapangan

catatan

Ini hanya berlaku untuk template pemetaan Permintaan.

Jalur pencarian untuk permintaan OpenSearch Layanan dari AWS AppSync. Ini membentuk a URL untuk HTTP kata kerja operasi. Baik kunci dan nilainya harus berupa string.

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

Saat templat pemetaan dievaluasi, jalur ini dikirim sebagai bagian dari HTTP permintaan, termasuk domain OpenSearch Layanan. Misalnya, contoh sebelumnya mungkin diterjemahkan ke:

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

paramslapangan

catatan

Ini hanya berlaku untuk template pemetaan Permintaan.

Digunakan untuk menentukan tindakan apa yang dilakukan penelusuran Anda, paling umum dengan menetapkan nilai kueri di dalam badan. Namun, ada beberapa kemampuan lain yang dapat dikonfigurasi, seperti pemformatan respons.

  • header

    Informasi header, sebagai pasangan kunci-nilai. Baik kunci dan nilainya harus berupa string. Sebagai contoh:

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

    AWS AppSync saat ini hanya mendukung JSON sebagaiContent-Type.

  • queryString

    Pasangan nilai kunci yang menentukan opsi umum, seperti pemformatan kode untuk respons. JSON Baik kunci dan nilainya harus berupa string. Misalnya, jika Anda ingin mendapatkan format yang cantikJSON, Anda akan menggunakan:

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

    Ini adalah bagian utama dari permintaan Anda, memungkinkan AWS AppSync untuk membuat permintaan pencarian yang terbentuk dengan baik ke domain OpenSearch Layanan Anda. Kuncinya harus berupa string yang terdiri dari sebuah objek. Beberapa demonstrasi ditunjukkan di bawah ini.

Contoh 1

Kembalikan semua dokumen dengan kota yang cocok dengan “seattle”:

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

Contoh 2

Kembalikan semua dokumen yang cocok dengan “washington” sebagai kota atau negara bagian:

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

Melewati variabel

catatan

Ini hanya berlaku untuk template pemetaan Permintaan.

Anda juga dapat meneruskan variabel sebagai bagian dari evaluasi dalam VTL pernyataan. Misalnya, Anda memiliki kueri GraphQL seperti berikut:

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

Template pemetaan dapat mengambil status sebagai argumen:

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

Untuk daftar utilitas yang dapat Anda sertakanVTL, lihat Header Permintaan Akses.