resolvers
Creates, updates, deletes or gets a resolver
resource or lists resolvers
in a region
Overview
Name | resolvers |
Type | Resource |
Description | The AWS::AppSync::Resolver resource defines the logical GraphQL resolver that you attach to fields in a schema. Request and response templates for resolvers are written in Apache Velocity Template Language (VTL) format. For more information about resolvers, see [Resolver Mapping Template Reference](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference.html).When you submit an update, CFNLong updates resources based on differences between what you submit and the stack's current template. To cause this resource to be updated you must change a property value for this resource in the CFNshort template. Changing the S3 file content without changing a property value will not result in an update operation. See [Update Behaviors of Stack Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html) in the *User Guide*. |
Id | aws.appsync.resolvers |
Fields
Name | Datatype | Description |
---|---|---|
api_id | string | The APSYlong GraphQL API to which you want to attach this resolver. |
caching_config | object | The caching configuration for the resolver. |
code | string | The resolver code that contains the request and response functions. When code is used, the runtime is required. The runtime value must be APPSYNC_JS . |
code_s3_location | string | The Amazon S3 endpoint. |
data_source_name | string | The resolver data source name. |
field_name | string | The GraphQL field on a type that invokes the resolver. |
kind | string | The resolver type. + *UNIT*: A UNIT resolver type. A UNIT resolver is the default resolver type. You can use a UNIT resolver to run a GraphQL query against a single data source. + *PIPELINE*: A PIPELINE resolver type. You can use a PIPELINE resolver to invoke a series of Function objects in a serial manner. You can use a pipeline resolver to run a GraphQL query against multiple data sources. |
max_batch_size | integer | The maximum number of resolver request inputs that will be sent to a single LAMlong function in a BatchInvoke operation. |
pipeline_config | object | Functions linked with the pipeline resolver. |
request_mapping_template | string | The request mapping template. Request mapping templates are optional when using a Lambda data source. For all other data sources, a request mapping template is required. |
request_mapping_template_s3_location | string | The location of a request mapping template in an S3 bucket. Use this if you want to provision with a template file in S3 rather than embedding it in your CFNshort template. |
resolver_arn | string | |
response_mapping_template | string | The response mapping template. |
response_mapping_template_s3_location | string | The location of a response mapping template in an S3 bucket. Use this if you want to provision with a template file in S3 rather than embedding it in your CFNshort template. |
runtime | object | Describes a runtime used by an APSYlong resolver or APSYlong function. Specifies the name and version of the runtime to use. Note that if a runtime is specified, code must also be specified. |
sync_config | object | The SyncConfig for a resolver attached to a versioned data source. |
type_name | string | The GraphQL type that invokes this resolver. |
metrics_config | string | Enables or disables enhanced resolver metrics for specified resolvers. Note that MetricsConfig won't be used unless the resolverLevelMetricsBehavior value is set to PER_RESOLVER_METRICS . If the resolverLevelMetricsBehavior is set to FULL_REQUEST_RESOLVER_METRICS instead, MetricsConfig will be ignored. However, you can still set its value. |
region | string | AWS region. |
Methods
Name | Accessible by | Required Params |
---|---|---|
create_resource | INSERT | TypeName, ApiId, FieldName, region |
delete_resource | DELETE | data__Identifier, region |
update_resource | UPDATE | data__Identifier, data__PatchDocument, region |
list_resources | SELECT | region |
get_resource | SELECT | data__Identifier, region |
SELECT
examples
Gets all resolvers
in a region.
SELECT
region,
api_id,
caching_config,
code,
code_s3_location,
data_source_name,
field_name,
kind,
max_batch_size,
pipeline_config,
request_mapping_template,
request_mapping_template_s3_location,
resolver_arn,
response_mapping_template,
response_mapping_template_s3_location,
runtime,
sync_config,
type_name,
metrics_config
FROM aws.appsync.resolvers
WHERE region = 'us-east-1';
Gets all properties from an individual resolver
.
SELECT
region,
api_id,
caching_config,
code,
code_s3_location,
data_source_name,
field_name,
kind,
max_batch_size,
pipeline_config,
request_mapping_template,
request_mapping_template_s3_location,
resolver_arn,
response_mapping_template,
response_mapping_template_s3_location,
runtime,
sync_config,
type_name,
metrics_config
FROM aws.appsync.resolvers
WHERE region = 'us-east-1' AND data__Identifier = '<ResolverArn>';
INSERT
example
Use the following StackQL query and manifest file to create a new resolver
resource, using stack-deploy
.
- Required Properties
- All Properties
- Manifest
/*+ create */
INSERT INTO aws.appsync.resolvers (
ApiId,
FieldName,
TypeName,
region
)
SELECT
'{{ ApiId }}',
'{{ FieldName }}',
'{{ TypeName }}',
'{{ region }}';
/*+ create */
INSERT INTO aws.appsync.resolvers (
ApiId,
CachingConfig,
Code,
CodeS3Location,
DataSourceName,
FieldName,
Kind,
MaxBatchSize,
PipelineConfig,
RequestMappingTemplate,
RequestMappingTemplateS3Location,
ResponseMappingTemplate,
ResponseMappingTemplateS3Location,
Runtime,
SyncConfig,
TypeName,
MetricsConfig,
region
)
SELECT
'{{ ApiId }}',
'{{ CachingConfig }}',
'{{ Code }}',
'{{ CodeS3Location }}',
'{{ DataSourceName }}',
'{{ FieldName }}',
'{{ Kind }}',
'{{ MaxBatchSize }}',
'{{ PipelineConfig }}',
'{{ RequestMappingTemplate }}',
'{{ RequestMappingTemplateS3Location }}',
'{{ ResponseMappingTemplate }}',
'{{ ResponseMappingTemplateS3Location }}',
'{{ Runtime }}',
'{{ SyncConfig }}',
'{{ TypeName }}',
'{{ MetricsConfig }}',
'{{ region }}';
version: 1
name: stack name
description: stack description
providers:
- aws
globals:
- name: region
value: '{{ vars.AWS_REGION }}'
resources:
- name: resolver
props:
- name: ApiId
value: '{{ ApiId }}'
- name: CachingConfig
value:
CachingKeys:
- '{{ CachingKeys[0] }}'
Ttl: null
- name: Code
value: '{{ Code }}'
- name: CodeS3Location
value: '{{ CodeS3Location }}'
- name: DataSourceName
value: '{{ DataSourceName }}'
- name: FieldName
value: '{{ FieldName }}'
- name: Kind
value: '{{ Kind }}'
- name: MaxBatchSize
value: '{{ MaxBatchSize }}'
- name: PipelineConfig
value:
Functions:
- '{{ Functions[0] }}'
- name: RequestMappingTemplate
value: '{{ RequestMappingTemplate }}'
- name: RequestMappingTemplateS3Location
value: '{{ RequestMappingTemplateS3Location }}'
- name: ResponseMappingTemplate
value: '{{ ResponseMappingTemplate }}'
- name: ResponseMappingTemplateS3Location
value: '{{ ResponseMappingTemplateS3Location }}'
- name: Runtime
value:
RuntimeVersion: '{{ RuntimeVersion }}'
Name: '{{ Name }}'
- name: SyncConfig
value:
ConflictHandler: '{{ ConflictHandler }}'
ConflictDetection: '{{ ConflictDetection }}'
LambdaConflictHandlerConfig:
LambdaConflictHandlerArn: '{{ LambdaConflictHandlerArn }}'
- name: TypeName
value: '{{ TypeName }}'
- name: MetricsConfig
value: '{{ MetricsConfig }}'
DELETE
example
/*+ delete */
DELETE FROM aws.appsync.resolvers
WHERE data__Identifier = '<ResolverArn>'
AND region = 'us-east-1';
Permissions
To operate on the resolvers
resource, the following permissions are required:
Create
s3:GetObject,
appsync:CreateResolver,
appsync:GetResolver
Read
appsync:GetResolver
Update
s3:GetObject,
appsync:UpdateResolver
Delete
appsync:DeleteResolver
List
appsync:ListResolvers