Это вопрос из двух частей. Я нахожусь в процессе автоматизации задач, которые а) требуют информацию из моей таблицы Azure и б) необходимо обновить определенные c сущности в моей таблице Azure. В настоящее время я смог выполнить sh, используя любой из 2 предоставленных ключей доступа, но считаю, что это небезопасная практика, и хочу определить отдельные политики для разных групп и поэтому хочу перейти на использование сгенерированных ключей SAS.
a) В настоящее время я могу использовать политики SAS для извлечения всей таблицы и поиска необходимой мне информации, но я думаю, что лучшим способом является выполнение отдельного запроса, который извлекает только одну сущность, которая соответствует указанному c свойству I ищу (например, вытащить все свойства объекта, который совпадает с идентификатором клиента: "000000001"). Как я могу изменить свой код для выполнения sh this?
$tableName = "accountTD"
$sasReadToken = '<SAS token here>'
$tableUri = "https://$storageAccount.table.core.windows.net/$tableName$sasReadToken"
$GMTTime = (Get-Date).ToUniversalTime().toString('R')
$header = @{
'x-ms-date' = $GMTTime;
Accept = 'application/json;odata=nometadata'
}
$finalResult = Invoke-WebRequest -Uri $tableUri -Headers $header -UseBasicParsing
$finalResult = $finalResult.Content | ConvertFrom-Json
$finalResult.value
b) Мне также нужно обновить ту же сущность в таблице, и я не могу понять, как ее авторизовать с помощью моего сгенерированного Ключ SAS. Я не уверен, использовать ли Invoke-WebRequest или Invoke-RestMethod или как go о любой из них. Вот что я пока основал на своих исследованиях.
function addUpdateEntity ($tableName, $PartitionKey, $RowKey, $entity){
$sasReadToken = '<SAS token here>'
$resource = "$tableName(PartitionKey='$PartitionKey',RowKey='$Rowkey')"
$tableUri = "https://$storageAccount.table.core.windows.net/$tableName$sasReadToken"
$GMTTime = (Get-Date).ToUniversalTime().toString('R')
$header = @{
'x-ms-date' = $GMTTime;
Accept = 'application/json;odata=nometadata'
}
$body = $entity | ConvertTo-Json
$item = Invoke-RestMethod -Method PUT -Uri $tableUri -Headers $headers -Body $body -ContentType application/json
}
$mBody = @{
PartitionKey = "MPS02000"
RowKey = "2019-000101"
appUpdateMode = "1"
m_CustID = "000000001"
}
addUpdateEntity -TableName "atdMachines" -PartitionKey $mBody.PartitionKey -RowKey $mBody.RowKey -entity $mBody