Making it easy to get started with the Azure Logic Apps Standard VS Code Extension
Published Nov 15 2023 10:00 AM 5,094 Views
Microsoft

 The Logic Apps standard VS Code extension seamlessly extends the Logic App designer empowering users to transition from developing workflows in the cloud to a local environment.


The intuitive no-code designer of Logic Apps combined with the powerful pro-code capabilities of VS Code has enabled developers to build, run and test their Logic App workflows locally with features such as breakpoint debugging. Furthermore, the local development experience is complemented by the ability to seamlessly integrate with traditional dev-ops pipelines for continuous integration and deployment, enabling Logic Apps to become a core part of the enterprise project lifecycles.


Now, we are making this experience much easier to get started, removing a series of pre-requisites needed before developers can start using the experience. Those improvements were added as response to feedback received from our developer community, and will address ways to streamline the onboarding experience for new developers and provide the ability for the Azure Logic Apps Standard to co-exist with other extensions when dependent frameworks start to drift from the latest versions.

 

Simplifying VS Code Extension install

 

Starting with version 2.81.5, the installation of VS Code Extension for Azure Logic Apps Standard will be a lot more straightforward, as the extension will automatically identify dependencies – be it other extensions or frameworks and install them automatically. This will significantly reduce the time taken to spin up a logic app instance on VS Code.


While extensions dependencies are already a functionality that is present in the extension today, this will be extended to include all the required extensions, including the C# extension required for debugging.

 

What is new in this experience is the ability to install all the required frameworks in a portable binaries folder. With that, the extension will be able to:

 

  • Manage those requirements on behalf of the developers, so they don’t have to install or know what the versions of each framework logic apps support.
  • Create independence from the system defaults for those frameworks, by using a portable version of each required framework, removing potential clashes with other technologies and extensions.

 

This auto validation and installation or runtime dependencies is currently in public preview as an opt-in experience. After the extension is installed the first time, the following questions will pop up:

 

WSilveira_0-1699819698645.png

 

Selecting Yes (Recommended) will allow the extension to automatically validate the dependencies during the extension activation. When the extension starts you will see the following notifications pop up:

 

WSilveira_1-1699819698647.png

 

The dependencies framework will be installed by default at the current user’s profile, under c:\users\<username>\.azurelogicapps\dependencies. Under that you will find the following folder structure:

 

WSilveira_2-1699819698650.png

 

Folder

Runtime

NodeJs

Supported version of NodeJS, required to run Inline code actions when an Azure Logic Apps Standard app is running.

FuncCoreTools

Supported version of Function Core Tools, required to both run designer and to start an Azure Logic Apps Standard app.

DotNetSDK

Supported version of .NET SDK, required for debugging.

 

This location is configurable in the extension settings, allowing you to control the location where the dependencies are installed, which is quite useful if the development environment is shared by many users.

 

Speeding up Project Startup

 

This version of the extension also makes Logic Apps project startup faster by initializing a couple of processes during project start-up. Those improvements are enabled by default, so you don’t need to do anything to take advantage of the new behavior.

 

Design Time host

 

In earlier versions of the Azure Logic Apps Standard VS Code extension, the design time host initializes when the designer is invoked the first time. This can lead to a delay in accessing the designer, especially when new bundles need to be deployed.

The latest version of the extension, the design time host will be initialized when the project is loaded, minimizing the delay to start designing workflows.

 

Azurite

 

Azurite needs to be enabled when you run a Logic Apps Standard project locally. In earlier versions of the Azure Logic Apps Standard VS Code extension, you receive a notification if the Azurite services are not running, so you need to manually start it up.

The latest version of the extension will start the Azurite service as soon as you open a new project, so you don’t have to worry about starting it before the first time you hit run and bringing your runtime experience faster.

As part of the improvements with Azurite, we also define a default location for Azurite files in the user profile c:\users\<username>\.azurelogicapps\.azurite. This way, azurite files will not be included in the project location, which is the default behavior if a location is not provided. This location will only be used for Logic Apps projects, so it will not impact on other uses of Azurite.

This location is also configurable in the extension settings if you want to have control of the location where the Azurite repository is created.

 

Loading existing projects

 

When you load an existing project with the new extension for the first time, you will receive the following notification:

 

WSilveira_3-1699819698651.png

 

