@studion/infra-code-blocks
Version:
Studion common infra components
44 lines (43 loc) • 1.66 kB
TypeScript
import * as pulumi from '@pulumi/pulumi';
import * as aws from '@pulumi/aws';
import { AcmCertificate } from './acm-certificate';
import { EcsService, EcsServiceArgs } from './ecs-service';
export type NuxtSSRArgs = Pick<EcsServiceArgs, 'image' | 'port' | 'clusterId' | 'clusterName' | 'vpcId' | 'vpcCidrBlock' | 'desiredCount' | 'autoscaling' | 'size' | 'environment' | 'secrets' | 'tags'> & {
publicSubnetIds: pulumi.Input<pulumi.Input<string>[]>;
/**
* The domain which will be used to access the service.
* The domain or subdomain must belong to the provided hostedZone.
*/
domain?: pulumi.Input<string>;
/**
* The ID of the hosted zone.
*/
hostedZoneId?: pulumi.Input<string>;
/**
* Path for the health check request. Defaults to "/".
*/
healthCheckPath?: pulumi.Input<string>;
};
export declare class NuxtSSR extends pulumi.ComponentResource {
name: string;
service: EcsService;
certificate?: AcmCertificate;
lbSecurityGroup: aws.ec2.SecurityGroup;
serviceSecurityGroup: aws.ec2.SecurityGroup;
customCFHeader: {
name: pulumi.Output<string>;
value: pulumi.Output<string>;
};
lb: aws.lb.LoadBalancer;
lbTargetGroup: aws.lb.TargetGroup;
lbHttpListener: aws.lb.Listener;
cloudfront: aws.cloudfront.Distribution;
constructor(name: string, args: NuxtSSRArgs, opts?: pulumi.ComponentResourceOptions);
private createTlsCertificate;
private createCustomCFHeader;
private createLoadBalancer;
private createSecurityGroup;
private createEcsService;
private createCloudfrontDistribution;
private createDnsRecord;
}