'Cannot start lambda with Mock Lambda Test Tool

I've been working with AWS lambdas for a few months. I was working with a lambda and it was fine at the end of the day. I came back to work on it the next day, and I can't get Visual Studio to even start the application using the Mock Lambda Test Tool.

I ended up creating an empty lambda that just returns the input (the standard project code that AWS gives you as a template) and that won't even run. I hit the play button to star the Mock Lambda Test Tool, it looks like it will run for a couple seconds, then it closes down. The command window does not even pop up.

This is the code from the template project.

public string FunctionHandler(string input, ILambdaContext context)
{
    return input?.ToUpper();
}

This is all I get in the output window of VS:

The target process exited without raising a CoreCLR started event. Ensure that the target process is configured to use .NET Core. This may be expected if the target process did not run on .NET Core. The program '[16700] dotnet-lambda-test-tool-2.1.exe: Program Trace' has exited with code 0 (0x0). The program '[16700] dotnet-lambda-test-tool-2.1.exe' has exited with code -2147450726 (0x8000809a).

I have tried re-installing the AWS toolkit, and also tried re-installing Visual Studio. This is an issue with VS 2017 and VS 2019. I just installed 2019 to see if that would fix the issue. Any help would be appreciated.



Solution 1:[1]

I came to this question having the very same issue. After installing AWS Toolkit I found that the lambda test tool was not installed and therefore I got the same error just as the OP. The only difference is that I was targeting .Net Core 3.1 and therefore I needed amazon.lambda.testool-3.1. However this answer should work for both scenarios.

Unfortunately I did not have the same luck as the OP of having a nice co-worker that could give me the files I needed. So, if this is also your case please continue reading.

In the official project site, which can be found here, there are the instructions to install the tools. It also says that installing the latest version of AWS Toolkit should be enough to have the tools installed (it was not in my case and probably in yours).

It says that in order to install the tools you should run the following commands:

dotnet tool install -g Amazon.Lambda.TestTool-3.1

or

dotnet tool install -g Amazon.Lambda.TestTool-2.1

depending on which tool you need.

However, running these commands fails with the following message:

The tool package could not be restored. Tool 'amazon.lambda.testtool-2.1' failed to install. This failure may have been caused by:

* You are attempting to install a preview release and did not use the --version option to specify the version.
* A package by this name was found, but it was not a .NET Core tool.
* The required NuGet feed cannot be accessed, perhaps because of an Internet connection problem.
* You mistyped the name of the tool.

For more reasons, including package naming enforcement, visit https://aka.ms/failure-installing-tool

And since the project is still in preview I just had to find the latest stable version in order to specify it in the command. For .net core 3.1 here is the nuget site, there I found version 0.10 to be the latest, so the command should look like:

dotnet tool install -g --version 0.10 Amazon.Lambda.TestTool-3.1

Solution 2:[2]

I have faced the same issue and when i tried to install dotnet-lambda-test-tool-3.1.exe using command prompt I got this issue:

Failed to create shell shim for tool 'amazon.lambda.testtool-3.1': Command 'dotnet-lambda-test-tool-3.1' conflicts with an existing command from another tool. Tool 'amazon.lambda.testtool-3.1' failed to install.

And I did the following to fix issue

  1. Deleted the dotnet-lamda-test-tool-3.1.exe from the installed folder (C:\Users%USERNAME%.dotnet\tools\dotnet-lambda-test-tool-3.1.exe)
  2. Run dotnet tool install -g --version 0.10 Amazon.Lambda.TestTool-3.1 on cmd.

Solution 3:[3]

For anyone else that hits this same issue, it had to do with the the AWS toolkit install. I did not modify it, but somehow it was no longer working. I tried un-installing and re-installing, but it was still having issues running it. A co-worker sent me the exe and subdirectory that was setup on his machine under C:\Users\%user%.dotnet\tools. The exe is located in this directory, and there is another folder under .store for amazon.lambda.testtool-2.1. That directory had different folders and files than what I was able to install. So I copied in what he had and it worked. There might be a profile file associated to the tools install that points to these folders and files that might need to be modified. Since I was able to fix it with this, I didnt look any further into that.

Solution 4:[4]

I have faced the same issue and got errors like "dotnet-lamda-test-tool-2.1.exe has exited with code.." I did the following to fix the issue

  1. Removed the dotnet-lamda-test-tool-2.1.exe from the installed folder (C:\Users%USERNAME%.dotnet\tools\dotnet-lambda-test-tool-2.1.exe)
  2. Removed the [amazon.lambda.testtool-2.1] folder as well (C:\Users%USERNAME%.dotnet\tools\tools.store\amazon.lambda.testtool-2.1)
  3. Installed dotnet tool from Developer command prompt using the command [install -g Amazon.Lambda.TestTool-2.1]
  4. Run the project. It is working

Solution 5:[5]

I got the same issue with VS2019 with lambda design in 3.1 version and in Output window getting error

The target process exited without raising a CoreCLR started event. Ensure that the target process is configured to use .NET Core. This may be expected if the target process did not run on .NET Core.

Then checked the folder having multiple version of lambda-test-tool in path C:\Users{username}.dotnet\tools

I removed all the lambda-test-tool and installed the required tool only with version 3.1 by command in developer command prompt:

dotnet tool install -g --version 0.10 Amazon.Lambda.TestTool-3.1

Then I can able to debug the lambda

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 AMAL
Solution 3 Ryan
Solution 4 Jain
Solution 5 Kailash Mali