New-CmAzIaasStorage

Create storage account with Blob, File share, Table and Queue

Completes following:

  • Creates Storage Account from either standard and premium tier.
  • Choose redundancy.
  • Create Blob, Fileshare, Table and Queue with storage account.

This command forms part of the IaaS Building Block.

Parameters

-SettingsFile

Required. (String) File path for the settings file to be converted into a settings object.

-SettingsObject

Required. (Object) Object containing the configuration values required to run this cmdlet.

-TagSettingsFile

Required. (String) File path for the tag settings file to be converted into a tag settings object.

-OmitTags

Required. (SwitchParameter) Parameter to specify if the cmdlet should handle its own tagging.

-WhatIf

(Switch) Run the command without executing any actions, so that no changes are made. The command will output a description of actions to be performed against the affected resources in the console window. Use this option if you are unsure of the overall impact of your command and wish to review it before committing to making changes.

-Confirm

(Switch) Run the command without executing any actions, so that no changes are made. The command will output a description of actions to be performed against the affected resources in the console window. Use this option if you are unsure of the overall impact of your command and wish to review it before committing to making changes.

Usage

Example 1

1
New-CmAzIaasStorage -SettingsFile "c:/directory/settingsFile.yml"

Example 2

1
New-CmAzIaasStorage -SettingsObject $settings

Settings

Beta documentation
The following schema documentation is automatically generated as part of a recent roadmap task. There may be inaccuracies or incomplete information while we flush out bugs; please refer to the packed project settings examples where necessary.

Settings Root.

Component

component [string | null]

Value to determine what cmdlet should be dynamically loaded for these settings.

ResourceGroupName

resourceGroupName [string]

Becomes part of the generated resource group's name.

Location

location [string] Mandatory

Resource group deployment location (default value for all other locations).

Service

service [object]

Contains dependency and publish details for service location.

Dependencies

dependencies [object | null]

Contains dependency details for service location.

ResourceGroup

resourceGroup [string | null]

Dependency value to fetch existing resource type.

Vnet

vnet [string | null]

Global default dependency value to fetch existing resource type.

PrivateZones

privateZones [array | null]

Dependency value to fetch existing resource type. Enables private zone integration.

Publish

publish [object | null]

Contains publish details for service location.

Storage

storage [string | null]

Global default value to publish on deployed resource type.

ResourceGroup

resourceGroup [string | null]

Value to publish on existing resource type.

PrivateEndpoint

privateEndpoint [string | null]

Global default value to publish on deployed resource type.

StorageAccounts

storageAccounts [array] Mandatory

List of details required to deploy all storage accounts.

StorageAccountName

storageAccountName [string]

Becomes part of the generated storage account's name.

PrivateEndpoints

privateEndpoints [array | null]

Container for private endpoint details.

SubnetName

subnetName [string]

Names of underlying sub-resources to create private connection with.

SubResourceName

subResourceName [string]

Names of underlying sub-resources to create private connection with.

Valid values:"blob" , "blob_secondary" , "table" , "table_secondary" , "queue" , "queue_secondary" , "file" , "file_secondary" , "web" , "web_secondary"

Name

name [string | null]

Becomes part of private endpoint name.

Service

service [object | null]

Contains dependency and publish details for service location.

Dependencies

dependencies [object | null]

Contains dependency details for service location.

Vnet

vnet [string | null]

Local overriding dependency value to fetch existing resource type.

PrivateZones

privateZones [array | null]

Dependency value to fetch existing resource type. Enables private zone integration.

Publish

publish [object | null]

Contains publish details for service location.

privateEndpoint

privateEndpoint [string | null]

Local overriding value to publish on deployed resource type.

Location

location [string | null] Mandatory

Storage account deployment location

AccountType

accountType [string]

The storage account's sku name.

Valid values:"Standard" , "Premium" , "standard" , "premium"

Kind

kind [string | null]

The storage account's type.

Default:StorageV2

Valid values:"Storage" , "StorageV2" , "BlobStorage" , "FileStorage" , "BlockBlobStorage" , "storage" , "storagev2" , "blobstorage" , "filestorage" , "blockblobstorage" , ""

Replication

replication [string | null]

Data storage redundancy.

Default:LRS

Valid values:"LRS" , "ZRS" , "GRS" , "RAGRS" , "lrs" , "zrs" , "grs" , "ragrs" , ""

BlobContainer

blobContainer [array | null]

Contains details required to deploy a blob container in a storage account.

Name

name [string]

Becomes part of the generated blob container's name.

Default:none

PublicAccess

publicAccess [string | null]

Sets access level of the items in the container.

Default:None

Valid values:"Container" , "Blob" , "None" , "container" , "blob" , "none" , ""

FileShare

