我有一个 Azure PowerShell功能,它会查询API管理分析以获取API列表,然后通过功能集成输出到Table Store表。
为每个API创建一行, PartitionKey 是API的名称, RowKey 是分析所来自的日期。
如果每天多次请求API的分析,则会导致错误。此时,功能 exectution失败,状态为 500内部服务器错误,我出现以下错误 -
返回函数后处理参数_binder时出错: - >指定的实体已存在。
虽然我计划按计划运行功能,因此在大多数情况下避免出现此问题,但最好是采用适当的解决方案,理想情况是覆盖现有条目。这可能吗?
$apiIds.GetEnumerator() | ForEach-Object {
$analytic = $_.Value | Get-ApiManagementAnalytics -Context $context -StartDate $startDate -EndDate $endDate -AccessToken
$tableRow = $analytic.value
$tableRow | Add-Member -NotePropertyName PartitionKey -NotePropertyValue $tableRow.name
$tableRow | Add-Member -NotePropertyName RowKey -NotePropertyValue ((Get-Date).ToString("yyyy-MM-dd"))
$tableRows += $tableRow
}
$tableRows | ConvertTo-Json | Out-File -Encoding UTF8 $outputTable
答案 0 :(得分:2)
我相信你要找的是TableOperation.InsertOrReplace
如果实体不存在,则将给定实体插入表中;如果实体存在,则其内容将替换为提供的实体。
答案 1 :(得分:0)
请参阅:https://stackoverflow.com/a/55527201
public string ETag { get; } = "*";