问题标签 [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.
aws-lambda - 如何使用 Micronaut Lambda 应用程序原生映像记录 AWSRequestId
根据有关记录 AWSRequestId 的本指南,我可以添加%X{AWSRequestId}
我的 logback.xml 以在我的 lambda 函数上打印请求 ID。在示例中,在 MDC 上添加此键的方法是populateMappingDiagnosticContextValues
class MicronautRequestHandler
。但是由于我的 lambda 函数有两个端点,所以我将它创建为 Application 类型,并且它说它使用MicronautLambdaHandler
作为处理程序类。
我所做的是创建了扩展MicronautLambdaHandler
并添加了populateMappingDiagnosticContextValues
方法的自定义处理程序。
logback.xml
在 lambda 设置中,我将处理程序指向了我的自定义处理程序,并且应用程序正在运行。除了日志没有显示 AWSRequestId。此功能是否仅适用于MicronautRequestHandler
课堂而不适用于MicronautLambdaHandler
?
我还尝试了使用 log4j2 记录请求 ID的 aws指南。但是在构建 GraalVM 原生镜像时 log4j 不起作用,这就是我坚持使用 logback 的原因。
micronaut - Micronaut Lambda 原生图像未读取自定义处理程序
默认情况下,Micronaut 的处理程序是 class MicronautLambdaHandler
。但是在 Micronaut 指南上它说
您将与之交互的主要 API 是 AbstractMicronautLambdaRuntime。一个抽象类,您可以扩展它来创建您的自定义运行时 mainClass。
所以我尝试创建一个自定义处理程序和运行时,基本上复制现有的MicronautLambdaHandler
和MicronautLambdaRuntime
自定义 MyRuntime
仅返回 null 的自定义 MyHandler
然后在我的 Lambda 函数上,我将方法处理程序设置为example.micronaut.MyHandler
,运行时设置为Custom Runtime on Amazon Linux 2
在测试我的 Lambda 时,它不会读取我的自定义处理程序。它始终运行默认值MicronautLambdaHandler
。
此外,奇怪的是,即使我将方法处理程序设置为一些随机单词,如this.is.not.a.handler
,它仍然MicronautLambdaHandler
默认运行。
有没有办法按照指南的建议为 Micronaut Lambda 创建我的自定义处理程序作为本机图像?还是我真的仅限于使用默认值MicronautLambdaHandler
?
micronaut - Micronaut AWS lambda 应用程序“找不到类:io.micronaut.function.aws.proxy.MicronautLambdaHandler”
我创建了一个 Micronaut AWS lambda 应用程序。并上传了shadow
zip 文件。当我测试 lambda 函数时,我得到
找不到类:io.micronaut.function.aws.proxy.MicronautLambdaHandler
我做了一个./gradlew assemble
然后上传了影子 zip 文件。在 lambda 运行时设置中,我将处理程序添加为io.micronaut.function.aws.proxy.MicronautLambdaHandler
以下是我的build.gradle
我错过了什么吗?出于理智,我打开zip
文件以检查上述类是否存在并且确实存在。顺便说一句:我的 zip 文件的大小是19.2MB
. 拉链的大小是否重要,如果是,解决方法是什么?
aws-lambda - 即使数据及时响应,ReadTimeoutException
RxHttpClient 正在抛出 ReadTimeoutException,即使服务器在 AWS-Lambda 中的毫秒内响应数据,这种行为也不一致。谁能帮我找出根本原因?
kotlin - 使用 Micronaut 和 Kotlin 将消息发布到 AWS SNS
我正在尝试使用 Micronaut 和 Kotlin 将对象列表发送到 SNS 主题。
按照文档https://micronaut-projects.github.io/micronaut-aws/latest/guide/#sdkv2
- 我补充说
implementation("io.micronaut.aws:micronaut-aws-sdk-v2")
。 accessKeyId, secretKey, sessionToken and region
到应用程序 yml 文件。- 添加
implementation("software.amazon.awssdk:sns")
之后你应该有这些bean:
software.amazon.awssdk.services.sns.SnsAsyncClientBuilder
software.amazon.awssdk.services.sns.SnsAsyncClient
我假设异步调用...
现在还不清楚我还应该做什么来创建客户端以进行调用以发布消息。
我倾向于使用Netty但URLConnection呢?
这里的下一步是什么?
我还找到了另一篇文章,但他们使用 Java https://agorapulse.github.io/micronaut-aws-sdk/#_simple_notification_service_sns
它使用另一个包
有没有如何做到这一点的例子?你能用 Micronaut 做到这一点吗?
java - 如何在 micronaut 应用程序中禁用 http 服务器
我有一个 micronaut 应用程序,它应该在一个容器中运行 SQS 侦听器,在另一个容器中运行常规 HTTP 服务器。如何通过配置实现这一点?我可以使用以下应用程序属性来启用/禁用侦听器:
如何启用/禁用 Web 服务器?
PS:我能够在 Spring Boot 中使用spring.main.web-application-type=NONE
. 但我无法在 micronaut 中找到相关设置。
java - 通过 Postman 在本地调试 Java REST API 时的 AWS 身份验证
我最近接管了一个现有的 Java REST API(用 Micronaut 编写)。该 API 旨在部署在 AWS 上,使用 Lambda 运行“无服务器”,并使用 Cognito 进行身份验证。
对于开发人员,我显然只想在本地运行 API 并通过 Postman 请求进行调试。据我了解,Cognito 基本上不在此处。但是,控制器仍在使用主体名称进行某些操作,我想为其提供有效数据。
假设我的控制器有如下方法:
在运行时java.security.Principal
。AwsProxySecurityContext
如何在 Postman 中提供有效的令牌/身份验证标头,以便getName
返回我选择的字符串?如果不使用真正的 Cognito 就无法做到这一点,我会感到惊讶,因为一切都在本地运行。