Azure自动化无法将文件传输到存储帐户

ktca8awb  于 2023-03-03  发布在  其他
关注(0)|答案(1)|浏览(152)

我正在尝试让Azure自动化帐户将.CSV导出到存储帐户,但我在执行此操作时遇到了大量问题。正如大多数文档所述,使用AzureRM和Azure RM正在贬值。
下面是我尝试传输.CSV文件的方法

$SecureAppSecret = ConvertTo-SecureString -String $AppSecret -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential($AppId, $SecureAppSecret)
Connect-AzAccount -ServicePrincipal -TenantId $TenantId -Credential $Credential
[String]$StorageAccountKey = Get-AzStorageAccountKey -ResourceGroupName $ResourceGroupID -Name $StorageAccountName

$azure_StorageContextSplat = @{
StorageAccountName = $StorageAccountName
StorageAccountKey = $StorageAccountKey
}
$storageContext = New-AzStorageContext @azure_StorageContextSplat

$Report | Export-CSV -Path "~\File.csv"

$azure_FileToUploadSplat = @{
Context = $storageContext
File = "~\File.csv"
Container = $StorageContainer
Force = $true
}

Set-AzStorageBlobContent @azure_FileToUploadSplat

$AppSecret、$AppId、$TenantId、$ResourceGroupID、$StorageAccountName和$storageContext都在脚本的前面以明文形式提供(我知道这不安全,但我希望它能正常工作,然后我才能使它安全)
在Azure自动化测试窗格中运行此命令后,我收到以下2个错误:

The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters. 

Could not get the storage context.  Please pass in a storage context or set the current storage context.

我相信第一个是指StorageAccountKey,但目前我还不知道。任何帮助都将不胜感激。谢谢。

neekobn8

neekobn81#

简单的方法来传输文件是下面的过程,并把它作为一个替代方案,因为它是不太安全:
我已经在我的环境中复制了下面的脚本,我遵循了Microsoft-Document

Import-Module -Name Azure.Storage

$storageAccName = "rithwikstorage"
$storageAccKey = "ohNJHBheHNb/gSSBWXUxt3dxrw+AStXNnJyQ=="

$context = New-AzStorageContext -StorageAccountName $storageAccName -StorageAccountKey $storageAccKey

$conName = "name of the conatiner"
$Report =Get-AzResource | Export-CSV -Path "~\File.csv"

Set-AzStorageBlobContent -Context $context  -Container $conName -File "~\File.csv"

输出:

然后在存储帐户中:

在这里,我已经直接给出了存储帐户密钥、名称和容器名称,并获得了所需的输出,请尝试按照相同的方式获得所需的输出。

相关问题