gpt4 book ai didi

java - 带有 JAVA 和 Docker Toolbox 的 AWS SAM 本地

转载 作者:行者123 更新时间:2023-12-02 11:20:28 27 4
gpt4 key购买 nike

我想使用无服务器应用程序模型在本地测试我的 lambda 函数 ( SAM )他们在 AWS 文档中写道:

SAM Local leverages the docker-lambda Docker images to run your code in a sandbox that simulates the Lambda execution environment.

我将 docker 镜像拉到了我的计算机上。我可以成功运行一个简单的 Hello World Lambda 函数。

本地运行 Lambda 函数的命令:

$ docker run -v "$PWD/target/classes":/var/task lambci/lambda:java8 com.amazonaws.lambda.demo.LambdaFunctionHandler

结果:

"Hello from Lambda!"

使用Eclipse Toolkit自动生成的Lambda函数代码:

package com.amazonaws.lambda.demo;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;

public class LambdaFunctionHandler implements RequestHandler<Object, String> {

@Override
public String handleRequest(Object input, Context context) {
context.getLogger().log("Input: " + input);

// TODO: implement your handler
return "Hello from Lambda!"
}

}

这是我到目前为止的进展。我不能做的是使用 sam local它使用 docker-lambda 图像。(也许我不必手动下载它?)。

我在 Windows 上安装了 sam local:

npm install -g aws-sam-local

创建了一个template.yaml配置sam文件。

    AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::Serverless-2016-10-31

Resources:
ExampleJavaFunction:
Type: AWS::Serverless::Function
Properties:
Handler: com.amazonaws.lambda.demo.LambdaFunctionHandler
CodeUri: ./target/demo-1.0.0-shaded.jar
Runtime: java8

CodeUri 的名称:是我在构建着色 jar 文件后选择的:

mvn compile shade:shade

在此之后我应该运行我的 lambda 函数:

$ echo '{ "some": "input" }' | sam local invoke

现在我有这个错误:

  2017/12/05 14:56:36 Successfully parsed template.yaml
2017/12/05 14:56:36 Running AWS SAM projects locally requires Docker. Have you got it installed?
2017/12/05 14:56:36 error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/_ping: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.

在 Java 中使用 SAM Local 时犯了什么错误?难道是因为我的电脑没有Hyper-V并且iam使用了dockertoolbox所以它无法工作吗?..

here您可以看到高级 sam 文档,其中包含 java 等编译语言。

最佳答案

这是 Sam 本地的一个错误..用新的修复了 update

如果您在 Windows 中仍然遇到问题,请尝试以下操作:

COMPOSE_CONVERT_WINDOWS_PATHS=1

如果您的路径错误,这应该会有所帮助。/\

关于java - 带有 JAVA 和 Docker Toolbox 的 AWS SAM 本地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47655872/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com