Home > Blockchain >  Azure-automation: Cannot bind parameter 'Context'
Azure-automation: Cannot bind parameter 'Context'

Time:02-08

I am trying to create new directories in Azure datalake using azure automation powershell workflow. The code that i have is like this:

    $ctx = New-AzStorageContext -ConnectionString $connectionstring

    New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -Directory

the error message that I get:

New-AzDataLakeGen2Item : Cannot bind parameter 'Context'. Cannot convert the "Microsoft.WindowsAzure.Commands.Storage.AzureStorageContext" value of type "Deserialized.Microsoft.WindowsAzure.Commands.Storage.AzureStorageContext" to type "Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext

I dont know how to solve this error? any help is greatly appreciated.

CodePudding user response:

In our local environment, We have created a Powershell runbook running with PowerShell Version 5.1.

Using the same above shared cmdlets, we are able to create a new directory in the Azure Data lake storage account. We have used System managed identity to connect to subscription resources from the automation account.

Here is the Powershell script that we have used in Automation Account:

 Disable-AzContextAutosave -Scope Process  # Ensures you do not inherit an AzContext in your runbook
 $AzureContext = (Connect-AzAccount -Identity).context # Connect to Azure with system-assigned managed identity
$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext  # set and store context
    
Import-module -name Az.Storage

$ctx=New-AzStorageContext -StorageAccountName "<strgaccountName>" -StorageAccountKey "<storageaccountKey>"
New-AzDataLakeGen2Item -Context $ctx -FileSystem "testfiler" -Path "dir1/dir2" -Directory

Here is the Sample output for reference:

enter image description here

  •  Tags:  
  • Related