Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pemecahan masalah dan kesalahan umum di AWS AppSync
Bagian ini membahas beberapa kesalahan umum dan cara memecahkan masalah mereka.
Pemetaan kunci DynamoDB salah
Jika operasi GraphQL Anda mengembalikan pesan galat berikut, itu mungkin karena struktur template pemetaan permintaan Anda tidak cocok dengan struktur kunci Amazon DynamoDB:
The provided key element does not match the schema (Service: AmazonDynamoDBv2; Status Code: 400; Error Code
Misalnya, jika tabel DynamoDB Anda memiliki kunci hash yang "id"
dipanggil dan template Anda "PostID"
mengatakan, seperti pada contoh berikut, ini menghasilkan kesalahan sebelumnya, karena tidak cocok. "id"
"PostID"
{ "version" : "2017-02-28", "operation" : "GetItem", "key" : { "PostID" : $util.dynamodb.toDynamoDBJson($ctx.args.id) } }
Resolver yang hilang
Jika Anda menjalankan operasi GraphQL, seperti kueri, dan mendapatkan respons nol, ini mungkin karena Anda tidak memiliki resolver yang dikonfigurasi.
Misalnya, jika Anda mengimpor skema yang mendefinisikan getCustomer(userId:
ID!):
bidang, dan Anda belum mengonfigurasi resolver untuk bidang ini, maka ketika Anda menjalankan kueri sepertigetCustomer(userId:"ID123"){...}
, Anda akan mendapatkan respons seperti berikut:
{ "data": { "getCustomer": null } }
Kesalahan template pemetaan
Jika template pemetaan Anda tidak dikonfigurasi dengan benar, Anda akan menerima respons GraphQL yang ada. errorType
MappingTemplate
message
Bidang harus menunjukkan di mana masalahnya ada di template pemetaan Anda.
Misalnya, jika Anda tidak memiliki operation
bidang dalam templat pemetaan permintaan, atau jika nama operation
bidang salah, Anda akan mendapatkan respons seperti berikut:
{ "data": { "searchPosts": null }, "errors": [ { "path": [ "searchPosts" ], "errorType": "MappingTemplate", "locations": [ { "line": 2, "column": 3 } ], "message": "Value for field '$[operation]' not found." } ] }
Jenis pengembalian yang salah
Jenis pengembalian dari sumber data Anda harus cocok dengan tipe objek yang ditentukan dalam skema Anda, jika tidak, Anda mungkin melihat kesalahan GraphQL seperti:
"errors": [ { "path": [ "posts" ], "locations": null, "message": "Can't resolve value (/posts) : type mismatch error, expected type LIST, got OBJECT" } ]
Misalnya ini dapat terjadi dengan definisi kueri berikut:
type Query { posts: [Post] }
Yang mengharapkan LIST [Posts]
objek. Misalnya jika Anda memiliki fungsi Lambda di Node.JS dengan sesuatu seperti berikut:
const result = { data: data.Items.map(item => { return item ; }) }; callback(err, result);
Ini akan menimbulkan kesalahan seperti result
objek. Anda perlu mengubah panggilan balik ke result.data
atau mengubah skema Anda untuk tidak mengembalikan a. LIST
Memproses permintaan yang tidak valid
Ketika AWS AppSync tidak dapat memproses dan mengirim permintaan (karena data yang tidak benar seperti sintaks tidak valid) ke penyelesai bidang, payload respons akan mengembalikan data bidang dengan nilai yang disetel ke dan kesalahan yang relevan. null