LoginSignup
36
24

More than 3 years have passed since last update.

CDK for TerraformをTypeScriptで書いて使ってみた

Last updated at Posted at 2020-07-17

CDK for TerraformをつかってTypeScriptでインフラ定義ができるようになったのでやってみた。

CDK for Terraform: Enabling Python & TypeScript Support

cdktf-cliのインストール

sudo npm install -g cdktf-cli

(macOSのひとはsudoいらないです)

initする

cdktf init --template=typescript

main.tfを書く

import { Construct } from 'constructs';
import { App, TerraformStack, Token } from 'cdktf';

import {AwsProvider} from "./.gen/providers/aws";

import {Vpc} from "./.gen/providers/aws/vpc";
import {Subnet} from "./.gen/providers/aws/subnet";

class MyStack extends TerraformStack {
  constructor(scope: Construct, name: string) {
    super(scope, name);

    new AwsProvider(this, 'aws', {
      region: 'us-east-1'
    });

    const vpc = new Vpc(this, 'my-vpc', {
      cidrBlock: '10.0.0.0/16'
    });

    new Subnet(this, 'my-subnet', {
      vpcId: Token.asString(vpc.id),
      cidrBlock: '10.0.0.0/24'
    });
  }
}

const app = new App();
new MyStack(app, 'vpc-example');
app.synth();

cdktf synthでTerraformのコードを生成する

cdktf synth

これを実行すると、cdktf.outにTerraformのJSONコードが出力される。

素のterraformで実行する

移動

cd cdktf.out

terraform実行

terraform apply

CDKTFで実行する

cdktf deploy

リソースを削除する

cdktf destroy
36
24
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
24