bicep
bicep copied to clipboard
Unhandled exception assigning resource to variable via the access operator [var slot = webSite::webSlot::webSlotConfig]
Bicep version bicep --version Bicep CLI version 0.4.1128 (9a02ae891c)
Describe the bug Unhandled exception assigning resource to variable via the access operator [var slot = webSite::webSlot::webSlotConfig]
To Reproduce
The following works as expected:
param siteName string = 'ACU1-BRW-AOA-T5-fnDIS01'
param slotName string = 'dev'
resource webSite 'Microsoft.Web/sites@2021-02-01' existing = {
name: siteName
resource webSlot 'slots@2021-02-01' existing = {
name: slotName
resource webSlotConfig 'config@2021-02-01' existing = {
name: 'appsettings'
}
}
}
output config object = webSite::webSlot::webSlotConfig.list()
The following has an unhandled exception:
However there is no tips to show this syntax is invalid.
param siteName string = 'ACU1-BRW-AOA-T5-fnDIS01'
param slotName string = 'dev'
resource webSite 'Microsoft.Web/sites@2021-02-01' existing = {
name: siteName
resource webSlot 'slots@2021-02-01' existing = {
name: slotName
resource webSlotConfig 'config@2021-02-01' existing = {
name: 'appsettings'
}
}
}
var slot = webSite::webSlot::webSlotConfig
output config object = slot.list()
TargetSite :
Name : HandleCommandLineDynamicParameters
DeclaringType : System.Management.Automation.CmdletParameterBinderController, System.Management.Automation, Version=7.2.0.10, Culture=neutral, PublicKeyToken=31bf3856ad364e35
MemberType : Method
Module : System.Management.Automation.dll
Data : System.Collections.ListDictionaryInternal
InnerException :
Type : Microsoft.Azure.Commands.Common.Exceptions.AzPSApplicationException
ErrorKind : Internal
ErrorLineNumber : 126
ErrorFileName : BicepUtility
TargetSite :
Name : BuildFile
DeclaringType : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Utilities.BicepUtility, Microsoft.Azure.PowerShell.Cmdlets.ResourceManager, Version=4.4.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
MemberType : Method
Module : Microsoft.Azure.PowerShell.Cmdlets.ResourceManager.dll
Message : Unhandled exception. System.InvalidOperationException: Unrecognized base expression Variable
at Bicep.Core.Emit.ExpressionConverter.ConvertFunction(FunctionCallSyntaxBase functionCall) in D:\a\bicep\bicep\src\Bicep.Core\Emit\ExpressionConverter.cs:line 164
at Bicep.Core.Emit.ExpressionConverter.ConvertExpression(SyntaxBase expression) in D:\a\bicep\bicep\src\Bicep.Core\Emit\ExpressionConverter.cs:line 89
at Bicep.Core.Emit.ExpressionEmitter.EmitLanguageExpression(SyntaxBase syntax) in D:\a\bicep\bicep\src\Bicep.Core\Emit\ExpressionEmitter.cs:line 184
at Bicep.Core.Emit.ExpressionEmitter.EmitExpression(SyntaxBase syntax) in D:\a\bicep\bicep\src\Bicep.Core\Emit\ExpressionEmitter.cs:line 86
at Bicep.Core.Emit.ExpressionEmitter.<>c__DisplayClass26_0.<EmitPropertyInternal>b__0() in D:\a\bicep\bicep\src\Bicep.Core\Emit\ExpressionEmitter.cs:line 446
at Bicep.Core.Emit.TemplateWriter.EmitOutput(JsonTextWriter jsonWriter, OutputSymbol outputSymbol, ExpressionEmitter emitter) in D:\a\bicep\bicep\src\Bicep.Core\Emit\TemplateWriter.cs:line 816
at Bicep.Core.Emit.TemplateWriter.EmitOutputsIfPresent(JsonTextWriter jsonWriter, ExpressionEmitter emitter) in D:\a\bicep\bicep\src\Bicep.Core\Emit\TemplateWriter.cs:line 799
at Bicep.Core.Emit.TemplateWriter.GenerateTemplateWithoutHash() in D:\a\bicep\bicep\src\Bicep.Core\Emit\TemplateWriter.cs:line 150
at Bicep.Core.Emit.TemplateWriter.Write(JsonTextWriter writer) in D:\a\bicep\bicep\src\Bicep.Core\Emit\TemplateWriter.cs:line 111
at Bicep.Core.Emit.TemplateEmitter.<>c__DisplayClass6_0.<Emit>b__0() in D:\a\bicep\bicep\src\Bicep.Core\Emit\TemplateEmitter.cs:line 41
at Bicep.Core.Emit.TemplateEmitter.EmitOrFail(Action write) in D:\a\bicep\bicep\src\Bicep.Core\Emit\TemplateEmitter.cs:line 80
at Bicep.Core.Emit.TemplateEmitter.Emit(Stream stream) in D:\a\bicep\bicep\src\Bicep.Core\Emit\TemplateEmitter.cs:line 34
at Bicep.Cli.Services.CompilationWriter.ToFile(Compilation compilation, String outputPath) in D:\a\bicep\bicep\src\Bicep.Cli\Services\CompilationWriter.cs:line 27
at Bicep.Cli.Commands.BuildCommand.RunAsync(BuildArguments args) in D:\a\bicep\bicep\src\Bicep.Cli\Commands\BuildCommand.cs:line 58
at Bicep.Cli.Program.RunAsync(String[] args) in D:\a\bicep\bicep\src\Bicep.Cli\Program.cs:line 78
at Bicep.Cli.Program.Main(String[] args) in D:\a\bicep\bicep\src\Bicep.Cli\Program.cs:line 65
at Bicep.Cli.Program.<Main>(String[] args)
Data : System.Collections.ListDictionaryInternal
Source : Microsoft.Azure.PowerShell.Cmdlets.ResourceManager
HResult : -2146232832
StackTrace :
at Microsoft.Azure.Commands.ResourceManager.Cmdlets.Utilities.BicepUtility.BuildFile(String bicepTemplateFilePath, VerboseOutputMethod writeVerbose, WarningOutputMethod writeWarning)
at Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.ResourceWithParameterCmdletBase.BuildAndUseBicepTemplate()
at Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.ResourceWithParameterCmdletBase.GetDynamicParameters()
at Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.CmdletBase.DeploymentCreateCmdlet.GetDynamicParameters()
at Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.CmdletBase.DeploymentWhatIfCmdlet.System.Management.Automation.IDynamicParameters.GetDynamicParameters()
at System.Management.Automation.CmdletParameterBinderController.HandleCommandLineDynamicParameters(ParameterBindingException& outgoingBindingException)
Source : System.Management.Automation
HResult : -2146233087
StackTrace :
at System.Management.Automation.CmdletParameterBinderController.HandleCommandLineDynamicParameters(ParameterBindingException& outgoingBindingException)
at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments)
at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments)
at System.Management.Automation.CommandProcessor.BindCommandLineParameters()
at System.Management.Automation.CommandProcessor.Prepare(IDictionary psDefaultParameterValues)
at System.Management.Automation.CommandProcessorBase.DoPrepare(IDictionary psDefaultParameterValues)
at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream)
at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input)
--- End of stack trace from previous location ---
at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input)
at System.Management.Automation.PipelineOps.InvokePipeline(Object input, Boolean ignoreInput, CommandParameterInternal[][] pipeElements, CommandBaseAst[] pipeElementAsts, CommandRedirection[][] commandRedirections, FunctionContext funcContext)
at System.Management.Automation.Interpreter.ActionCallInstruction`6.Run(InterpretedFrame frame)
at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
CategoryInfo : InvalidArgument: (:) [New-AzResourceGroupDeployment], ParameterBindingException
FullyQualifiedErrorId : GetDynamicParametersException,Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.NewAzureResourceGroupDeploymentCmdlet