如何在 table 存储中播种数据?

how to seed data in table storage?

我们如何播种 table 存储 table 以自动化部署过程?

我们在开发订阅中的同一资源组中获得了以下资源:

为了自动化部署这些资源,我从资源组下载了ARM模板:

然后我们可以简单地重新部署到任何目标资源组:

但是,这不会部署存储 tables、事件、将数据播种到 tables 等资源。

我们如何自动播种 table 存储 tables 以便自动部署?

我使用 this 选项使用 powershell 自动播种数据:

$partitionKey1 = "partition1"
$partitionKey2 = "partition2"

# add four rows 
Add-AzTableRow `
    -table $cloudTable `
    -partitionKey $partitionKey1 `
    -rowKey ("CA") -property @{"username"="Chris";"userid"=1}

Add-AzTableRow `
    -table $cloudTable `
    -partitionKey $partitionKey2 `
    -rowKey ("NM") -property @{"username"="Jessie";"userid"=2}

Add-AzTableRow `
    -table $cloudTable `
    -partitionKey $partitionKey1 `
    -rowKey ("WA") -property @{"username"="Christine";"userid"=3}

Add-AzTableRow `
    -table $cloudTable `
    -partitionKey $partitionKey2 `
    -rowKey ("TX") -property @{"username"="Steven";"userid"=4}

做这样的事情。

  1. 在您的项目中检查您的 CSV 文件
  2. 在您的构建定义中添加一个复制文件的步骤 - https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/copy-files?view=azure-devops&tabs=yaml
  3. 在你的发布管道中 运行 你的 PS 脚本就像我在上面的评论中提到的 - https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/powershell?view=azure-devops

您可以为您的 PS 脚本使用类似的东西来加载 csv 文件

# Load the CSV
$csv = Import-CSV $PSScriptRoot'\yourSeedData.csv'

# And push it to storage
ForEach ($line in $csv)
{
    $entity = New-Object -TypeName Microsoft.WindowsAzure.Storage.Table.DynamicTableEntity -ArgumentList $line.PartitionKey, $line.RowKey
    if($line.Description -ne $null) {
        $entity.Properties.Add("Property1", $line.Property1)
    }
    $entity.Properties.Add("Property2", $line.Property2)

    $result = $table.CloudTable.Execute([Microsoft.WindowsAzure.Storage.Table.TableOperation]::InsertOrReplace($entity))
}