AWS::AppSync::ApiCache - AWS CloudFormation (original) (raw)
The AWS::AppSync::ApiCache
resource represents the input of a CreateApiCache
operation.
Syntax
To declare this entity in your AWS 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 from the same user are cached. Individual resolvers are automatically cached. All API calls will try to return responses from the cache.
- PER_RESOLVER_CACHING: Individual resolvers that you specify are cached.
- OPERATION_LEVEL_CACHING: Full requests are cached together and returned without executing resolvers.
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
orDISABLED
.
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
}
}
}
}