terraform/learn-cdktf-typescript/main.ts (37 lines of code) (raw):
import { Construct } from 'constructs'
import {App, TerraformStack, RemoteBackend, TerraformOutput} from 'cdktf'
import {AwsProvider, Instance, Subnet, Vpc} from './.gen/providers/aws'
export class MyStack extends TerraformStack {
constructor(scope: Construct, id: string) {
super(scope, id)
new AwsProvider(this, 'aws', {
region: 'ap-northeast-1',
})
const vpc = new Vpc(this, 'vpc', {
cidrBlock: "10.0.0.0/16"
})
const subnet = new Subnet(this, 'private-subnet', {
cidrBlock: "10.0.0.0/24",
vpcId: vpc.id
})
const instance = new Instance(this, 'compute', {
instanceType: 't2.micro',
ami: "ami-02892a4ea9bfa2192", // Amazon Linux 2 AMI (HVM), SSD Volume Type
associatePublicIpAddress: false,
subnetId: subnet.id
})
new TerraformOutput(this, 'public_ip', {
value: instance.id,
})
}
}
const app = new App()
const stack = new MyStack(app, 'typescript-aws')
new RemoteBackend(stack, {
hostname: "app.terraform.io",
organization: "korosuke613",
workspaces: {
name: "learn-cdktf-typescript",
},
});
app.synth()