ホームページ  >  記事  >  バックエンド開発  >  Terraform プロバイダー開発: 更新が失敗しても tfstate が更新される

Terraform プロバイダー開発: 更新が失敗しても tfstate が更新される

PHPz
PHPz転載
2024-02-10 20:00:091045ブラウズ

Terraform Provider Development:即使更新失败,tfstate 也会更新

php 編集者 Apple Terraform Provider の開発中に、更新エラーが頻繁に発生します。ただし、更新に失敗した場合でも、tfstate ファイルは更新されます。これは、Terraform が tfstate ファイルを使用してリソースのステータスと構成情報を追跡するためです。リソースが作成、更新、または削除されたかどうかに関係なく、Terraform は対応するステータスを tfstate ファイルに記録します。この設計により、更新プロセス中に問題が発生した場合でも、tfstate ファイルを通じて最新のリソースのステータスを取得できるため、一貫性と信頼性が確保されます。

質問内容

そこで、terraformプロバイダーの開発方法に興味があり、説明できない問題に遭遇しました。

私の CRUD は非常に単純です。リソースを作成し、ライフサイクル中にそのメタデータを更新してから、destroy コマンドで削除します。

リーリー

ご覧のとおり、更新関数はエラーを返します。これが私の問題です。意図的にプロセスを失敗させましたが、tfstate は引き続き更新されました (この変更を確認するためにリソース宣言内の変数を変更していました)。

これは完全なリソース宣言です

リーリー ###私は何を取りこぼしたか?更新操作が失敗した後は tfstate を更新すべきではないと思っていましたが、実際には更新されます。 CRUD メソッドと CRUDContext メソッドを試しましたが、どちらの場合も同じように動作しました。

P/S/

terraform バージョン Terraform v1.6.5、プロバイダー開発用 bashicorp/terraform-plugin-sdk/v2/

Solution

## による# ブログ投稿、これは予期された動作のようです:

一个> "

Update

コールバックがエラーの有無にかかわらず返った場合は、完全な状態を保存します。" また、

Update

コールバックで Read を返す実際に動作する例をいくつか見つけました。

Cloudflare プロバイダー

たとえば、GitHub プロバイダー 彼らは皆これをやります:

リーリー

以上がTerraform プロバイダー開発: 更新が失敗しても tfstate が更新されるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。