CreateApiCache - AWS AppSync

CreateApiCache

Creates a cache for the GraphQL API.

Request Syntax

POST /v1/apis/apiId/ApiCaches HTTP/1.1 Content-type: application/json { "apiCachingBehavior": "string", "atRestEncryptionEnabled": boolean, "healthMetricsConfig": "string", "transitEncryptionEnabled": boolean, "ttl": number, "type": "string" }

URI Request Parameters

The request uses the following URI parameters.

apiId

The GraphQL API ID.

Required: Yes

Request Body

The request accepts the following data in JSON format.

apiCachingBehavior

Caching behavior.

  • FULL_REQUEST_CACHING: All requests are fully cached.

  • PER_RESOLVER_CACHING: Individual resolvers that you specify are cached.

Type: String

Valid Values: FULL_REQUEST_CACHING | PER_RESOLVER_CACHING

Required: Yes

atRestEncryptionEnabled

At-rest encryption flag for cache. You cannot update this setting after creation.

Type: Boolean

Required: No

healthMetricsConfig

Controls how cache health metrics will be emitted to CloudWatch. Cache health metrics include:

  • NetworkBandwidthOutAllowanceExceeded: The network packets dropped because the throughput exceeded the aggregated bandwidth limit. This is useful for diagnosing bottlenecks in a cache configuration.

  • EngineCPUUtilization: The CPU utilization (percentage) allocated to the Redis process. This is useful for diagnosing bottlenecks in a cache configuration.

Metrics will be recorded by API ID. You can set the value to ENABLED or DISABLED.

Type: String

Valid Values: ENABLED | DISABLED

Required: No

transitEncryptionEnabled

Transit encryption flag when connecting to cache. You cannot update this setting after creation.

Type: Boolean

Required: No

ttl

TTL in seconds for cache entries.

Valid values are 1–3,600 seconds.

Type: Long

Required: Yes

type

The cache instance type. Valid values are

  • SMALL

  • MEDIUM

  • LARGE

  • XLARGE

  • LARGE_2X

  • LARGE_4X

  • LARGE_8X (not available in all regions)

  • LARGE_12X

Historically, instance types were identified by an EC2-style value. As of July 2020, this is deprecated, and the generic identifiers above should be used.

The following legacy instance types are available, but their use is discouraged:

  • T2_SMALL: A t2.small instance type.

  • T2_MEDIUM: A t2.medium instance type.

  • R4_LARGE: A r4.large instance type.

  • R4_XLARGE: A r4.xlarge instance type.

  • R4_2XLARGE: A r4.2xlarge instance type.

  • R4_4XLARGE: A r4.4xlarge instance type.

  • R4_8XLARGE: A r4.8xlarge instance type.

Type: String

Valid Values: T2_SMALL | T2_MEDIUM | R4_LARGE | R4_XLARGE | R4_2XLARGE | R4_4XLARGE | R4_8XLARGE | SMALL | MEDIUM | LARGE | XLARGE | LARGE_2X | LARGE_4X | LARGE_8X | LARGE_12X

Required: Yes

Response Syntax

HTTP/1.1 200 Content-type: application/json { "apiCache": { "apiCachingBehavior": "string", "atRestEncryptionEnabled": boolean, "healthMetricsConfig": "string", "status": "string", "transitEncryptionEnabled": boolean, "ttl": number, "type": "string" } }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

apiCache

The ApiCache object.

Type: ApiCache object

Errors

For information about the errors that are common to all actions, see Common Errors.

BadRequestException

The request is not well formed. For example, a value is invalid or a required field is missing. Check the field values, and then try again.

HTTP Status Code: 400

ConcurrentModificationException

Another modification is in progress at this time and it must complete before you can make your change.

HTTP Status Code: 409

InternalFailureException

An internal AWS AppSync error occurred. Try your request again.

HTTP Status Code: 500

NotFoundException

The resource specified in the request was not found. Check the resource, and then try again.

HTTP Status Code: 404

UnauthorizedException

You aren't authorized to perform this operation.

HTTP Status Code: 401

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: