Class Deployment
A Deployment of a REST API.
Inherited Members
Namespace: Amazon.CDK.AWS.APIGateway
Assembly: Amazon.CDK.Lib.dll
Syntax (csharp)
public class Deployment : Resource, IResource
Syntax (vb)
Public Class Deployment
Inherits Resource
Implements IResource
Remarks
An immutable representation of a RestApi resource that can be called by users using Stages. A deployment must be associated with a Stage for it to be callable over the Internet.
Normally, you don't need to define deployments manually. The RestApi
construct manages a Deployment resource that represents the latest model. It
can be accessed through restApi.latestDeployment
(unless deploy: false
is
set when defining the RestApi
).
If you manually define this resource, you will need to know that since deployments are immutable, as long as the resource's logical ID doesn't change, the deployment will represent the snapshot in time in which the resource was created. This means that if you modify the RestApi model (i.e. add methods or resources), these changes will not be reflected unless a new deployment resource is created.
To achieve this behavior, the method addToLogicalId(data)
can be used to
augment the logical ID generated for the deployment resource such that it
will include arbitrary data. This is done automatically for the
restApi.latestDeployment
deployment.
Furthermore, since a deployment does not reference any of the REST API
resources and methods, CloudFormation will likely provision it before these
resources are created, which means that it will represent a "half-baked"
model. Use the node.addDependency(dep)
method to circumvent that. This is done
automatically for the restApi.latestDeployment
deployment.
ExampleMetadata: infused
Examples
// production stage
var prodLogGroup = new LogGroup(this, "PrdLogs");
var api = new RestApi(this, "books", new RestApiProps {
DeployOptions = new StageOptions {
AccessLogDestination = new LogGroupLogDestination(prodLogGroup),
AccessLogFormat = AccessLogFormat.JsonWithStandardFields()
}
});
var deployment = new Deployment(this, "Deployment", new DeploymentProps { Api = api });
// development stage
var devLogGroup = new LogGroup(this, "DevLogs");
new Stage(this, "dev", new StageProps {
Deployment = deployment,
AccessLogDestination = new LogGroupLogDestination(devLogGroup),
AccessLogFormat = AccessLogFormat.JsonWithStandardFields(new JsonWithStandardFieldProps {
Caller = false,
HttpMethod = true,
Ip = true,
Protocol = true,
RequestTime = true,
ResourcePath = true,
ResponseLength = true,
Status = true,
User = true
})
});
Synopsis
Constructors
Deployment(ByRefValue) | Used by jsii to construct an instance of this class from a Javascript-owned object reference |
Deployment(DeputyBase.DeputyProps) | Used by jsii to construct an instance of this class from DeputyProps |
Deployment(Construct, String, IDeploymentProps) |
Properties
Api | |
DeploymentId | |
StageName | The stage of the API gateway deployment. |
Methods
AddToLogicalId(Object) | Adds a component to the hash that determines this Deployment resource's logical ID. |
Constructors
Deployment(ByRefValue)
Used by jsii to construct an instance of this class from a Javascript-owned object reference
protected Deployment(ByRefValue reference)
Parameters
- reference Amazon.JSII.Runtime.Deputy.ByRefValue
The Javascript-owned object reference
Deployment(DeputyBase.DeputyProps)
Used by jsii to construct an instance of this class from DeputyProps
protected Deployment(DeputyBase.DeputyProps props)
Parameters
- props Amazon.JSII.Runtime.Deputy.DeputyBase.DeputyProps
The deputy props
Deployment(Construct, String, IDeploymentProps)
public Deployment(Construct scope, string id, IDeploymentProps props)
Parameters
- scope Constructs.Construct
- id System.String
- props IDeploymentProps
Properties
Api
DeploymentId
public virtual string DeploymentId { get; }
Property Value
System.String
Remarks
Attribute: true
StageName
The stage of the API gateway deployment.
public virtual string StageName { get; }
Property Value
System.String
Methods
AddToLogicalId(Object)
Adds a component to the hash that determines this Deployment resource's logical ID.
public virtual void AddToLogicalId(object data)
Parameters
- data System.Object
Remarks
This should be called by constructs of the API Gateway model that want to invalidate the deployment when their settings change. The component will be resolve()ed during synthesis so tokens are welcome.