Accepting this will update the the .vscode/tasks.json file. This file is used when VS Code starts a new run of your project. The changes in this file will allow the extension to find where the portable versions of .NET and Functions Core Tools are installed.

You only need to worry about this notification if you made changes in the tasks.json file. In this case:

 

  • Select cancel
  • Make a copy of the tasks.json
  • Start your project again and select yes
  • Move any changes from your copy of the tasks.json to this new file.

 

.NET Framework requirements

 

The .NET framework that is required for Functions projects is not installed by default. It was a decision made as this will only work on windows machines and needs to be installed in the system path, since it doesn’t support a portable installation.

 

Known issues

 

There are a couple of things that you need to know when installing this experience for the first time.

 

C#Extension notification - .NET Core SDK cannot be located

 

If you opt-in to this experience on a machine that don’t have any version of the .NET core installed yet, the following notification will pop-up the first time you install it:

 

WSilveira_4-1699819698655.png

 

This happens because the .NET Core framework is still being installed – as it is installed when the extension is activated. So, you are safe to ignore this message – it will not appear again the next time you start VS Code.

 

C# Extension notification – There were problems loading project

 

Opening a Logic Apps workspace that contains a Functions project will give you the following notification, if .NET Core version 7 or up is not installed:

 

WSilveira_5-1699819698657.png

 

This doesn’t affect the functionality of the Function project and we are looking to suppress this error.

 

 

Troubleshooting

 

 

 

 

Runtime dependencies don’t complete installation

 

Scenario

 

  • One of the dependencies don’t complete installation.
  • The terminal show errors or get stuck in one of the steps.

 

Causes

 

  • Slow internet connection can cause errors during dependencies download.
  • User don’t have permissions to write on c:\users\<username>

 

Fixes

 

  • Verify that you have permission to read/write on c:\users\<username>
  • Confirm you have internet connection
  • Retry Validation and Installation of Runtime dependencies manually:
  • Within VS Code press CTRL+SHIFT+P to open the Command Pallete
  • Search for Azure Logic Apps: Validate and install dependency binaries

 

WSilveira_0-1699948351245.png

 

  • Click on the command to run the validation process again.
  • If problem persist, try to increase the download timeout
  • Open the Azure Logic Apps Standard extension settings

 

WSilveira_1-1699948351255.png

 

  • Search for the dependency timeout setting

 

WSilveira_2-1699948351261.png

 

  • Increase the value from the default 120 to a higher value (e.g. 300 seconds – 5 minutes)
  • Restart VS Code

 

 

 

Opting out from the experience after selecting opting in

 

Scenario

 

You decided to opt-out from the experience after selecting the opt-in option when the extension was installed.

 

Fix

 

You can disable the opt-in option in settings.

  • Open the Azure Logic Apps Standard extension settings

 

WSilveira_3-1699948351268.png

 

  • Search for Auto Runtime Dependendencies

 

WSilveira_4-1699948351274.png

 

  • Right click on the cog beside Auto Runtime Dependencies Path setting and select Reset setting:

 

WSilveira_5-1699948351284.png

 

  • Repeat this process for Auto Runtime Dependencies Validation and Installation setting
  • Restart VS Code
  • Select Don’t warn again when prompted to opt-in to the experience

 

WSilveira_6-1699948351286.png

 

If your project tasks.json was updated, remove the following lines (lines 20-24):

 

 

 

 

      "options": {
        "env": {
          "PATH": "${config:azureLogicAppsStandard.autoRuntimeDependenciesPath}\\NodeJs;${config:azureLogicAppsStandard.autoRuntimeDependenciesPath}\\DotNetSDK;$env:PATH"
        }
      },

 

 

 

 

 

 

Older projects are not able to run in debug mode

 

Scenario

 

  • I can start a debug session for my project.
  • My project runs in debug mode, but data mapper action cannot be executed.

 

Fix

 

  • Update your local.appsettings.json, making sure the following entries are available:
    • "APP_KIND": "workflowapp"
    • "FUNCTIONS_WORKER_RUNTIME": "node"

The following is an example of a local.appsettings.json with the minimal required items (for an app with no built-in or azure connections":

 

 

 

 

 

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "node",
    "WORKFLOWS_SUBSCRIPTION_ID": "",
    "APP_KIND": "workflowapp"
  }
}

 

 

 

 

6 Comments
Version history
Last update:
‎Nov 15 2023 01:21 PM
Updated by: