问题标签 [micronaut-aws]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
148 浏览

graalvm - Micronaut 数据、GraalVM、AWS 构建失败

我从本指南开始: https ://guides.micronaut.io/micronaut-function-graalvm-aws-lambda-gateway/guide/index.html 它可以工作并创建可在本地 SAM 实例中部署的 API。

在我的真实项目中,我需要访问 JPA、数据库,因此我在 build.gradle 中添加了引用:

还添加 CRUD 所需的 TypeHint 和 ojdbc 所需的反射信息; https://github.com/oracle/graal/issues/1748#issuecomment-542353582 https://micronaut-projects.github.io/micronaut-data/latest/guide/#graalJPA

在 graal 构建的写入阶段,我收到以下错误:

等等,Hibernate 尝试实例化的多个记录器。

这是一个示例,在我连接到数据库并实现 CRUD 的真实项目中发生了相同的错误。在示例中,为了重现,我没有添加这些。

0 投票
2 回答
242 浏览

aws-lambda - MICRONAUT_FUNCTION_NAME 环境变量在 AWS lambda 中不起作用

我想在我们的应用程序中编写多个函数,而不是将配置放入 application.yml 我在 AWS lambda 中使用 MICRONAUT_FUNCTION_NAME 环境变量,但我一直收到错误

有谁知道我错过了什么或者多个功能不可能?

0 投票
0 回答
369 浏览

amazon-web-services - 带有 DynamoDB 和 Graal 的 Micronaut 无服务器应用程序 java.lang.NoClassDefFoundError:无法初始化类 com.amazonaws.ClientConfiguration

我正在开发一个在 AWS lambda 上运行并使用 Micronaut 和 GraalVM 的应用程序。我开始使用AWSLabs GitHub - PetStore - Micronaut中 AWS 提供的示例。如果我只是克隆这个 repo 并使用 SAM 模型,我可以正常运行应用程序,但是如果我尝试添加 DynamoDB 依赖项,我得到了java.lang.NoClassDefFoundError: Could not initialize class com.amazonaws.ClientConfiguration

这是我正在使用的 DynamoDB 依赖项:compile ('com.amazonaws:aws-java-sdk-dynamodb:1.11.762')

我尝试了很多东西,更改 DynamoDB 版本,添加 AWSSdk 核心依赖项,将此类添加到reflect.json文件中,使用 JDK 8、JDK 11,但它们都不起作用。

我不知道我需要做什么才能让 DynamoDB 与 Micronaut 和 GraalVM 一起工作。

我正在使用 IntelliJ,通过 IDE 我可以看到这个类在我的类路径中,没有编译错误。

谢谢你。

0 投票
0 回答
194 浏览

amazon-cloudwatch - Micronaut:记录器未出现在 AWS Cloudwatch 和 Java 应用程序中未在本地运行

我有一个Micronaut必须通过以下版本更改升级的微服务:

  1. Micronaut bom版本:1.3.11.3.4
  2. Gradle:5.1.15.3
  3. Graal VM19.2.1

我正在使用buildspec.yml下面给出的构建本机图像:

example-function.zip部署到AWS Lambda并通过测试时,APIGateway我能够获得响应,但无法查看我在CloudWatch Logs.

我已经按照这篇文章https://docs.aws.amazon.com/kinesisanalytics/latest/java/cloudwatch-logs-writing.html#cloudwatch-logs-writing-slf4j将 Logger 依赖项添加到我的build.gradle文件中,但日志是仍然没有出现在 AWS 上。

此外,我无法使用以下命令在本地运行应用程序:gradlew run -t classes. 构建成功,但运行命令不像端点postman所说的那样工作Could not get any response

我不确定问题是什么。任何帮助是极大的赞赏。

0 投票
1 回答
966 浏览

amazon-web-services - 如何在作为 AWS Lambda 代理的一部分的 Micronaut API 实施中获取“requestContext”数据

在 AWS Lambda 代理(作为使用 Cognito 授权的 API 网关中的集成)中,我想在处理请求时获取用户 ID。Lambda 是使用 Micronaut 用 Ja​​va 编写的。同一个 Lambda 被用作多个 API 端点的集成。

