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 Anda GraphQL API. 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:CachingConfigCodeUri:StringFieldName:StringInlineCode:StringMaxBatchSize:IntegerPipeline:ListRuntime:RuntimeSync:SyncConfig
Properti
Caching-
Konfigurasi caching untuk resolver yang telah caching diaktifkan.
Jenis: CachingConfig
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
CachingConfigpropertiAWS::AppSync::Resolversumber 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 SAMÂ CLI untuk memfasilitasi proses ini. Untuk informasi selengkapnya, lihat Cara AWS SAM mengunggah file lokal saat penerapan.
Jika tidak
InlineCodeadaCodeUriatau disediakan, AWS SAM akan menghasilkanInlineCodeyang 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
CodeS3LocationpropertiAWS::AppSync::Resolversumber daya. FieldName-
Nama resolver Anda. Tentukan properti ini untuk mengganti
LogicalIdnilainya.Tipe: String
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
FieldNamepropertiAWS::AppSync::Resolversumber daya. InlineCode-
Kode resolver yang berisi fungsi permintaan dan respons.
Jika tidak
InlineCodeadaCodeUriatau disediakan, AWS SAM akan menghasilkanInlineCodeyang 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
CodepropertiAWS::AppSync::Resolversumber daya. LogicalId-
Nama unik untuk resolver Anda. Dalam sebuah GraphQL skema, nama resolver Anda harus cocok dengan nama bidang yang digunakan untuknya. 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.
BatchInvokeTipe: Integer
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
MaxBatchSizepropertiAWS::AppSync::Resolversumber daya. OperationType-
Bagian GraphQL jenis operasi yang terkait dengan resolver Anda. Sebagai contoh,
Query,Mutation, atauSubscription. Anda dapat membuat sarang beberapa resolverLogicalIddalam satu.OperationTypeTipe: String
Wajib: Ya
AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
TypeNamepropertiAWS::AppSync::Resolversumber 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
PipelineConfigproperti sumberAWS::AppSync::Resolverdaya. 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
Runtimeproperti sumberAWS::AppSync::Resolverdaya. 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
SyncConfigpropertiAWS::AppSync::Resolversumber 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; }