AWS::ApiGateway::Deployment - AWS CloudFormation

AWS::ApiGateway::Deployment

The AWS::ApiGateway::Deployment resource deploys an 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

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

YAML

Type: AWS::ApiGateway::Deployment Properties: DeploymentCanarySettings: DeploymentCanarySettings Description: String RestApiId: String StageDescription: StageDescription StageName: String

Properties

DeploymentCanarySettings

The input configuration for a canary deployment.

Required: No

Type: DeploymentCanarySettings

Update requires: Replacement

Description

The description for the Deployment resource to create.

Required: No

Type: String

Update requires: No interruption

RestApiId

The string identifier of the associated RestApi.

Required: Yes

Type: String

Update requires: Replacement

StageDescription

The description of the Stage resource for the Deployment resource to create. To specify a stage description, you must also provide a stage name.

Required: Conditional

Type: StageDescription

Update requires: No interruption

StageName

The name of the Stage resource for the Deployment resource to create.

Required: No

Type: String

Update requires: No interruption

Return values

Ref

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

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.

DeploymentId

The ID for the deployment. For example: abc123.

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

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

YAML

Deployment: Type: 'AWS::ApiGateway::Deployment' Properties: RestApiId: !Ref MyApi Description: My deployment StageName: DummyStage

AWS::ApiGateway::Method Dependency

If you create an 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

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

YAML

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

See also