Azure Log Analytics · Arazzo Workflow

Azure Log Analytics Create Workspace and Baseline Custom Table

Version 1.0.0

Create a workspace, add a baseline custom table, then read the table back.

1 workflow 1 source API 1 provider
View Spec View on GitHub AnalyticsAzureCloudLoggingMonitoringArazzoWorkflows

Provider

azure-log-analytics

Workflows

create-workspace-and-baseline-table
Provision a workspace, add a baseline custom table, then confirm the table.
Creates or updates a Log Analytics workspace with an SKU and retention, creates a baseline custom table on that workspace, and reads the table back to confirm its schema and provisioning state.
3 steps inputs: location, managementApiVersion, resourceGroupName, retentionInDays, skuName, subscriptionId, tableColumns, tableName, workspaceName outputs: customerId, provisioningState, tableName, tableSchema
1
createWorkspace
createOrUpdateWorkspace
Create or update the Log Analytics workspace with the supplied SKU and retention policy in the target region.
2
createBaselineTable
createOrUpdateTable
Create the baseline custom table on the new workspace using the supplied column schema.
3
confirmTable
getTable
Read the baseline table back to confirm its schema and provisioning state after creation.

Source API Descriptions

Arazzo Workflow Specification

azure-log-analytics-create-workspace-and-baseline-table-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Azure Log Analytics Create Workspace and Baseline Custom Table
  summary: Create a workspace, add a baseline custom table, then read the table back.
  description: >-
    A greenfield setup pattern that stands up a new Log Analytics workspace and
    seeds it with a first custom table. The workflow creates or updates the
    workspace with an SKU and retention policy, creates a baseline custom table
    with a column schema on that workspace, and reads the table back to confirm
    its provisioning state. Every step spells out its request inline so the flow
    can be read and executed without opening the underlying OpenAPI descriptions.
  version: 1.0.0
sourceDescriptions:
- name: managementApi
  url: ../openapi/azure-log-analytics-management-api.yaml
  type: openapi
workflows:
- workflowId: create-workspace-and-baseline-table
  summary: Provision a workspace, add a baseline custom table, then confirm the table.
  description: >-
    Creates or updates a Log Analytics workspace with an SKU and retention,
    creates a baseline custom table on that workspace, and reads the table back
    to confirm its schema and provisioning state.
  inputs:
    type: object
    required:
    - subscriptionId
    - resourceGroupName
    - workspaceName
    - location
    - tableName
    - tableColumns
    properties:
      subscriptionId:
        type: string
        description: The ID of the target Azure subscription.
      resourceGroupName:
        type: string
        description: The resource group to provision the workspace in.
      workspaceName:
        type: string
        description: The name for the new Log Analytics workspace.
      location:
        type: string
        description: The Azure region for the workspace (e.g. eastus).
      skuName:
        type: string
        description: The workspace pricing SKU name.
        default: PerGB2018
      retentionInDays:
        type: integer
        description: The workspace data retention in days.
        default: 30
      tableName:
        type: string
        description: The name of the baseline custom table to create.
      tableColumns:
        type: array
        description: The column definitions for the baseline table schema.
        items:
          type: object
      managementApiVersion:
        type: string
        description: The management API version to use.
        default: '2025-02-01'
  steps:
  - stepId: createWorkspace
    description: >-
      Create or update the Log Analytics workspace with the supplied SKU and
      retention policy in the target region.
    operationId: createOrUpdateWorkspace
    parameters:
    - name: subscriptionId
      in: path
      value: $inputs.subscriptionId
    - name: resourceGroupName
      in: path
      value: $inputs.resourceGroupName
    - name: workspaceName
      in: path
      value: $inputs.workspaceName
    - name: api-version
      in: query
      value: $inputs.managementApiVersion
    requestBody:
      contentType: application/json
      payload:
        location: $inputs.location
        properties:
          sku:
            name: $inputs.skuName
          retentionInDays: $inputs.retentionInDays
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      workspaceName: $response.body#/name
      customerId: $response.body#/properties/customerId
  - stepId: createBaselineTable
    description: >-
      Create the baseline custom table on the new workspace using the supplied
      column schema.
    operationId: createOrUpdateTable
    parameters:
    - name: subscriptionId
      in: path
      value: $inputs.subscriptionId
    - name: resourceGroupName
      in: path
      value: $inputs.resourceGroupName
    - name: workspaceName
      in: path
      value: $inputs.workspaceName
    - name: tableName
      in: path
      value: $inputs.tableName
    - name: api-version
      in: query
      value: $inputs.managementApiVersion
    requestBody:
      contentType: application/json
      payload:
        properties:
          schema:
            name: $inputs.tableName
            columns: $inputs.tableColumns
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      tableName: $response.body#/name
  - stepId: confirmTable
    description: >-
      Read the baseline table back to confirm its schema and provisioning
      state after creation.
    operationId: getTable
    parameters:
    - name: subscriptionId
      in: path
      value: $inputs.subscriptionId
    - name: resourceGroupName
      in: path
      value: $inputs.resourceGroupName
    - name: workspaceName
      in: path
      value: $inputs.workspaceName
    - name: tableName
      in: path
      value: $inputs.tableName
    - name: api-version
      in: query
      value: $inputs.managementApiVersion
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      schema: $response.body#/properties/schema
      provisioningState: $response.body#/properties/provisioningState
  outputs:
    customerId: $steps.createWorkspace.outputs.customerId
    tableName: $steps.createBaselineTable.outputs.tableName
    tableSchema: $steps.confirmTable.outputs.schema
    provisioningState: $steps.confirmTable.outputs.provisioningState