我发现 Cognito 用户 ID 包含在提供给 Lambda 处理程序的代理数据的 requestContext 条目中:

当通过 API 调用 Lambda 并作为 Cognito 用户进行身份验证时,inputSteam 看起来像这样(省略了一些细节/更改为示例值,并且 Cognito 用户 ID 被标记为// !!!):

然后,MicronautLambdaContainerHandler 在幕后做了很多我还不完全理解的事情;但是,最后我可以在控制器类中使用 micronaut 的注释来定义 API 端点:

这个例子是一个请求处理程序GET /test

HttpRequest 对象包含原始请求中的所有内容,例如标头和内容,但不包含 AWS 网关添加到其中的信息,例如身份验证的结果。

我现在如何访问它,特别是 requestContext,它是通过其输入传递给 Lambda 的?我在这里遗漏了一些难题。

0 投票
0 回答
28 浏览

graphql - 与 micronaut-function-aws-api-proxy 一起使用时,来自 micronaut-graphql 的无效转义 json 响应

graphql 端点返回以下无效的 json 响应:

正确的应该是:

11 天前,我创建了一个 github 存储库并在https://github.com/micronaut-projects/micronaut-aws/issues/392提出了一个问题,到目前为止没有人回应,因此我在这里发布了这个问题。

任何人都面临类似的问题?

提前感谢您的帮助。

0 投票
1 回答
283 浏览

java - Micronaut FunctionInitializer 覆盖应用程序属性

我想以编程方式覆盖 application.yml 文件中的数据源属性,但不使用 bean 创建的事件侦听器。有没有办法做到这一点。就像使用属性创建自定义应用程序上下文一样。

我已将以下方法用于 Micronaut API 网关代理。

我们可以用 FunctionInitializer 做类似的事情吗?

0 投票
0 回答
85 浏览

micronaut - 运行 MicronautTest 时如何将应用程序上下文加载到 MicronautLambdaContainerHandler 中?

运行 MicronautTest 时如何将应用程序上下文加载到 MicronautLambdaContainerHandler 中?

我看到我可以将 ApplicationContext 注入到我的测试中,并且我可以看到 MicronautLambdaContainerHandler 在构造过程中需要一个 ApplicationContextBuilder ,但我不明白如何协调这两件事?

是否可以为 MicronautLambdaContainerHandler 提供已经运行的测试上下文?是否可以从测试上下文中获取构建器?

0 投票
0 回答
297 浏览

amazon-web-services - 调用用 Micronaut 编写的 AWS lambda 时出现 NoSuchBeanException

我使用https://www.raywenderlich.com/5777183-write-an-aws-lambda-function-with-kotlin-and-micronaut作为指南在 Kotlin 中编写了一个简单的 lambda。我的测试在本地通过。

但是,在将 shadow 生成的 fat jar 上传到 AWS 时,运行时设置为Java 11 (Corretto)并使用处理程序执行它io.micronaut.function.aws.MicronautRequestStreamHandler,我得到以下异常:

我错过了什么?

项目结构如下:

重要代码:

0 投票
1 回答
459 浏览

java - Micronaut GraalVM Native Image:Lambda 失败并出现错误“错误:fork/exec /var/task/bootstrap:没有这样的文件或目录”

我尝试通过克隆完整示例并将其部署到 AWS Lambda 中引导“Micronaut Function as GraalVM Native Image”示例(此处为文本指南)。每次调用 lambda 都会失败并出现相同的错误(来自 CloudWatch Logs):

我检查了一个 ZIP 存档,其中包含通过执行生成的代码./deploy.sh(作为函数代码上传到 Lambda 函数),并且bootstrap文件位于 ZIP 文件中。

重现步骤

我没有任何特别的说明,我只是简单地举了一个完整的例子,按照有关构建本机映像的说明,然后部署一个构建的 ZIP 文件。

我想知道是否可以使用 GraalVM 原生映像部署 Micronaut Serverless 功能,或者该功能是否已损坏。我尝试使用 GraalVM Native Image 部署 Micronaut 应用程序(遵循本指南),它对我来说效果很好。

提前感谢您的帮助。