【问题标题】:Cannot start lambda with Mock Lambda Test Tool无法使用 Mock Lambda 测试工具启动 lambda
【发布时间】:2019-10-29 00:19:27
【问题描述】:

几个月来,我一直在使用 AWS lambda。我正在使用 lambda 并且在一天结束时它很好。第二天我回来工作,我什至无法让 Visual Studio 使用 Mock Lambda 测试工具启动应用程序。

我最终创建了一个空的 lambda,它只返回输入(AWS 为您提供的标准项目代码作为模板),甚至不会运行。我点击播放按钮为 Mock Lambda 测试工具加注星标,它看起来会运行几秒钟,然后关闭。命令窗口甚至没有弹出。

这是来自模板项目的代码。

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

这就是我在 VS 的输出窗口中得到的全部内容:

目标进程退出而没有引发 CoreCLR 启动事件。 确保目标进程配置为使用 .NET Core。这 如果目标进程未在 .NET Core 上运行,则可能会出现这种情况。这 程序“[16700] dotnet-lambda-test-tool-2.1.exe:程序跟踪”有 以代码 0 (0x0) 退出。程序'[16700] dotnet-lambda-test-tool-2.1.exe' 已退出,代码为 -2147450726 (0x8000809a)。

我已尝试重新安装 AWS 工具包,也尝试重新安装 Visual Studio。这是 VS 2017 和 VS 2019 的问题。我刚刚安装了 2019 以查看是否可以解决问题。任何帮助将不胜感激。

【问题讨论】:

    标签: c# aws-lambda


    【解决方案1】:

    我遇到了同样的问题。安装 AWS Toolkit 后,我​​发现没有安装 lambda 测试工具,因此我得到了与 OP 相同的错误。唯一的区别是我的目标是 .Net Core 3.1,因此我需要 amazon.lambda.testtool-3.1。然而,这个答案应该适用于这两种情况。

    不幸的是,我没有像 OP 那样幸运地拥有一个可以给我所需文件的好同事。所以,如果你也是这种情况,请继续阅读。

    在官方项目站点,可以找到here,有安装工具的说明。它还说,安装最新版本的 AWS Toolkit 应该足以安装工具(我的情况不是这样,你的情况可能是这样)。

    它说要安装工具,您应该运行以下命令:

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

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

    取决于您需要的工具。

    但是,运行这些命令失败并显示以下消息:

    无法恢复工具包。 工具“amazon.lambda.testtool-2.1”安装失败。此故障可能是由以下原因引起的:

    * 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
    

    由于该项目仍处于预览阶段,我只需要找到最新的稳定版本即可在命令中指定它。对于 .net core 3.1 here 是 nuget 站点,我发现 0.10 版本是最新的,所以命令应该如下所示:

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

    【讨论】:

    • 谢谢@taquion,我还必须做这件事:将调试配置文件正确映射到 .exe 文件的位置(如果有多个版本的 lambda-tools)
    【解决方案2】:

    对于遇到同样问题的其他人来说,这与 AWS 工具包安装有关。我没有修改它,但不知何故它不再工作。我尝试卸载并重新安装,但运行它仍然有问题。一位同事向我发送了在他的机器上 C:\Users\%user%.dotnet\tools 下设置的 exe 和子目录。 exe 位于此目录中,.store 下还有另一个文件夹,用于 amazon.lambda.testtool-2.1。该目录的文件夹和文件与我能够安装的不同。所以我复制了他所拥有的并且它起作用了。可能存在与工具安装关联的配置文件,该配置文件指向可能需要修改的这些文件夹和文件。由于我能够用这个来修复它,所以我没有进一步研究。

    【讨论】:

      【解决方案3】:

      我也遇到过同样的问题,并遇到类似“dotnet-lamda-test-tool-2.1.exe has exited with code..”之类的错误。 我做了以下来解决这个问题

      1. 从已安装文件夹中删除了 dotnet-lamda-test-tool-2.1.exe (C:\Users%USERNAME%.dotnet\tools\dotnet-lambda-test-tool-2.1.exe)
      2. 也删除了 [amazon.lambda.testtool-2.1] 文件夹 (C:\Users%USERNAME%.dotnet\tools\tools.store\amazon.lambda.testtool-2.1)
      3. 使用命令从 Developer 命令提示符安装 dotnet 工具 [安装 -g Amazon.Lambda.TestTool-2.1]
      4. 运行项目。它正在工作

      【讨论】:

        【解决方案4】:

        我遇到了同样的问题,当我尝试使用命令提示符安装 dotnet-lambda-test-tool-3.1.exe 时,我遇到了这个问题:

        无法为工具“amazon.lambda.testtool-3.1”创建 shell shim:命令“dotnet-lambda-test-tool-3.1”与其他工具的现有命令冲突。 工具“amazon.lambda.testtool-3.1”安装失败。

        我做了以下解决问题

        1. 删除 dotnet-lamda-test-tool-3.1.exe 从已安装文件夹 (C:\Users%USERNAME%.dotnet\tools\dotnet-lambda-test-tool-3.1.exe)
        2. 在 cmd 上运行 dotnet tool install -g --version 0.10 Amazon.Lambda.TestTool-3.1

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-13
        • 2016-08-03
        • 2018-07-03
        相关资源
        最近更新 更多