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 중국어 웹사이트의 기타 관련 기사를 참조하세요!