>백엔드 개발 >Golang >Terraform 공급자 개발: 업데이트가 실패하더라도 tfstate 업데이트

Terraform 공급자 개발: 업데이트가 실패하더라도 tfstate 업데이트

PHPz
PHPz앞으로
2024-02-10 20:00:091080검색

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

PHP Editor Apple Terraform Provider를 개발할 때 업데이트 실패가 자주 발생합니다. 그러나 업데이트에 실패하더라도 tfstate 파일은 업데이트됩니다. 이는 Terraform이 tfstate 파일을 사용하여 리소스의 상태 및 구성 정보를 추적하기 때문입니다. 리소스가 생성, 업데이트 또는 삭제되면 Terraform은 tfstate 파일에 해당 상태를 기록합니다. 이 설계는 업데이트 프로세스 중에 문제가 발생하더라도 tfstate 파일을 통해 최신 리소스 상태를 얻을 수 있도록 하여 일관성과 안정성을 보장합니다.

질문 내용

그래서 Terraform Provider를 어떻게 개발할지 궁금해서 설명할 수 없는 문제에 부딪혔습니다.

내 CRUD는 매우 간단합니다. 수명 주기 동안 리소스를 생성하고 해당 메타데이터를 업데이트한 다음 destroy 명령으로 삭제합니다.

으아악

보시다시피 업데이트 기능이 오류를 반환하는데, 이것이 제 문제였습니다. 의도적으로 프로세스를 실패하게 만들었지만 tfstate는 여전히 업데이트되었습니다(이 변경 사항을 확인하기 위해 리소스 선언에서 변수를 변경했습니다).

전체 리소스 설명입니다

으아악

내가 무엇을 놓쳤나요? 업데이트 작업이 실패한 후 tfstate를 업데이트하면 안 된다고 생각했는데, 그렇네요. CRUD 및 CRUDContext 메서드를 시도했는데 두 경우 모두 동일하게 작동합니다.

P/S/ terraform版本 Terraform v1.6.5,用于提供商开发使用hashicorp/terraform-plugin-sdk/v2/

해결 방법

이는 블로그 게시물에 따르면 예상되는 동작인 것 같습니다. 一个>

"Update 콜백이 오류 없이 반환되면 전체 상태를 저장하세요.

"

또한 Read 콜백에서 모두 Update 中返回 Read를 반환하는 실제 작업 예제를 발견했습니다.

Cloudflare Provider 예: GitHub Provider

그들은 모두 이렇게 합니다:

으아악

위 내용은 Terraform 공급자 개발: 업데이트가 실패하더라도 tfstate 업데이트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제