AWS::AppSync::ApiCache - Amazon CloudFormation
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

AWS::AppSync::ApiCache

The AWS::AppSync::ApiCache resource represents the input of a CreateApiCache operation.

Syntax

To declare this entity in your Amazon CloudFormation template, use the following syntax:

JSON

{ "Type" : "AWS::AppSync::ApiCache", "Properties" : { "ApiCachingBehavior" : String, "ApiId" : String, "AtRestEncryptionEnabled" : Boolean, "HealthMetricsConfig" : String, "TransitEncryptionEnabled" : Boolean, "Ttl" : Number, "Type" : String } }

YAML

Type: AWS::AppSync::ApiCache Properties: ApiCachingBehavior: String ApiId: String AtRestEncryptionEnabled: Boolean HealthMetricsConfig: String TransitEncryptionEnabled: Boolean Ttl: Number Type: String

Properties

ApiCachingBehavior

Caching behavior.

  • FULL_REQUEST_CACHING: All requests are fully cached.

  • PER_RESOLVER_CACHING: Individual resolvers that you specify are cached.

Required: Yes

Type: String

Update requires: No interruption

ApiId

The GraphQL API ID.

Required: Yes

Type: String

Update requires: Replacement

AtRestEncryptionEnabled

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

Required: No

Type: Boolean

Update requires: No interruption

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.

Required: No

Type: String

Update requires: No interruption

TransitEncryptionEnabled

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

Required: No

Type: Boolean

Update requires: No interruption

Ttl

TTL in seconds for cache entries.

Valid values are 1–3,600 seconds.

Required: Yes

Type: Number

Update requires: No interruption

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.

Required: Yes

Type: String

Update requires: No interruption

Examples

ApiCache Creation Example

The following example creates an ApiCache for your GraphQL API.

YAML

Parameters: graphQlApiId: Type: String Resources: ApiCache: Type: AWS::AppSync::ApiCache Properties: ApiId: !Ref graphQlApiId Type: SMALL ApiCachingBehavior: FULL_REQUEST_CACHING Ttl: 1200 TransitEncryptionEnabled: true AtRestEncryptionEnabled: true

JSON

{ "Parameters": { "graphQlApiId": { "Type": "String" } }, "Resources": { "ApiCache": { "Type": "AWS::AppSync::ApiCache", "Properties": { "ApiId": { "Ref": "graphQlApiId" }, "Type": "SMALL", "ApiCachingBehavior": "FULL_REQUEST_CACHING", "Ttl": 1200, "TransitEncryptionEnabled": true, "AtRestEncryptionEnabled": true } } } }