cdk-nextjs-standalone
Version:
Deploy a NextJS app to AWS using CDK and OpenNext.
89 lines (88 loc) • 3.34 kB
TypeScript
import type { RemovalPolicy } from 'aws-cdk-lib';
/**
* OptionalCustomResourceProps
*/
export interface OptionalCustomResourceProps {
/**
* For custom resources, you can specify AWS::CloudFormation::CustomResource (the default) as the resource type, or you can specify your own resource type name.
* For example, you can use "Custom::MyCustomResourceTypeName".
*
* Custom resource type names must begin with "Custom::" and can include
* alphanumeric characters and the following characters: _@-. You can specify
* a custom resource type name up to a maximum length of 60 characters. You
* cannot change the type during an update.
*
* Using your own resource type names helps you quickly differentiate the
* types of custom resources in your stack. For example, if you had two custom
* resources that conduct two different ping tests, you could name their type
* as Custom::PingTester to make them easily identifiable as ping testers
* (instead of using AWS::CloudFormation::CustomResource).
* @default - AWS::CloudFormation::CustomResource
* @stability stable
*/
readonly resourceType?: string;
/**
* The policy to apply when this resource is removed from the application.
* @default cdk.RemovalPolicy.Destroy
* @stability stable
*/
readonly removalPolicy?: RemovalPolicy;
/**
* Properties to pass to the Lambda.
* @default - No properties.
* @stability stable
*/
readonly properties?: Record<string, any>;
/**
* Convert all property keys to pascal case.
* @default false
* @stability stable
*/
readonly pascalCaseProperties?: boolean;
/**
* The ARN of the provider which implements this custom resource type.
* You can implement a provider by listening to raw AWS CloudFormation events
* and specify the ARN of an SNS topic (`topic.topicArn`) or the ARN of an AWS
* Lambda function (`lambda.functionArn`) or use the CDK's custom [resource
* provider framework] which makes it easier to implement robust providers.
*
* [resource provider framework]:
* https://docs.aws.amazon.com/cdk/api/latest/docs/custom-resources-readme.html
*
* Provider framework:
*
* ```ts
* // use the provider framework from aws-cdk/custom-resources:
* const provider = new customresources.Provider(this, 'ResourceProvider', {
* onEventHandler,
* isCompleteHandler, // optional
* });
*
* new CustomResource(this, 'MyResource', {
* serviceToken: provider.serviceToken,
* });
* ```
*
* AWS Lambda function (not recommended to use AWS Lambda Functions directly,
* see the module README):
*
* ```ts
* // invoke an AWS Lambda function when a lifecycle event occurs:
* new CustomResource(this, 'MyResource', {
* serviceToken: myFunction.functionArn,
* });
* ```
*
* SNS topic (not recommended to use AWS Lambda Functions directly, see the
* module README):
*
* ```ts
* // publish lifecycle events to an SNS topic:
* new CustomResource(this, 'MyResource', {
* serviceToken: myTopic.topicArn,
* });
* ```
* @stability stable
*/
readonly serviceToken?: string;
}