问题标签 [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 投票
1 回答
106 浏览

aws-lambda - 如何使用 Micronaut Lambda 应用程序原生映像记录 AWSRequestId

根据有关记录 AWSRequestId 的本指南,我可以添加%X{AWSRequestId}我的 logback.xml 以在我的 lambda 函数上打印请求 ID。在示例中,在 MDC 上添加此键的方法是populateMappingDiagnosticContextValuesclass MicronautRequestHandler。但是由于我的 lambda 函数有两个端点,所以我将它创建为 Application 类型,并且它说它使用MicronautLambdaHandler作为处理程序类。 指导

我所做的是创建了扩展MicronautLambdaHandler并添加了populateMappingDiagnosticContextValues方法的自定义处理程序。

logback.xml

在 lambda 设置中,我将处理程序指向了我的自定义处理程序,并且应用程序正在运行。除了日志没有显示 AWSRequestId。此功能是否仅适用于MicronautRequestHandler课堂而不适用于MicronautLambdaHandler

我还尝试了使用 log4j2 记录请求 ID的 aws指南。但是在构建 GraalVM 原生镜像时 log4j 不起作用,这就是我坚持使用 logback 的原因。

0 投票
1 回答
84 浏览

micronaut - Micronaut Lambda 原生图像未读取自定义处理程序

默认情况下,Micronaut 的处理程序是 class MicronautLambdaHandler。但是在 Micronaut 指南上它说

您将与之交互的主要 API 是 AbstractMicronautLambdaRuntime。一个抽象类,您可以扩展它来创建您的自定义运行时 mainClass。

所以我尝试创建一个自定义处理程序和运行时,基本上复制现有的MicronautLambdaHandlerMicronautLambdaRuntime

自定义 MyRuntime

仅返回 null 的自定义 MyHandler

然后在我的 Lambda 函数上,我将方法处理程序设置为example.micronaut.MyHandler,运行时设置为Custom Runtime on Amazon Linux 2

在测试我的 Lambda 时,它不会读取我的自定义处理程序。它始终运行默认值MicronautLambdaHandler

此外,奇怪的是,即使我将方法处理程序设置为一些随机单词,如this.is.not.a.handler,它仍然MicronautLambdaHandler默认运行。

有没有办法按照指南的建议为 Micronaut Lambda 创建我的自定义处理程序作为本机图像?还是我真的仅限于使用默认值MicronautLambdaHandler

0 投票
1 回答
107 浏览

micronaut - Micronaut AWS lambda 应用程序“找不到类:io.micronaut.function.aws.proxy.MicronautLambdaHandler”

我创建了一个 Micronaut AWS lambda 应用程序。并上传了shadowzip 文件。当我测试 lambda 函数时,我得到

找不到类:io.micronaut.function.aws.proxy.MicronautLambdaHandler

我做了一个./gradlew assemble然后上传了影子 zip 文件。在 lambda 运行时设置中,我将处理程序添加为io.micronaut.function.aws.proxy.MicronautLambdaHandler

以下是我的build.gradle

我错过了什么吗?出于理智,我打开zip文件以检查上述类是否存在并且确实存在。顺便说一句:我的 zip 文件的大小是19.2MB. 拉链的大小是否重要,如果是,解决方法是什么?

0 投票
0 回答
11 浏览

aws-lambda - 即使数据及时响应,ReadTimeoutException

RxHttpClient 正在抛出 ReadTimeoutException,即使服务器在 AWS-Lambda 中的毫秒内响应数据,这种行为也不一致。谁能帮我找出根本原因?

0 投票
0 回答
135 浏览

kotlin - 使用 Micronaut 和 Kotlin 将消息发布到 AWS SNS

我正在尝试使用 Micronaut 和 Kotlin 将对象列表发送到 SNS 主题。

按照文档https://micronaut-projects.github.io/micronaut-aws/latest/guide/#sdkv2

  1. 我补充说implementation("io.micronaut.aws:micronaut-aws-sdk-v2")
  2. accessKeyId, secretKey, sessionToken and region到应用程序 yml 文件。
  3. 添加implementation("software.amazon.awssdk:sns") 之后你应该有这些bean:
  • software.amazon.awssdk.services.sns.SnsAsyncClientBuilder
  • software.amazon.awssdk.services.sns.SnsAsyncClient 我假设异步调用...

现在还不清楚我还应该做什么来创建客户端以进行调用以发布消息。

我倾向于使用NettyURLConnection呢?
这里的下一步是什么?

我还找到了另一篇文章,但他们使用 Java https://agorapulse.github.io/micronaut-aws-sdk/#_simple_notification_service_sns
它使用另一个包

有没有如何做到这一点的例子?你能用 Micronaut 做到这一点吗?

0 投票
1 回答
191 浏览

java - 如何在 micronaut 应用程序中禁用 http 服务器

我有一个 micronaut 应用程序,它应该在一个容器中运行 SQS 侦听器,在另一个容器中运行常规 HTTP 服务器。如何通过配置实现这一点?我可以使用以下应用程序属性来启用/禁用侦听器:

如何启用/禁用 Web 服务器?

PS:我能够在 Spring Boot 中使用spring.main.web-application-type=NONE. 但我无法在 micronaut 中找到相关设置。

0 投票
1 回答
42 浏览

java - 通过 Postman 在本地调试 Java REST API 时的 AWS 身份验证

我最近接管了一个现有的 Java REST API(用 Micronaut 编写)。该 API 旨在部署在 AWS 上,使用 Lambda 运行“无服务器”,并使用 Cognito 进行身份验证。

对于开发人员,我显然只想在本地运行 API 并通过 Postman 请求进行调试。据我了解,Cognito 基本上不在此处。但是,控制器仍在使用主体名称进行某些操作,我想为其提供有效数据。

假设我的控制器有如下方法:

在运行时java.security.PrincipalAwsProxySecurityContext如何在 Postman 中提供有效的令牌/身份验证标头,以便getName返回我选择的字符串?如果不使用真正的 Cognito 就无法做到这一点,我会感到惊讶,因为一切都在本地运行。