bicep icon indicating copy to clipboard operation
bicep copied to clipboard

Unhandled exception assigning resource to variable via the access operator [var slot = webSite::webSlot::webSlotConfig]

Open brwilkinson opened this issue 4 years ago • 0 comments

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

brwilkinson avatar Dec 15 '21 21:12 brwilkinson