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/
コールバックがエラーの有無にかかわらず返った場合は、完全な状態を保存します。"
また、
コールバックで Read
を返す実際に動作する例をいくつか見つけました。
たとえば、GitHub プロバイダー 彼らは皆これをやります:
リーリー以上がTerraform プロバイダー開発: 更新が失敗しても tfstate が更新されるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。