Creating Resources¶
This guide shows you how to create resources for your Pyvider provider. Resources represent infrastructure components with full CRUD lifecycle management.
🤖 AI-Generated Content
This documentation was generated with AI assistance and is still being audited. Some, or potentially a lot, of this information may be inaccurate. Learn more.
What is a Resource?¶
A resource in Terraform is a managed infrastructure component with: - Configuration: User-provided inputs - State: Current state of the infrastructure - Lifecycle: Create, read, update, delete operations
Basic Resource Example¶
Here's a complete, working resource:
| Python | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | |
Resource Components¶
1. Schema Definition¶
Define what Terraform users see:
2. Runtime Classes¶
Separate attrs classes for type safety:
| Python | |
|---|---|
3. Lifecycle Methods¶
Implement resource operations:
ResourceContext API¶
The ResourceContext object provides access to:
Complete Example: API Resource¶
Here's a resource that manages API objects:
| Python | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | |
Best Practices¶
- Always validate configuration in
_validate_config() - Handle missing resources in
read()by returningNone - Use computed attributes for provider-generated values
- Separate concerns: Schema (Terraform) vs Runtime (Python)
- Add error handling for API failures
- Use type hints for better IDE support
See Also¶
- Schema System - Understanding schemas
- Resource Context - ResourceContext API reference
- Testing Resources - Testing strategies
- Best Practices - Production patterns