Microsoft Azure Functions · Arazzo Workflow

Update Function App Site Configuration and Restart

Version 1.0.0

Read the web site configuration, apply changes, then restart the app to pick them up.

1 workflow 1 source API 1 provider
View Spec View on GitHub AzureCloudComputeEvent-DrivenMicrosoftServerlessArazzoWorkflows

Provider

microsoft-azure-functions

Workflows

update-site-config
Read, update, and apply site configuration with a restart.
Reads the current web site configuration, applies the supplied configuration properties, and restarts the function app to pick up the changes.
3 steps inputs: apiVersion, config, name, resourceGroupName, subscriptionId outputs: appliedConfig, previousConfig, restartStatus
1
readConfig
WebApps_GetConfiguration
Read the current web site configuration so the caller has the baseline before applying changes.
2
applyConfig
WebApps_CreateOrUpdateConfiguration
Apply the supplied configuration via create-or-update of the web config.
3
restartApp
WebApps_Restart
Restart the function app so the new configuration takes effect.

Source API Descriptions

Arazzo Workflow Specification

microsoft-azure-functions-update-site-config-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Update Function App Site Configuration and Restart
  summary: Read the web site configuration, apply changes, then restart the app to pick them up.
  description: >-
    A configuration-and-recycle flow for a function app's site (web) configuration.
    The workflow reads the current SiteConfigResource, applies the caller-supplied
    configuration via create-or-update, and then restarts the app so the new
    settings take effect. This mirrors the common operational pattern where a
    runtime configuration change — such as toggling alwaysOn or changing the
    netFrameworkVersion — requires a recycle. Every step spells out its ARM
    request inline — including the required api-version query parameter and the
    {properties:{...}} SiteConfigResource envelope — so the flow can be read and
    executed without opening the underlying OpenAPI description. All requests are
    authorized with the azure_auth OAuth2 bearer token carried by the Azure
    Resource Manager endpoint.
  version: 1.0.0
sourceDescriptions:
- name: azureFunctionsApi
  url: ../openapi/azure-functions-management-api.json
  type: openapi
workflows:
- workflowId: update-site-config
  summary: Read, update, and apply site configuration with a restart.
  description: >-
    Reads the current web site configuration, applies the supplied configuration
    properties, and restarts the function app to pick up the changes.
  inputs:
    type: object
    required:
    - subscriptionId
    - resourceGroupName
    - name
    - config
    properties:
      subscriptionId:
        type: string
        description: The Azure subscription identifier (GUID).
      resourceGroupName:
        type: string
        description: The resource group that contains the function app.
      name:
        type: string
        description: The name of the function app.
      config:
        type: object
        description: The SiteConfig properties object to apply (e.g. {alwaysOn:true}).
      apiVersion:
        type: string
        description: The ARM api-version to use for all requests.
        default: "2024-11-01"
  steps:
  - stepId: readConfig
    description: >-
      Read the current web site configuration so the caller has the baseline
      before applying changes.
    operationId: WebApps_GetConfiguration
    parameters:
    - name: api-version
      in: query
      value: $inputs.apiVersion
    - name: subscriptionId
      in: path
      value: $inputs.subscriptionId
    - name: resourceGroupName
      in: path
      value: $inputs.resourceGroupName
    - name: name
      in: path
      value: $inputs.name
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      previousConfig: $response.body#/properties
    onSuccess:
    - name: apply
      type: goto
      stepId: applyConfig
  - stepId: applyConfig
    description: >-
      Apply the supplied configuration via create-or-update of the web config.
    operationId: WebApps_CreateOrUpdateConfiguration
    parameters:
    - name: api-version
      in: query
      value: $inputs.apiVersion
    - name: subscriptionId
      in: path
      value: $inputs.subscriptionId
    - name: resourceGroupName
      in: path
      value: $inputs.resourceGroupName
    - name: name
      in: path
      value: $inputs.name
    requestBody:
      contentType: application/json
      payload:
        properties: $inputs.config
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      appliedConfig: $response.body#/properties
    onSuccess:
    - name: recycle
      type: goto
      stepId: restartApp
  - stepId: restartApp
    description: >-
      Restart the function app so the new configuration takes effect.
    operationId: WebApps_Restart
    parameters:
    - name: api-version
      in: query
      value: $inputs.apiVersion
    - name: subscriptionId
      in: path
      value: $inputs.subscriptionId
    - name: resourceGroupName
      in: path
      value: $inputs.resourceGroupName
    - name: name
      in: path
      value: $inputs.name
    - name: synchronous
      in: query
      value: true
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      restartStatus: $statusCode
  outputs:
    previousConfig: $steps.readConfig.outputs.previousConfig
    appliedConfig: $steps.applyConfig.outputs.appliedConfig
    restartStatus: $steps.restartApp.outputs.restartStatus