Menu
AWS CloudFormation
User Guide (API Version 2010-05-15)

AWS::ApiGateway::Deployment

The AWS::ApiGateway::Deployment resource deploys an Amazon API Gateway (API Gateway) RestApi resource to a stage so that clients can call the API over the Internet. The stage acts as an environment.

Syntax

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

JSON

Copy
{ "Type" : "AWS::ApiGateway::Deployment", "Properties" : { "Description" : String, "RestApiId" : String, "StageDescription" : StageDescription, "StageName" : String } }

YAML

Copy
Type: "AWS::ApiGateway::Deployment" Properties: Description: String RestApiId: String StageDescription: StageDescription StageName: String

Properties

Description

A description of the purpose of the API Gateway deployment.

Required: No

Type: String

Update requires: No interruption

RestApiId

The ID of the RestApi resource to deploy.

Required: Yes

Type: String

Update requires: Replacement

StageDescription

Configures the stage that API Gateway creates with this deployment.

Required: No

Type: Amazon API Gateway Deployment StageDescription

Update requires: No interruption

StageName

A name for the stage that API Gateway creates with this deployment. Use only alphanumeric characters.

Required: No

Type: String

Update requires: No interruption

Return Value

Ref

When the logical ID of this resource is provided to the Ref intrinsic function, Ref returns the deployment ID, such as 123abc.

For more information about using the Ref function, see Ref.

Examples

The following sections provide examples for declaring API Gateway deployments.

Deployment with an Empty Embedded Stage

The following example deploys the MyApi API to a stage named DummyStage.

JSON

Copy
"Deployment": { "Type": "AWS::ApiGateway::Deployment", "Properties": { "RestApiId": { "Ref": "MyApi" }, "Description": "My deployment", "StageName": "DummyStage" } }

YAML

Copy
Deployment: Type: "AWS::ApiGateway::Deployment" Properties: RestApiId: Ref: "MyApi" Description: "My deployment" StageName: "DummyStage"

AWS::ApiGateway::Method Dependency

If you create a AWS::ApiGateway::RestApi resource and its methods (using AWS::ApiGateway::Method) in the same template as your deployment, the deployment must depend on the RestApi's methods. To create a dependency, add a DependsOn attribute to the deployment. If you don't, AWS CloudFormation creates the deployment right after it creates the RestApi resource that doesn't contain any methods, and AWS CloudFormation encounters the following error: The REST API doesn't contain any methods.

JSON

Copy
"Deployment": { "DependsOn": "MyMethod", "Type": "AWS::ApiGateway::Deployment", "Properties": { "RestApiId": { "Ref": "MyApi" }, "Description": "My deployment", "StageName": "DummyStage" } }

YAML

Copy
Deployment: DependsOn: "MyMethod" Type: "AWS::ApiGateway::Deployment" Properties: RestApiId: Ref: "MyApi" Description: "My deployment" StageName: "DummyStage"