AWS::ResilienceHub::App
Creates an Amazon Resilience Hub application. An Amazon Resilience Hub application is a collection of Amazon resources structured to prevent and recover Amazon application disruptions. To describe a Amazon Resilience Hub application, you provide an application name, resources from one or more Amazon CloudFormation stacks, Amazon Resource Groups, Terraform state files, AppRegistry applications, and an appropriate resiliency policy. In addition, you can also add resources that are located on Amazon Elastic Kubernetes Service (Amazon EKS) clusters as optional resources. For more information about the number of resources supported per application, see Service quotas.
After you create an Amazon Resilience Hub application, you publish it so that you can run a resiliency assessment on it. You can then use recommendations from the assessment to improve resiliency by running another assessment, comparing results, and then iterating the process until you achieve your goals for recovery time objective (RTO) and recovery point objective (RPO).
Syntax
To declare this entity in your Amazon CloudFormation template, use the following syntax:
JSON
{ "Type" : "AWS::ResilienceHub::App", "Properties" : { "AppAssessmentSchedule" :String, "AppTemplateBody" :String, "Description" :String, "Name" :String, "ResiliencyPolicyArn" :String, "ResourceMappings" :[ ResourceMapping, ... ], "Tags" :{} }Key:Value, ...}
YAML
Type: AWS::ResilienceHub::App Properties: AppAssessmentSchedule:StringAppTemplateBody:StringDescription:StringName:StringResiliencyPolicyArn:StringResourceMappings:- ResourceMappingTags:Key:Value
Properties
AppAssessmentSchedule-
Assessment execution schedule with 'Daily' or 'Disabled' values.
Required: No
Type: String
Update requires: No interruption
AppTemplateBody-
A JSON string that provides information about your application structure. To learn more about the
appTemplateBodytemplate, see the sample template provided in the Examples section.The
appTemplateBodyJSON string has the following structure:-
resourcesThe list of logical resources that needs to be included in the Amazon Resilience Hub application.
Type: Array
Note
Don't add the resources that you want to exclude.
Each
resourcesarray item includes the following fields:-
logicalResourceIdThe logical identifier of the resource.
Type: Object
Each
logicalResourceIdobject includes the following fields:-
identifierThe identifier of the resource.
Type: String
-
logicalStackNameThe name of the Amazon CloudFormation stack this resource belongs to.
Type: String
-
resourceGroupNameThe name of the resource group this resource belongs to.
Type: String
-
terraformSourceNameThe name of the Terraform S3 state file this resource belongs to.
Type: String
-
eksSourceNameThe name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to.
Note
This parameter accepts values in "eks-cluster/namespace" format.
Type: String
-
-
typeThe type of resource.
Type: string
-
nameThe name of the resource.
Type: String
-
additionalInfoAdditional configuration parameters for an Amazon Resilience Hub application. If you want to implement
additionalInfothrough the Amazon Resilience Hub console rather than using an API call, see Configure the application configuration parameters.Note
Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account.
Key:
"failover-regions"Value:
"[{"region":"<REGION>", "accounts":[{"id":"<ACCOUNT_ID>"}]}]"
-
-
appComponentsThe list of Application Components (AppComponent) that this resource belongs to. If an AppComponent is not part of the Amazon Resilience Hub application, it will be added.
Type: Array
Each
appComponentsarray item includes the following fields:-
nameThe name of the AppComponent.
Type: String
-
typeThe type of AppComponent. For more information about the types of AppComponent, see Grouping resources in an AppComponent.
Type: String
-
resourceNamesThe list of included resources that are assigned to the AppComponent.
Type: Array of strings
-
additionalInfoAdditional configuration parameters for an Amazon Resilience Hub application. If you want to implement
additionalInfothrough the Amazon Resilience Hub console rather than using an API call, see Configure the application configuration parameters.Note
Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account.
Key:
"failover-regions"Value:
"[{"region":"<REGION>", "accounts":[{"id":"<ACCOUNT_ID>"}]}]"
-
-
excludedResourcesThe list of logical resource identifiers to be excluded from the application.
Type: Array
Note
Don't add the resources that you want to include.
Each
excludedResourcesarray item includes the following fields:-
logicalResourceIdsThe logical identifier of the resource.
Type: Object
Note
You can configure only one of the following fields:
-
logicalStackName -
resourceGroupName -
terraformSourceName -
eksSourceName
Each
logicalResourceIdsobject includes the following fields:-
identifierThe identifier of the resource.
Type: String
-
logicalStackNameThe name of the Amazon CloudFormation stack this resource belongs to.
Type: String
-
resourceGroupNameThe name of the resource group this resource belongs to.
Type: String
-
terraformSourceNameThe name of the Terraform S3 state file this resource belongs to.
Type: String
-
eksSourceNameThe name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to.
Note
This parameter accepts values in "eks-cluster/namespace" format.
Type: String
-
-
-
versionThe Amazon Resilience Hub application version.
-
additionalInfoAdditional configuration parameters for an Amazon Resilience Hub application. If you want to implement
additionalInfothrough the Amazon Resilience Hub console rather than using an API call, see Configure the application configuration parameters.Note
Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account.
Key:
"failover-regions"Value:
"[{"region":"<REGION>", "accounts":[{"id":"<ACCOUNT_ID>"}]}]"
Required: Yes
Type: String
Update requires: No interruption
-
Description-
The optional description for an app.
Required: No
Type: String
Update requires: No interruption
Name-
The name for the application.
Required: Yes
Type: String
Update requires: Replacement
ResiliencyPolicyArn-
The Amazon Resource Name (ARN) of the resiliency policy.
Required: No
Type: String
Update requires: No interruption
ResourceMappings-
An array of ResourceMapping objects.
Required: Yes
Type: List of ResourceMapping
Update requires: No interruption
Tags-
The tags assigned to the resource. A tag is a label that you assign to an Amazon resource. Each tag consists of a key/value pair.
Required: No
Type: Map of String
Update requires: No interruption
Return values
Ref
The returned Amazon Resource Name (ARN) for the app.
Fn::GetAtt
The Amazon Resource Name (ARN) for the app.