AWS::AppSync::Resolver - AWS CloudFormation

AWS::AppSync::Resolver

AWS::AppSync::Resolver リソースを使用して、スキーマのフィールドにアタッチする論理的な GraphQL リゾルバーを定義します。リゾルバーのリクエストテンプレートとレスポンステンプレートは Apache Velocity Template Language (VTL) 形式で書き込まれます。リゾルバーの詳細については、「リゾルバーのマッピングテンプレートリファレンス」を参照してください。

構文

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

JSON

{ "Type" : "AWS::AppSync::Resolver", "Properties" : { "ApiId" : String, "CachingConfig" : CachingConfig, "DataSourceName" : String, "FieldName" : String, "Kind" : String, "PipelineConfig" : PipelineConfig, "RequestMappingTemplate" : String, "RequestMappingTemplateS3Location" : String, "ResponseMappingTemplate" : String, "ResponseMappingTemplateS3Location" : String, "SyncConfig" : SyncConfig, "TypeName" : String } }

プロパティ

ApiId

このリゾルバーにアタッチする AWS AppSync GraphQL API。

必須: はい

タイプ: 文字列

Update requires: Replacement

CachingConfig

リゾルバーのキャッシュ設定。

必須: いいえ

タイプ: CachingConfig

Update requires: No interruption

DataSourceName

リゾルバーのデータソース名。

必須: いいえ

タイプ: 文字列

Update requires: No interruption

FieldName

このリゾルバーを呼び出す型の GraphQL フィールド。

必須: はい

タイプ: 文字列

Update requires: Replacement

Kind

リゾルバータイプ。

  • UNIT: ユニットリゾルバータイプ。ユニットリゾルバーはデフォルトのリゾルバーのタイプです。ユニットリゾルバーによって、1 つのデータソースに対して GraphQL クエリを実行できます。

  • PIPELINE: パイプラインリゾルバータイプ。パイプラインリゾルバーによって、シリアル方法で一連の Function を実行できます。パイプラインリゾルバーを使用すると、複数のデータソースに対して GraphQL クエリを実行できます。

必須: いいえ

タイプ: 文字列

Update requires: No interruption

PipelineConfig

パイプランリゾルバーにリンクされている関数。

必須: いいえ

タイプ: PipelineConfig

Update requires: No interruption

RequestMappingTemplate

リクエストマッピングテンプレート。

必須: いいえ

タイプ: 文字列

Update requires: No interruption

RequestMappingTemplateS3Location

Amazon S3 バケットのリクエストマッピングテンプレートの位置。CloudFormation テンプレートに埋め込まずに Amazon S3 のテンプレートファイルを使用してプロビジョニングする場合、これを使用します。

必須: いいえ

タイプ: 文字列

Update requires: No interruption

ResponseMappingTemplate

レスポンスマッピングテンプレート。

必須: いいえ

タイプ: 文字列

Update requires: No interruption

ResponseMappingTemplateS3Location

Amazon S3 バケットのレスポンスマッピングテンプレートの位置。CloudFormation テンプレートに埋め込まずに Amazon S3 のテンプレートファイルを使用してプロビジョニングする場合、これを使用します。

必須: いいえ

タイプ: 文字列

Update requires: No interruption

SyncConfig

バージョン管理されたデータソースにアタッチされたリゾルバーの SyncConfig

必須: いいえ

タイプ: SyncConfig

Update requires: No interruption

TypeName

このリゾルバーを呼び出す GraphQL タイプ。

必須: はい

タイプ: 文字列

Update requires: Replacement

戻り値

参照番号

AWS::AppSync::Resolver リソースの論理 ID を組み込み Ref 関数に渡すと、リゾルバーの ARN(例: arn:aws:appsync:us-east-1:123456789012:apis/graphqlapiid/types/typename/resolvers/resolvername)が返ります。

Ref 関数の使用方法の詳細については、「Ref」を参照してください。

Fn::GetAtt

Fn::GetAtt は、このタイプの指定された属性の値を返します。以下には、利用可能な属性とサンプル戻り値のリストが示されます。

Fn::GetAtt の使用の詳細については、「Fn::GetAtt」を参照してください。

FieldName

このリゾルバーを呼び出す型の GraphQL フィールド。

ResolverArn

リゾルバーの ARN (例: arn:aws:appsync:us-east-1:123456789012:apis/graphqlapiid/types/typename/resolvers/resolvername)。

TypeName

このリゾルバーを呼び出す GraphQL タイプ。

リゾルバーの作成例

次の例では、リゾルバーを作成して、パラメータとして GraphQL API ID を渡し、既存の GraphQL API およびデータソースと関連付けます。

YAML

Parameters: graphQlApiId: Type: String dataSourceName: Type: String fieldName: Type: String typeName: Type: String requestMappingTemplateS3LocationInput: Type: String responseMappingTemplateS3LocationInput: Type: String Resources: Resolver: Type: AWS::AppSync::Resolver Properties: ApiId: Ref: graphQlApiId TypeName: Ref: typeName FieldName: Ref: fieldName DataSourceName: Ref: dataSourceName RequestMappingTemplateS3Location: Ref: requestMappingTemplateS3LocationInput ResponseMappingTemplateS3Location: Ref: responseMappingTemplateS3LocationInput

JSON

{ "Parameters": { "graphQlApiId": { "Type": "String" }, "dataSourceName": { "Type": "String" }, "fieldName": { "Type": "String" }, "typeName": { "Type": "String" }, "requestMappingTemplateS3LocationInput": { "Type": "String" }, "responseMappingTemplateS3LocationInput": { "Type": "String" } }, "Resources": { "Resolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { "Ref": "graphQlApiId" }, "TypeName": { "Ref": "typeName" }, "FieldName": { "Ref": "fieldName" }, "DataSourceName": { "Ref": "dataSourceName" }, "RequestMappingTemplateS3Location": { "Ref": "requestMappingTemplateS3LocationInput" }, "ResponseMappingTemplateS3Location": { "Ref": "responseMappingTemplateS3LocationInput" } } } } }

以下の資料も参照してください。

  • AWS AppSync API リファレンスCreateResolver オペレーション。