Azure / AzOps

AzOps is a PowerShell module which deploys (Push) ARM Resource Templates & Bicep files at all Azure scope levels and exports (Pull) ARM resource hierarchy.
https://aka.ms/AzOps
MIT License
371 stars 158 forks source link

Load Template Content for Push Deployment in-memory #870

Closed Jefajers closed 3 months ago

Jefajers commented 3 months ago

Overview/Summary

This PR changes how AzOps utilizes the template file during deployment and fixes #868.

New behavior: New-AzOpsDeployment will first attempt to utilize a parameter $TemplateObject that contains the relevant template content as a hashtable. Only if this parameter $TemplateObject is missing will it attempt to read the template file content.

Current behavior: New-AzOpsDeployment attempt to read the content of the template file and potentially lock it during read and deployment.

This PR fixes/adds/changes/removes

  1. Changes Invoke-AzOpsPush.ps1
  2. Changes New-AzOpsDeployment.ps1

Breaking Changes

  1. N/A

Testing Evidence

Tests have been performed that locks the template files destined for deployment prior to Invoke-AzOpsPush calls New-AzOpsDeployment and with this code change the module continues to execute successful deployments. Without the code change it fails due to file lock.

As part of this Pull Request I have