Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Penyelesai
Konfigurasikan resolver untuk bidang API AndaGraphQL. AWS Serverless Application Model (AWS SAM) mendukung JavaScript resolver pipa.
Sintaks
Untuk mendeklarasikan entitas ini dalam template AWS Serverless Application Model (AWS SAM) Anda, gunakan sintaks berikut.
YAML
OperationType
:LogicalId
: Caching:CachingConfig
CodeUri:String
FieldName:String
InlineCode:String
MaxBatchSize:Integer
Pipeline:List
Runtime:Runtime
Sync:SyncConfig
Properti
Caching
-
Konfigurasi caching untuk resolver yang telah caching diaktifkan.
Jenis: CachingConfig
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
CachingConfig
propertiAWS::AppSync::Resolver
sumber daya. CodeUri
-
Kode fungsi resolver adalah Amazon Simple Storage Service (Amazon S3) URI atau path ke folder lokal.
Jika Anda menentukan jalur ke folder lokal, AWS CloudFormation mengharuskan file tersebut diunggah terlebih dahulu ke Amazon S3 sebelum penerapan. Anda dapat menggunakan AWS SAMCLI untuk memfasilitasi proses ini. Untuk informasi selengkapnya, lihat Cara AWS SAM mengunggah file lokal saat penerapan.
Jika tidak
InlineCode
adaCodeUri
atau disediakan, AWS SAM akan menghasilkanInlineCode
yang mengalihkan permintaan ke fungsi pipeline pertama dan menerima respons dari fungsi pipeline terakhir.Tipe: String
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
CodeS3Location
propertiAWS::AppSync::Resolver
sumber daya. FieldName
-
Nama resolver Anda. Tentukan properti ini untuk mengganti
LogicalId
nilainya.Tipe: String
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
FieldName
propertiAWS::AppSync::Resolver
sumber daya. InlineCode
-
Kode resolver yang berisi fungsi permintaan dan respons.
Jika tidak
InlineCode
adaCodeUri
atau disediakan, AWS SAM akan menghasilkanInlineCode
yang mengalihkan permintaan ke fungsi pipeline pertama dan menerima respons dari fungsi pipeline terakhir.Tipe: String
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
Code
propertiAWS::AppSync::Resolver
sumber daya. LogicalId
-
Nama unik untuk resolver Anda. Dalam GraphQL skema, nama resolver Anda harus cocok dengan nama bidang yang digunakan. Gunakan nama bidang yang sama untuk
LogicalId
.Tipe: String
Wajib: Ya
AWS CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki AWS CloudFormation padanan.
MaxBatchSize
-
Jumlah maksimum input permintaan resolver yang akan dikirim ke satu AWS Lambda fungsi dalam operasi.
BatchInvoke
Tipe: Integer
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
MaxBatchSize
propertiAWS::AppSync::Resolver
sumber daya. OperationType
-
Jenis GraphQL operasi yang terkait dengan resolver Anda. Sebagai contoh,
Query
,Mutation
, atauSubscription
. Anda dapat membuat sarang beberapa resolverLogicalId
dalam satu.OperationType
Tipe: String
Wajib: Ya
AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
TypeName
propertiAWS::AppSync::Resolver
sumber daya. Pipeline
-
Fungsi yang terkait dengan penyelesai alur. Tentukan fungsi dengan ID logis dalam daftar.
Tipe: Daftar
Wajib: Ya
AWS CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki AWS CloudFormation padanan. Ini mirip dengan
PipelineConfig
properti sumberAWS::AppSync::Resolver
daya. Runtime
-
Runtime resolver atau fungsi pipeline Anda. Menentukan nama dan versi yang akan digunakan.
Jenis: Runtime
Wajib: Ya
AWS CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki AWS CloudFormation padanan. Ini mirip dengan
Runtime
properti sumberAWS::AppSync::Resolver
daya. Sync
-
Menjelaskan konfigurasi Sinkronisasi untuk penyelesai.
Menentukan strategi Deteksi Konflik dan strategi Resolusi mana yang akan digunakan saat resolver dipanggil.
Jenis: SyncConfig
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
SyncConfig
propertiAWS::AppSync::Resolver
sumber daya.
Contoh
Gunakan kode fungsi resolver yang AWS SAM dihasilkan dan simpan bidang sebagai variabel
Berikut adalah GraphQL skema untuk contoh kita:
schema { query: Query mutation: Mutation } type Query { getPost(id: ID!): Post } type Mutation { addPost(author: String!, title: String!, content: String!): Post! } type Post { id: ID! author: String title: String content: String }
Berikut adalah cuplikan template kami AWS SAM :
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyGraphQLApi: Type: AWS::Serverless::GraphQLApi Properties: ... Functions: preprocessPostItem: ... createPostItem: ... Resolvers: Mutation: addPost: Runtime: Name: APPSYNC_JS Version: 1.0.0 Pipeline: - preprocessPostItem - createPostItem
Dalam AWS SAM template kami, kami tidak menentukan CodeUri
atauInlineCode
. Saat penerapan, AWS SAM secara otomatis menghasilkan kode inline berikut untuk resolver kami:
export function request(ctx) { return {}; } export function response(ctx) { return ctx.prev.result; }
Kode resolver default ini mengalihkan permintaan ke fungsi pipeline pertama dan menerima respons dari fungsi pipeline terakhir.
Dalam fungsi pipeline pertama kita, kita dapat menggunakan args
bidang yang disediakan untuk mengurai objek permintaan dan membuat variabel kita. Kita kemudian dapat menggunakan variabel-variabel ini dalam fungsi kita. Berikut adalah contoh preprocessPostItem
fungsi kami:
import { util } from "@aws-appsync/utils"; export function request(ctx) { const author = ctx.args.author; const title = ctx.args.title; const content = ctx.args.content; // Use variables to process data } export function response(ctx) { return ctx.result; }