AWS workspace creation fails with no error code, how can I diagnose the issue?

104 Views Asked by At

I'm trying to automate the creation of AWS workspace but i'm running into this error as output. Any idea on what could be causing the error?

$jsonObject = '{
  "UserNames": ["user1", "user2", "user3"],
  "DirectoryId": "xxxxxxxxxxx",
  "BundleId": "xxxxxxxx",
  "VolumeEncryptionKey": "xxxxxxxxxxxx",
  "UserVolumeEncryptionEnabled": true,
  "RootVolumeEncryptionEnabled": true,
  "WorkspaceProperties": {
    "RunningMode": "ALWAYS_ON",
    "RootVolumeSizeGib": 175,
    "UserVolumeSizeGib": 100,
    "ComputeTypeName": "PERFORMANCE"
  },
  "Tags": [
    {
      "Key": "xxxxxxx",
      "Value": "xxxxxxxxxxx"
    }
  ]
}'

$workspaceData = $jsonObject | ConvertFrom-Json
$failedRequests = @()

foreach ($username in $workspaceData.UserNames) {
    $workspaceProperties = @{
        "RunningMode" = $workspaceData.WorkspaceProperties.RunningMode
        "RootVolumeSizeGib" = $workspaceData.WorkspaceProperties.RootVolumeSizeGib
        "UserVolumeSizeGib" = $workspaceData.WorkspaceProperties.UserVolumeSizeGib
        "ComputeTypeName" = $workspaceData.WorkspaceProperties.ComputeTypeName
    }

    $tags = $workspaceData.Tags | ForEach-Object {
        $tag = New-Object -TypeName "Amazon.WorkSpaces.Model.Tag"
        $tag.Key = $_.Key
        $tag.Value = $_.Value
        $tag
    }

    $workspace = New-Object -TypeName "Amazon.WorkSpaces.Model.WorkspaceRequest"
    $workspace.DirectoryId = $workspaceData.DirectoryId
    $workspace.UserName = $username
    $workspace.BundleId = $workspaceData.BundleId
    $workspace.VolumeEncryptionKey = $workspaceData.VolumeEncryptionKey
    $workspace.UserVolumeEncryptionEnabled = $workspaceData.UserVolumeEncryptionEnabled
    $workspace.RootVolumeEncryptionEnabled = $workspaceData.RootVolumeEncryptionEnabled
    $workspace.WorkspaceProperties = $workspaceProperties
    $workspace.Tags = $tags
    
    try {
        New-WKSWorkspace -Workspace $workspace
    } catch {
        $failedRequests += $_.Exception.Response.FailedRequests
    }
}

$failedRequests  # Display the failed requests, if any

Running the script with the actual users even without the array generates the same error and there is no error code to reference FailedRequests PendingRequests


{Amazon.WorkSpaces.Model.FailedCreateWorkspaceRequest} {}

0

There are 0 best solutions below