Generate Bicep Module Files
As per the module design structure (BCPFR3), every module in the AVM library requires
- a up-to-date ReadMe markdown (
readme.md) file documenting the set of deployable resource types, input and output parameters and a set of relevant template references from the official Azure Resource Reference documentation
- an up-to-date compiled template (
Set-AVMModule utility aims to simplify contributing to the AVM library, as it supports
- idempotently generating the AVM folder structure for a module (including any child resource)
- generating the module’s ReadMe file from scratch or updating it
- compiling/building the module template
To ease maintenance, you can run the utility with a
Recurse flag from the root of your folder to update all files automatically.
You can find the script under
Using the provided template path, the script
- validates the module’s folder structure
- To do so, it searches for any required folder path / file missing and adds them. For several files, it will also provide some default content to get you started. The sources files for this action can be found here
- compiles its bicep template
- updates the readme (recursively, specified)
- If the intended readMe file does not yet exist in the expected path, it is generated with a skeleton (with e.g., a generated header name)
- The script then goes through all sections defined as
SectionsToRefresh(by default all) and refreshes the sections’ content (for example, for the
Parameters) based on the values in the ARM/JSON Template. It detects sections by their header and always regenerates the full section.
- Once all are refreshed, the current ReadMe file is overwritten. Note: The script can be invoked combining the
Verboseswitches to just receive an console-output of the updated content.
For details on how to use the function, please refer to the script’s local documentation.
The script must be loaded (’dot-sourced’) before the function can be invoked.
. 'C:/dev/Set-AVMModule.ps1' Set-AVMModule (...)