CloudFormationテンプレート用のGitHub Copilotを試しました。

2021.12.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

GitHub Copilotについては前回のブログをご覧ください。

最初のプロジェクトに取り組んだことで、CloudFormationテンプレートのパラメータをドキュメントなどで検索することがいかに大変で時間がかかるかを実感しました。

そして、何年も複数のプロジェクトに携わっていても、常に新しいことが起こり、正しい用語を得るために多くの調査や探索をする必要があることは確かです。しかし、Copilotがあれば、Stack OverflowやGitHub Repositoriesなどのプラットフォームで検索する必要はありません。

Infrastructure as Code(IaC)のためにGitHub Copilotを試したところ、その期待通りの働きで、私の仕事の半分を一瞬でなくしてくれました。

Infrastructure as Code(IaC)の用にGitHub Copilot

GitHub Copilot は、JSON テンプレートで作業する人のために設計されています。残念ながらYAMLはまだサポートされていません。おそらく、YAMLのサポートはすぐに追加されるでしょうが、しかし、今のところJSONしかありません

では、GitHub Copilotとの連携はどうでしょうか。まず、GitHub Copilotが1つのフレーズを使用して完全なパラメータブロックを提案する簡単なデモを紹介します。

そう、これがGitHub Copilotの強みです。GitHubCopilotはコードのブロックを推奨するだけでなく、同じブロックのさまざまなバリエーションを推奨することができます(これについては後述します)。

ブロックのさまざまなバージョン

GitHub Copilotは、コードのブロックを提案するだけでなく、学習すればするほど、そのコードのいくつかのバリエーションを提案するようになるので、一つの提案だけに頼るのではなく、好みに応じて複数のブロックから選択することができます。

ボタンをクリックするだけで、提案されたコードのブロックを変更し、さまざまな異なる実装の中から選択することができます。

オートコンプリート

GitHub Copilot はコードのブロックを推薦するだけでなく、コードの行を自動補完することもできます。Copilot が推薦したコードのブロックを修正するときなど、支援が必要な場合に非常に便利です。

GitHub Copilotがコードのブロックを提案できないときは、オートコンプリート機能が便利です。GitHub Copilotは、特に個々のコードの行をコーディングすることをより簡単にします。

それは常に正しいとは限りません

多くのサービスに対してコードを推薦できないことがあったり、我々が望むものとは全く異なるものを推薦されることがありますが、それはこの仕事に対して十分に訓練されていないことが原因です。今後、普及が進むにつれて、確実に改善されていくでしょう。

また、Copilotを使用する際には、不適切なものを推奨する可能性があり、十分な注意を払わないと問題が発生する可能性があるため、慎重に進める必要があります。

まとめ

生活を便利にするためのツールですが、使い方を誤ると、逆に不便になることもあります。まだ、完全に頼るには程遠いですし、今後もそうなることはないと思っています。もし、それが実現したら、私たちは何をすればいいのでしょうか?

GitHub Copilotは私の生活を絶対に良くしてくれましたし、これからもそうし続けるでしょう。もしかしたら、もっと良くなるかもしれません。現在、テクニカルプレビュー中なので、サインアップして手に入れる機会を待つ必要がありますが、それはここでできます。

リファレンス

  1. https://copilot.github.com/
  2. https://github.com/github/copilot-docs/blob/main/docs/visualstudiocode/gettingstarted.md
  3. https://dev.classmethod.jp/articles/github-copilot/
  4. https://dev.classmethod.jp/articles/fly-with-github-copilot/#toc-2