Uploader un fichier depuis un environnement On-Premises ou une Azure Function vers un compte de stockage Azure

Function AuthenticateToAzure($connectionBias){
	if($connectionBias -eq "RunAsAccount"){ 
		$connectionName = "AzureRunAsConnection"
		$servicePrincipalConnection = Get-AutomationConnection -Name $connectionName
		Connect-AzAccount -ServicePrincipal -TenantId $servicePrincipalConnection.TenantId -ApplicationId $servicePrincipalConnection.ApplicationId -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint 
	} elseif($connectionBias -eq "msi") {
		Connect-AzAccount -Identity
	} else {
		exit
	}
}
Function WriteFileToBlob($obj, $filename, $type) {

    Write-Output $filename
    $filePath = "$env:temp\" + $filename

	if($type -eq "json"){
		$obj | ConvertTo-Json | Out-File -FilePath $filePath
	} elseif($type -eq "csv") {
		$obj | Export-Csv -Path $filePath -NoTypeInformation -Encoding UTF8 
	} else {
		$obj | Out-File -FilePath $filePath
	}

	Set-AzStorageBlobContent -Container $containerName -File $filePath -Context $storageContext -Force
    Remove-Item -Path $filePath -Force
	$obj = @()

}

AuthenticateToAzure("msi")

$tenantId           = "xxxxxxx"
$subscriptionId     = "xxxxxxx"
$resourceGroup      = "xxxxxxx"
$storageAccountName = "xxxxxxx"
$containerName      = "xxxxxxx"

Set-AzContext -Subscription $subscriptionId -Tenant $tenantId

$storAccKeys = Get-AzStorageAccountKey -ResourceGroupName $resourceGroup -Name $storageAccountName 
$primaryKey = $storAccKeys | Where-Object keyname -eq 'key1' | Select-Object -ExpandProperty value

$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $primaryKey

WriteFileToBlob -obj $table  -filename "sample.csv"  -type "csv"
WriteFileToBlob -obj $output -filename "sample.json" -type "json"

Publié par Vincent GUYONVARCH

Je m’appelle Vincent et je suis Cloud Solution Architect Data & AI chez Microsoft. J’aide les entreprises en tant qu’expert sur les technologies Cloud.

Laisser un commentaire