🥨
Wing (Winglang) で API Gateway + Lambda を構築してみる
Winglangを試してみました
Winglangを使って、はろーわーるどなAPIをAPI Gateway+Lambdaで作ってみました。
Winglang
書いたコード
Wing (Winglang)とは?
クラウド指向言語 (Cloud Oriented Language)らしいです。
AWSやAzureやGoogle Cloudのクラウドリソースを定義したり、Lambdaのコードを書いたりできるみたいです。
TypeScriptっぽい感じですが微妙に違います。
AWS CDKの作者が開発しているらしいです。
書いてみた
これだけのコードでAPI Gateway + Lambdaが定義できる。すごい!
ローカルで確認してみた
wing it ibaraki-sample-api-gateway.w
ローカルで構成の確認が出来て、APIの実行も確認できる。すごい!
デプロイしてみる
Wingそのままだとdeploy出来ないので、terraformに変換する必要があります。
cliのオプションでCDKもありますが試したらエラーになりました。たぶん現状はterrafromだけだと思われます。残念。
wing compile --target tf-aws ibaraki-sample-api-gateway.w
cd target/ibaraki-sample-api-gateway.tfaws
export AWS_REGION="ap-northeast-1"
export AWS_PROFILE="{profile}"
terraform init
terraform apply
確認してみる
動いた!
破棄する
terraform destroy
最後に
- 可能性を感じる
- ローカルPCで構成や動作の確認できるのがとても良い
- コード量が短く書けるのが良い
- 反面、ブラックボックス部分が多くて怖い
- 言語がTypeScriptっぽいけど違うので混乱する
- まだ対応しているリソースが少ないので、今後に期待
Discussion