Penyelesai - AWS Serverless Application Model

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 properti AWS::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 ada CodeUri atau disediakan, AWS SAM akan menghasilkan InlineCode 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 properti AWS::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 properti AWS::AppSync::Resolver sumber daya.

InlineCode

Kode resolver yang berisi fungsi permintaan dan respons.

Jika tidak InlineCode ada CodeUri atau disediakan, AWS SAM akan menghasilkan InlineCode 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 properti AWS::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 untukLogicalId.

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 properti AWS::AppSync::Resolver sumber daya.

OperationType

Jenis GraphQL operasi yang terkait dengan resolver Anda. Sebagai contoh, Query, Mutation, atau Subscription. Anda dapat membuat sarang beberapa resolver LogicalId dalam satu. OperationType

Tipe: String

Wajib: Ya

AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke TypeName properti AWS::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 sumber AWS::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 sumber AWS::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 properti AWS::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; }