Azure Storage - Tables
Installation
To have access to the following features, you have to import the module:
PS> Install-Module -Name Arcus.Scripting.Storage.Table
Creating a new table in an Azure Storage Account
(Re)Create a Azure Table Storage within an Azure Storage Account.
| Parameter | Mandatory | Description | 
|---|---|---|
ResourceGroupName | yes | The resource group where the Azure Storage Account is located | 
StorageAccountName | yes | The name of the Azure Storage Account to add the table to | 
TableName | yes | The name of the table to add on the Azure Storage Account | 
Recreate | no | The optional flag to indicate whether or not a possible already existing table should be deleted and re-created | 
RetryIntervalSeconds | no | The optional amount of seconds to wait each retry-run when a failure occurs during the re-creating process (default: 5s) | 
MaxRetryCount | no | The optional maximum amount of retry-runs should happen when a failure occurs during the re-creating process (default: 10) | 
Example
With non-existing table:
PS> Create-AzStorageTable `
-ResourceGroupName "stock" `
-StorageAccountName "admin" `
-TableName "products"
# Azure storage table 'products' does not exist yet in the Azure storage account 'admin', so will create one
# Azure storage table 'products' created in Azure storage account 'admin'
With existing table and re-create:
PS> Create-AzStorageTable `
-ResourceGroupName "stock" `
-StorageAccountName "admin" `
-TableName "products" `
-Recreate `
-RetryIntervalSeconds 3
# Azure storage table 'products' has been removed from Azure storage account 'admin'
# Failed to re-create the Azure storage table 'products' in Azure storage account 'admin', retrying in 5 seconds...
# Failed to re-create the Azure storage table 'products' in Azure storage account 'admin', retrying in 5 seconds...
# Azure storage table 'products' created in Azure storage account 'admin'
Set the entities in a table of an Azure Storage Account
Deletes all entities of a specified table in an Azure Storage Account and creates new entities based on a configuration file.
| Parameter | Mandatory | Description | 
|---|---|---|
ResourceGroupName | yes | The resource group where the Azure Storage Account is located | 
StorageAccountName | yes | The name of the Azure Storage Account that contains the table | 
TableName | yes | The name of the table in which the entities should be set | 
ConfigurationFile | yes | Path to the JSON Configuration file containing all the entities to be set | 
Configuration File
The configuration file is a simple JSON file that contains all of the entities that should be set on the specified table, the JSON file consists of an array of JSON objects (= your entities). Each object contains simple name-value pairs (string-string).
Defining the PartitionKey and/or RowKey are optional, if not provided a random GUID will be set for these.
The file needs to adhere to the following JSON schema:
{
  "definitions": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://scripting.arcus-azure.net/Features/powershell/azure-storage/azure-storage-table/config.json",
  "type": "array",
  "title": "The configuration JSON schema",
  "items": [{
      "type": "object",
      "patternProperties": {
        "^.*$": {
          "anyOf": [{
              "type": "string"
            }, {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": false
    }
  ]
}
Example Configuration File
[
  {
    "PartitionKey": "SystemA",
    "RowKey": "100",
    "ReadPath": "/home/in",
    "ReadIntervalInSeconds": "30"  
  },
  {
    "PartitionKey": "SystemA",
    "RowKey": "200",
    "ReadPath": "/data/in",
    "ReadIntervalInSeconds": "10",
    "HasSubdirectories": "true" 
  }
]
Example
PS> Set-AzTableStorageEntities `
-ResourceGroupName "someresourcegroup" `
-StorageAccountName "somestorageaccount" `
-TableName "sometable" `
-ConfigurationFile ".\config.json"
# Deleting all existing entities in Azure storage table 'sometable' for Azure storage account 'somestorageaccount' in resource group 'someresourcegroup'...
# Successfully deleted all existing entities in Azure storage table 'sometable' for Azure storage account 'somestorageaccount' in resource group 'someresourcegroup'
# Successfully added all entities in Azure storage table 'sometable' for Azure storage account 'somestorageaccount' in resource group 'someresourcegroup'