翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
[リゾルバ]
GraphQL API の フィールドにリゾルバーを設定します。 AWS Serverless Application Model (AWS SAM) は JavaScript パイプラインリゾルバーをサポートします。
構文
AWS Serverless Application Model (AWS SAM) テンプレートでこのエンティティを宣言するには、次の構文を使用します。
YAML
OperationType
:LogicalId
: Caching:CachingConfig
CodeUri:String
FieldName:String
InlineCode:String
MaxBatchSize:Integer
Pipeline:List
Runtime:Runtime
Sync:SyncConfig
プロパティ
Caching
-
キャッシュが有効になっているリゾルバーのキャッシュ構成です。
タイプ: CachingConfig
必須: いいえ
AWS CloudFormation 互換性: このプロパティは、
AWS::AppSync::Resolver
リソースのCachingConfig
プロパティに直接渡されます。 CodeUri
-
リゾルバー関数コードの Amazon Simple Storage Service (Amazon S3) URI、またはローカルフォルダへのパスです。
ローカルフォルダへのパスを指定する場合、 AWS CloudFormation はデプロイ前にファイルを最初に Amazon S3 にアップロードする必要があります。 AWS SAM CLI を使用することで、この処理を円滑化することができます。詳細については、「がデプロイ時にローカルファイル AWS SAM をアップロードする方法」を参照してください。
CodeUri
または のいずれも指定InlineCode
されていない場合、 AWS SAM はリクエストを最初のパイプライン関数にInlineCode
リダイレクトし、最後のパイプライン関数からレスポンスを受け取る を生成します。型: 文字列
必須: いいえ
AWS CloudFormation 互換性: このプロパティは、
AWS::AppSync::Resolver
リソースのCodeS3Location
プロパティに直接渡されます。 FieldName
-
リゾルバーの名前です。このプロパティを指定して、
LogicalId
値を上書きします。型: 文字列
必須: いいえ
AWS CloudFormation 互換性: このプロパティは、
AWS::AppSync::Resolver
リソースのFieldName
プロパティに直接渡されます。 InlineCode
-
リクエスト関数とレスポンス関数が含まれるリゾルバーコードです。
CodeUri
または のいずれも指定InlineCode
されていない場合、 AWS SAM はリクエストを最初のパイプライン関数にInlineCode
リダイレクトし、最後のパイプライン関数からレスポンスを受け取る を生成します。型: 文字列
必須: いいえ
AWS CloudFormation 互換性: このプロパティは、
AWS::AppSync::Resolver
リソースのCode
プロパティに直接渡されます。 LogicalId
-
リゾルバーの一意の名前です。GraphQL スキーマでは、リゾルバーが使用されるフィールド名が、リゾルバー名と一致する必要があります。
LogicalId
にも、それと同じフィールド名を使用してください。型: 文字列
必須: はい
AWS CloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 AWS CloudFormation 同等のプロパティはありません。
MaxBatchSize
-
BatchInvoke
オペレーションの単一の AWS Lambda 機能に送信されるリゾルバーリクエスト入力の最大数を指定します。タイプ: 整数
必須: いいえ
AWS CloudFormation 互換性: このプロパティは、
AWS::AppSync::Resolver
リソースのMaxBatchSize
プロパティに直接渡されます。 OperationType
-
リゾルバーに関連付けられている GraphQL オペレーションタイプです。例えば、
Query
、Mutation
、またはSubscription
などです。単一のOperationType
内にあるLogicalId
で、複数のリゾルバーをネストすることができます。型: 文字列
必須: はい
AWS CloudFormation 互換性: このプロパティは、
AWS::AppSync::Resolver
リソースのTypeName
プロパティに直接渡されます。 Pipeline
-
パイプランリゾルバーにリンクされている関数。リスト内の論理 ID で関数を指定します。
タイプ: リスト
必須: はい
AWS CloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 AWS CloudFormation 同等のものはありません。これは、
AWS::AppSync::Resolver
リソースのPipelineConfig
プロパティに似ています。 Runtime
-
パイプラインリゾルバーまたは関数のランタイムです。使用する名前とバージョンを指定します。
タイプ: Runtime
必須: はい
AWS CloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 AWS CloudFormation 同等のプロパティはありません。これは、
AWS::AppSync::Resolver
リソースのRuntime
プロパティに似ています。 Sync
-
リゾルバーの同期構成について説明します。
リゾルバーが呼び出されたときに、どの競合検出戦略および解決戦略を使用するかを指定します。
タイプ: SyncConfig
必須: いいえ
AWS CloudFormation 互換性: このプロパティは、
AWS::AppSync::Resolver
リソースのSyncConfig
プロパティに直接渡されます。
例
AWS SAM 生成されたリゾルバー関数コードを使用し、フィールドを変数として保存する
以下は、この例の GraphQL スキーマです。
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 }
テンプレートのスニペットを次に示します 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
AWS SAM テンプレートでは、 CodeUri
または を指定しませんInlineCode
。デプロイ時に、 はリゾルバーの次のインラインコード AWS SAM を自動的に生成します。
export function request(ctx) { return {}; } export function response(ctx) { return ctx.prev.result; }
このデフォルトリゾルバーコードは、リクエストを最初のパイプライン関数にリダイレクトし、最後のパイプライン関数からレスポンスを受け取ります。
最初のパイプライン関数では、提供された args
フィールドを使用してリクエストオブジェクトを解析し、変数を作成することができます。作成後、関数内でこれらの変数を使用できます。以下は、preprocessPostItem
関数の例です。
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; }