Making it easy to get started with the Azure Logic Apps Standard VS Code Extension

  • Thread starter Thread starter WSilveira
  • Start date Start date
W

WSilveira

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:



medium?v=v2&px=400.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:



medium?v=v2&px=400.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:



medium?v=v2&px=400.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:



medium?v=v2&px=400.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:



medium?v=v2&px=400.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:



medium?v=v2&px=400.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


medium?v=v2&px=400.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


medium?v=v2&px=400.png



  • Search for the dependency timeout setting


medium?v=v2&px=400.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


medium?v=v2&px=400.png



  • Search for Auto Runtime Dependendencies


medium?v=v2&px=400.png



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


medium?v=v2&px=400.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


medium?v=v2&px=400.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"
}
}

Continue reading...
 
Back
Top