This is the new AWS CloudFormation Template Reference Guide. Please update your bookmarks and links. For help getting started with CloudFormation, see the AWS CloudFormation User Guide.
AWS::ApiGatewayV2::RoutingRule
Represents a routing rule. When the incoming request to a domain name matches the conditions for a rule, API Gateway invokes a stage of a target API. Supported only for REST APIs.
Syntax
To declare this entity in your AWS CloudFormation template, use the following syntax:
JSON
{ "Type" : "AWS::ApiGatewayV2::RoutingRule", "Properties" : { "Actions" :[ Action, ... ], "Conditions" :[ Condition, ... ], "DomainNameArn" :String, "Priority" :Integer} }
YAML
Type: AWS::ApiGatewayV2::RoutingRule Properties: Actions:- ActionConditions:- ConditionDomainNameArn:StringPriority:Integer
Properties
Actions-
The resulting action based on matching a routing rules condition. Only InvokeApi is supported.
Required: Yes
Type: Array of Action
Update requires: No interruption
Conditions-
The conditions of the routing rule.
Required: Yes
Type: Array of Condition
Update requires: No interruption
DomainNameArn-
The ARN of the domain name.
Required: Yes
Type: String
Update requires: Replacement
Priority-
The order in which API Gateway evaluates a rule. Priority is evaluated from the lowest value to the highest value. Rules can't have the same priority. Priority values 1-1,000,000 are supported.
Required: Yes
Type: Integer
Update requires: No interruption
Return values
Ref
When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns the ID of the routing rule, such as a1b2c3e.
For more information about using the Ref function, see Ref.
Fn::GetAtt
The Fn::GetAtt intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.
For more information about using the Fn::GetAtt intrinsic function, see Fn::GetAtt.
RoutingRuleArn-
Represents an Amazon Resource Name (ARN).
RoutingRuleId-
The identifier.
Examples
Routing rule creation
The following example creates a RoutingRule resource called MyRoutingRule that routes any incoming requests that have the header x-version:beta and the path users to the prod stage of REST API abcd123.
JSON
{ "Resources": { "MyRoutingRule": { "Type": "AWS::ApiGatewayV2::RoutingRule", "Properties": { "DomainNameArn": "arn:aws:apigateway:us-west-2::/domainnames/example.com", "Priority": 100, "Conditions": [ { "MatchHeaders": { "AnyOf": [ { "Header": "x-version", "ValueGlob": "beta" } ] } }, { "MatchBasePaths": { "AnyOf": [ "users" ] } } ], "Actions": [ { "InvokeApi": { "ApiId": "abcd123", "Stage": "prod" } } ] } } } }
YAML
Resources: MyRoutingRule: Type: 'AWS::ApiGatewayV2::RoutingRule' Properties: DomainNameArn: arn:aws:apigateway:us-west-2::/domainnames/example.com Priority: 100 Conditions: - MatchHeaders: AnyOf: - Header: "x-version" ValueGlob: "beta" - MatchBasePaths: AnyOf: - "users" Actions: - InvokeApi: ApiId: "abcd123" Stage: "prod"