Joseph Calev

Principal Software Engineer, Azure Core Compute

Software Engineer Lead at Microsoft. Focusing on enabling customer scenarios for VM extensions and applications.

Post by this author

Introducing Managed RunCommand Artifacts

As most of you may know from the current Managed RunCommand documentation there are multiple ways your script may be specified. However, what if your script uses various artifacts that also must be downloaded to the machine? Well, in the past it was necessary to call RunCommand are use some other technique to get those files ...

Using Managed RunCommand in an ARM Template

Perhaps one of the largest differences between "Action RunCommand" (internally called RunCommand V1) and "Managed RunCommand" (internally called RunCommand V2) is that Managed RunCommands are ARM resources themselves. That means you can use them in ARM templates. Recently, I needed to issue a RunCommand in an ARM template, so I looked ...

When will CustomScript extension re-execute my script?

One of the lesser known differences between RunCommand and CustomScriptExtension is the fact that we do promise to not re-run your script in RunCommand, but no such promise exists for CustomScript. This is mentioned in the documentation, which isn't often fully understood. However, more than once I've been asked: when does CSE ...

The treatFailureAsDeploymentFailure flag

In both VmApplications and RunCommand, we support a property called "treatFailureAsDeploymentFailure". Note that for Managed RunCommand it may not be visible yet in Powershell or CLI, but it is available via ARM. Note that this flag is only available for managed RunCommand. It is not available for action RunCommand. For those unaware, ...

Working with VM Application Names

I admit that VM Application names can be a bit tricky, or at least non-intuitive. The basic issue is this, you have some binary - let's call it MyApp.exe - and you want to install it on your VM. Therefore, you create a blob with the name MyBlob and set your install script to the following: You then name your VM Application "MyVmApp" ...

Working with unmanaged storage account quotas in VM Applications

While working with VM Applications, it's possible to receive the following error. Operation could not be completed as it results in exceeding approved UnmanagedStorageAccountCount quota. Additional details - Deployment Model: Resource Manager, Location: northeurope, Current Limit: 64, Current Usage: 64, Additional Required: 1, (Minimum) New...

How to determine if your Runcommand script failed

Today, we're going to cover what can be a maddening issue in just determining whether your script failed. Let's start with a very simple operation. Open a Powershell window and run the following: This shouldn't be rocket science here. It's very clear that "this is an error" is, in fact, an error. So, with this universal fact determined, ...

Long running RunCommands

Recently, there's been a bit of confusion involving long running RunCommands. For reference, the default wait time for RunCommand has been 90 minutes - the same as all other extensions. But what if you have a script that takes longer? Well, we've added a timeoutInSeconds parameter just for that purpose! The only slight problem is ...

RunCommand vs Custom Script Extension vs VM Applications

I'm sure that many of you would swear that Microsoft loves to confuse you. Currently, there are not three but four ways to run code on your machine. Now, I know what you're saying. "I just want to run this thing on my machine! Which do I choose?" Well, here I hope to clear that up. First, all of the above work on both ...

Managing VM Applications with Azure Policies

For those unacquainted with the feature, VM Applications allow you to manage applications across virtual machines and virtual machine scale sets. What exactly is an "application"? In truth, it's whatever you want. Typically, it's something that runs for a long period of time on the box, such as a service. However, the definition is really up ...