HashiCorp、「Terraform 1.7」を一般提供–テストワークフレームのモック機能を追加

今回は「HashiCorp、「Terraform 1.7」を一般提供–テストワークフレームのモック機能を追加」についてご紹介します。

関連ワード (ソフトウェア等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


 HashiCorpは米国時間1月17日、「HashiCorp Terraform 1.7」の一般提供を発表した。

 Terraform 1.7は現在、ダウンロードが可能で、「Terraform Cloud」でも利用できる。Terraform テストワークフレームのモック機能やリソースを状態から削除する新しいメソッドを搭載するほか、config-driven importの強化なども図られている。

 「Terraform 1.6」では、Terraformコードの単体および結合テストをHashiCorp Configuration Language(HCL)を使って実行するためのネイティブオプションとして、Terraformのテストフレームワークが導入された。Terraform 1.7では、これに複数の改良が加えられており、その中にはモック機能が含まれるとHashiCorpは述べる。

 プロバイダーコールのモックを使うことで、より高度な状況をモデル化することが可能になり、インフラストラクチャーを実際に構成したり、クレデンシャルを要求したりすることなくテストを実行できる。データベースや高レベルのプラットフォームサービスといった、プロビジョニングに時間を要するようなクラウドリソースを使用する場合に効果的だと同社は説明する。

 テストモックは、モックプロバイダーとオーバーライドという2つの機能を追加し、強力な柔軟性をモジュールのテストに与える。

 Terraformテストでモックされたプロバイダー/リソースは、基盤となるプロバイダーAPIが通常は提供する計算された属性全てに対し、擬似的なデータを生成する。エイリアスを使うことで、モックプロバイダーと本物のプロバイダーを一緒に使用し、柔軟なTerraformテストスイートをモジュールのために作成できる。モックプロバイダーの定義にはmock_providerが使われ、同ブロック内では、リソースやデータソースの計算された属性の値を指定できる。

 プロバイダー全体をモックすることに加え、リソース、データソース、モジュールの特定インスタンスをオーバーライドできる。オーバーライドブロックはTerraformテストファイルのルートに置いて全テストランに適用することも、個々のrunブロックに配置することもできる。また、モックプロバイダーと本物のプロバイダーの両方で利用できる。オーバーライドの一般的なユースケースは、プロビジョニングに時間がかかるリソースのテスト実行時間短縮などがあるという。

 Terraform 1.7で加えられたテストフレームワークに関する他の強化としては、変数を参照し、テストプロバイダーブロックで実行を出力する、変数ブロックとプロバイダーブロックでHCL関数を使用する、テスト用変数値を*.tfvarsファイルからロードするなどがある。

 Terraform 1.7では、config-driven removeが追加された。インフラストラクチャーライフサイクルにおいて、リソースの状態を修正することが必要になる場合がある。「Terraform CLI」は状態操作に関連したコマンドが幾つかあるが、これら全てには、一度の一つだけのリソースに対してのみ動作する、状態やクレデンシャルに直接アクセスしてローカルで実行する必要がある、状態をすぐに変更するといった同様の課題があるという。

 これは、構成と状態が同期していない状態にし、リソースを誤って変更してしまう可能性があるため、リスクがある。このような理由から、「Terraform 1.1」ではmovedブロックによりconfig-driven refactoringの概念を導入し、それに続いて「Terraform 1.5」ではconfig-driven importを利用可能にした。config-driven removeはこの概念を再び拡張するものだという。

 リソースを破棄せずに状態から削除する必要がある理由としては、ワークスペース間でリソースを移動する、適用失敗後での状態のクリーンアップ、リソースの手動変更によるリフレッシュの失敗、プロバイダーの廃止とアップグレードなどを同社は挙げる。removedブロックは、terraform state rmコマンドの代替として、これらの課題全てに対応するという。movedやimportブロック同様に、状態の削除を一括で計画的に実行できるようになったため、状態を変更する前に、操作が意図した効果をもたらすことを確信できるという。

 Terraform 1.7では、config-driven importも強化されており、for_eachループを使ってimportブロックを拡張できる。これまで、importブロックのto属性でリソースの特定のインスタンスをターゲットにできたが、個別のimportブロックに対して各インスタンスを記述する必要があった。これが単一のimportブロックで実現できるようになった。これは、複数のモジュールインスタンス間でインポートを拡張するにも使用できる。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
「あつ森」に「JTB島」登場 浅草・横浜・草津温泉など再現 社員が2カ月かけて作成
企業・業界動向
2021-07-15 03:26
グーグル・クラウドが伴走者–顧客主体の内製開発プログラム「TAP」を提供
IT関連
2022-10-01 06:06
ワタミ、食品ロス削減に向けて業務支援クラウドを導入–バックヤード業務をAIで自動化
IT関連
2023-04-22 19:43
ServiceNowのデジタルスキルトレーニング「RiseUp with ServiceNow」の展望
IT関連
2023-06-02 20:40
第3回:顧客が買うのは「モノ」ではなく「体験」
IT関連
2022-12-02 09:50
「Windows 11」、「検索のハイライト」機能がリリースプレビューに
IT関連
2022-06-21 08:14
食品/飲料の商品データをAIで名寄せ・正規化–Lazuliが食品/飲料業界向けSaaS
IT関連
2021-08-04 18:57
NTT Comが取り組む医療従事者の働き方改革–奈良県庁と医療DX推進で実証実験
IT関連
2023-05-27 05:53
第3回:職場におけるAI導入を成功させるための5つのポイント
IT関連
2024-07-30 18:20
キヤノンMJグループ、「DXクラウド」を導入–社員の「デザイン思考」を可視化
IT関連
2024-05-25 19:43
マイクロソフト、「GitHub Copilot X」をVisual Studioに搭載したデモ動画を公開。コードを自然言語で解説、デバッグ、ユニットテストの生成など
GitHub
2023-04-03 10:35
YouTube、アプリの検索結果でも章飛ばしが可能に 自動翻訳されていれば検索できる機能も
アプリ・Web
2021-08-19 22:45
コロナ禍でビジネスメール詐欺の被害急増–暗号通貨の利用も
IT関連
2022-05-07 23:09
マイクロソフト、全ルータが再計算状態に突入し大規模障害/Webの将来はサーバサイドレンダリング(SSR)に回帰していく、など。2023年2月の人気記事
編集後記
2023-03-06 01:00