1
votes

Impossible de trouver l'affichage d'erreur de type [Microsoft.Azure.Cosmos.Table.TableQuery] lors de l'exécution de la commande Get-AzTableRow sur VSTS azure powershell

J'essaie d'exécuter azure powershell sur VSTS avec la commande Get-AzTableRow.

Powershell:

2019-05-22T10:38:30.2164835Z ##[error]Method 'get_SerializationSettings' in type 'Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient' from assembly 'Microsoft.Azure.PowerShell.Clients.ResourceManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' does not have an implementation.

Erreur:

$storageAccount = Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $storageAccountName

Remarque: Fonctionnement correct dans PowerShell ISE local. Utilisation de l'agent 'Hosted VS2017' dans VSTS

La version des modules installés en local et VSTS est la même lorsque j'exécute les commandes ci-dessous pour vérifier:

Az.Accounts 1.5.2
Az.Storage 1.3.0
AzTable 2.0.2
Az.Resources 1.3.1


4 commentaires

Avez-vous besoin d'un module d'importation pour fonctionner?


déjà importé le module à l'aide des commandes: Install-Module -Name Az -Scope CurrentUser -AllowClobber -Force Install-Module -Name AzTable -AllowClobber -Force -Scope CurrentUser


Exécutez "Get-module" après la reproduction du problème, quelle est la sortie? Le "Az.Storage 1.3.0" sera-t-il affiché dans la sortie? Une autre version du module "* .Storage" sera-t-elle affichée?


@ WeiWei-Microsoft Lorsque j'exécute la commande 'Get-InstalledModule -Name Az.Storage', la version que j'obtiens est '1.3.0' mais lorsque j'exécute 'Get-module', la version de 'Az.Storage' est «1.0.0»


3 Réponses :


1
votes

Pour le problème que vous fournissez:

2019-05-17T08: 13: 38.6380364Z ## [erreur] Type introuvable [Microsoft.Azure.Cosmos.Table.TableQuery]: vérifiez que l'assembly contenant ce type est chargé

La raison est que vous devez utiliser le module Az.Storage version 1.1.0 ou supérieure. Jetez un œil aux troublant dans ce document . Et vous pouvez utiliser la commande PowerShell:

Update-Module -Name Az

Ensuite, ouvrez une nouvelle session PowerShell et cela fonctionnera.


1 commentaires

Les commentaires ne sont pas destinés à une discussion approfondie; cette conversation a été déplacé pour chatter .



0
votes

basé sur Gérer la facturation de l'organisation dans Azure DevOps - Sprint 150 Update #Support for Azure PowerShell Az module

Vous devez installer le module Az sur votre machine d'agent si vous utilisez des agents privés.

vous devez utiliser un agent privé car vous ne pouvez pas mettre à jour la version du module PowerShell sur l'agent hosed (par exemple: Hosted VS2017).


0 commentaires

0
votes

Enfin capable d'exécuter le script sur VSTS:

Remarque: la version d'Azure Powershell doit être 4. * (aperçu)

$ConfigurationPortalName = "xxxx"
$ResourceGroupName = "xxxx"
$Location = "West Europe"
$SubscriptionName = "xxxx"
$SubscriptionId = "xxxx"
$AdHocReleaseDefinitionId = "xxxx"
$MultipleEnvReleaseDefId = "xxxx"
$StorageConnectionString = "xxxx"
$StorageContainerName = "xxxx"
$SkuName = "Standard_LRS"
$tableName = "Subscription"
$partitionKey = "Subscription"
$storageAccountName = "xxxx"

write-host "*Install Modules*"
Install-Module -Name Az.Accounts -RequiredVersion 1.5.2 -Scope CurrentUser -AllowClobber -Force
Install-Module -Name Az.Storage -RequiredVersion 1.3.0 -Scope CurrentUser -AllowClobber -Force
Install-Module -Name AzTable -RequiredVersion 2.0.2 -Scope CurrentUser -AllowClobber -Force 

write-host "*remove module*"
Remove-Module -Name Az.Accounts -ErrorAction SilentlyContinue -Force
Remove-Module -Name Az.Storage -ErrorAction SilentlyContinue -Force
Remove-Module -Name AzTable -ErrorAction SilentlyContinue -Force

write-host "*Import Module version*"
Import-Module -Name Az.Accounts -RequiredVersion 1.5.2 -Force
Import-Module -Name Az.Storage -RequiredVersion 1.3.0 -Force
Import-Module -Name AzTable -RequiredVersion 2.0.2 -Force

write-host "*Get Module version currently in use*"
Get-Module Az.Accounts
Get-Module Az.Storage
Get-Module AzTable

$storageAccount = Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $storageAccountName

if (!$storageAccount) 
{
    $storageAccount = New-AzStorageAccount -ResourceGroupName $ResourceGroupName `
        -Name $storageAccountName `
        -Location $Location `
        -SkuName $SkuName `
        -Kind Storage

    Write-host 'Storage Account Created !!!'
}
else 
{
    Write-host 'Storage Account Already Exist !!!'
}

$storageAccountKeys = Get-AzStorageAccountKey -ResourceGroupName $ResourceGroupName -AccountName $storageAccountName
$newStorageConnectionString = [string]::Format('DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1};EndpointSuffix=core.windows.net', $storageAccountName, $storageAccountKeys[0].Value);
$webApp = Get-AzWebApp -ResourceGroupName $ResourceGroupName -Name $ConfigurationPortalName;
$appSettingList = $webApp.SiteConfig.AppSettings;
$hash = @{};

ForEach ($kvp in $appSettingList) 
{
    $hash[$kvp.Name] = $kvp.Value;
}

if ($hash['Config:Storage:ConnectionString'] -ne $newStorageConnectionString) 
{
    $hash['Config:Storage:ConnectionString'] = $newStorageConnectionString;
    Set-AzWebApp -ResourceGroupName $ResourceGroupName -Name $ConfigurationPortalName -AppSettings $hash;
    Write-host 'WebApp Configured With New Storage Account Key successfully !!!'
}
else 
{
    Write-host 'WebApp Already Configured With Storage Account Key !!!' 
}

$ctx = $storageAccount.Context

#Get Storage Tabel Reference
$cloudTable  = (Get-AzStorageTable -Name $tableName -Context $ctx -ErrorVariable ev -ErrorAction SilentlyContinue).CloudTable

#If no reference then create new table else check for default entry
if($ev)
{
    New-AzStorageTable -Name $tableName –Context $ctx;
    $cloudTable  = (Get-AzStorageTable -Name $tableName -Context $ctx).CloudTable
    Write-host 'Table created successfully !!!'
}

Write-Host "Table name :" $cloudTable

if ($cloudTable) 
{
    $rows = Get-AzTableRow -table $cloudTable -partitionKey $partitionKey | ft
    if (!$rows)
    {
        Add-AzTableRow `
            -table $cloudTable `
            -partitionKey $partitionKey `
            -rowKey $SubscriptionName `
            -property @{`
                            "SubscriptionId"          = $SubscriptionId; `
                            "AdHocReleaseDefinitionId" = $AdHocReleaseDefinitionId; `
                            "MultipleEnvReleaseDefId"  = $MultipleEnvReleaseDefId; `
                            "StorageConnectionString" = $StorageConnectionString; `
                            "StorageContainerName"    = $StorageContainerName
                        }

        Write-host 'Row successfully inserted !!!'
    }
    else 
    {
        Write-host 'Default Row already configured !!!'
    }
}
else 
{
    Write-host 'Table Storage Reference Not Found !!!'
}

Write-Host 'Completed !!!'

p >


0 commentaires