fileShare [array | null]

Contains details required to deploy a file share in a storage account.

Name

name [string]

Becomes part of the generated file share's name.

Default:none

Size

size [integer]

Maximum size of the share.

Default:100

Table

table [array | null]

Contains details required to deploy a table in a storage account.

Queue

queue [array | null]

Contains details required to deploy a queue in a storage account.

MinimumTlsVersion

minimumTlsVersion [string | null]

Miniumum tls versions required for storage requests.

Default:TLS1_2

SupportsHttpsTrafficOnly

supportsHttpsTrafficOnly [boolean | null]

Only allows https for storage communication.

Default:true

AllowBlobPublicAccess

allowBlobPublicAccess [boolean | null]

Allow public access to all blobs and containers.

Default:true

NetworkAclsBypass

networkAclsBypass [string | null]

Specifies if traffic will be bypassed for logging, metrics, azureServices or none.

Default:AzureServices

Valid values:"None" , "Logging" , "Metrics" , "AzureServices" , "none" , "logging" , "metrics" , "azureservices" , ""

NetworkAclsDefaultAction

networkAclsDefaultAction [string | null]

Default action when no other rules match.

Default:Allow

Valid values:"Allow" , "Deny" , "allow" , "deny" , ""

Service

service [object | null]

Contains dependency and publish details for service location.

Publish

publish [object | null]

Contains publish details for service location.

Storage

storage [string | null]

Local overriding value to publish on deployed existing resource type.

Examples

The following example files are automatically generated from the settings file schema definition to show how the specification can be used in practise. Cloudmarque can accept both JSON and YAML parameter files.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
{
  "component": "string",
  "resourceGroupName": "string",
  "location": "string",
  "service": {
    "dependencies": {
      "resourceGroup": "string",
      "vnet": "string",
      "privateZones": [

      ]
    },
    "publish": {
      "storage": "string",
      "resourceGroup": "string",
      "privateEndpoint": "string"
    }
  },
  "storageAccounts": [
    {
      "storageAccountName": "string",
      "privateEndpoints": [
        {
          "subnetName": "string",
          "subResourceName": "blob",
          "name": "string",
          "service": {
            "dependencies": {
              "vnet": "string",
              "privateZones": [

              ]
            },
            "publish": {
              "privateEndpoint": "string"
            }
          }
        }
      ],
      "location": "string",
      "accountType": "Standard",
      "kind": "StorageV2",
      "replication": "LRS",
      "blobContainer": [
        {
          "name": "none",
          "publicAccess": "None"
        }
      ],
      "fileShare": [
        {
          "name": "none",
          "size": 100
        }
      ],
      "table": [
        "string"
      ],
      "queue": [
        "string"
      ],
      "minimumTlsVersion": "TLS1_2",
      "supportsHttpsTrafficOnly": "true",
      "allowBlobPublicAccess": "true",
      "networkAclsBypass": "AzureServices",
      "networkAclsDefaultAction": "Allow",
      "service": {
        "publish": {
          "storage": "string"
        }
      }
    }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
component: "string"    # Optional
resourceGroupName: "string"    # Optional
location: "string"    # Mandatory
service:     # Optional
  dependencies:     # Optional
    resourceGroup: "string"    # Optional
    vnet: "string"    # Optional
    privateZones:     # Optional
      -   publish:     # Optional
    storage: "string"    # Optional
    resourceGroup: "string"    # Optional
    privateEndpoint: "string"    # Optional
storageAccounts:     # Mandatory
  - storageAccountName: "string"    # Mandatory
    privateEndpoints:     # Optional
      - subnetName: "string"    # Mandatory
        subResourceName: "blob"    # Mandatory
        name: "string"    # Optional
        service:     # Optional
          dependencies:     # Optional
            vnet: "string"    # Optional
            privateZones:     # Optional
              -           publish:     # Optional
            privateEndpoint: "string"    # Mandatory
    location: "string"    # Optional
    accountType: "Standard"    # Mandatory
    kind: "StorageV2"    # Optional
    replication: "LRS"    # Optional
    blobContainer:     # Optional
      - name: "none"    # Mandatory
        publicAccess: "None"    # Optional
    fileShare:     # Optional
      - name: "none"    # Mandatory
        size: 100    # Optional
    table:     # Optional
      - "string"
    queue:     # Optional
      - "string"
    minimumTlsVersion: "TLS1_2"    # Optional
    supportsHttpsTrafficOnly: "true"    # Optional
    allowBlobPublicAccess: "true"    # Optional
    networkAclsBypass: "AzureServices"    # Optional
    networkAclsDefaultAction: "Allow"    # Optional
    service:     # Optional
      publish:     # Optional
        storage: "string"    # Optional