问题标签 [spring-cloud-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 投票
2 回答
2846 浏览

aws-sdk - 在 AWS 之外使用 spring-cloud-starter-aws

我试图将 spring-cloud-starter-aws 用于一个目的 - 以便我的 ec2 实例可以使用逻辑名称而不是物理名称访问其 elasticache 节点。我的问题是我想在没有 AWS 的本地上下文中运行这个二进制文件(不使用 elasticache 节点),但我无法禁用。我得到一个异常:连接到服务端点时发生 IOException http://169.254.169.254/latest/dynamic/instance-identity/document:。例外是:

我认为这是因为 aws sdk 正在调用我没有在本地上下文中运行的实例端点。我怎样才能禁用它?

0 投票
1 回答
403 浏览

spring-integration - Amazon SQS 出站通道适配器不会初始化

我正在尝试启动正在写入 SQS 队列的 spring-int-aws 流,但不会加载上下文。

做了一些研究:在 SQSMessageHandler (v 1.0.0-RELEASE) 内部,它尝试使用已声明的 AmazonSQS 对象创建 QueueMessagingTemplate,但是 QueueMessagingTemplate (v1.1.3 Release) 它需要构造函数中的 AmazonSQSAsync 对象。由于 spring-cloud-aws 使用子接口,看来 spring-int-aws 也应该如此。

我是否遗漏了什么,或者这应该是针对该项目提出的问题?

0 投票
1 回答
591 浏览

spring-integration - spring-integration-aws 流上的消息属性导致 SQS 消息循环,过滤它们的最佳位置在哪里?

因此,我创建了几个短流程,使用 SQS 作为处理段之间的后备存储。基本流程是:

但是,我遇到了几个问题......“SQS Queue1 MDCA”使用 AWS 特定的消息头从队列中读取消息,这些消息头最终到达写入 Queue2 的出站适配器。这些消息标头指定 AWS_queue 名称、aws 消息 ID 等内容,这些内容会导致消息重新传递到 queue1。

一旦我过滤掉这些标头(我使用了一个简单的自定义转换器来测试它),outbound-channel-adapter 的属性就会按预期工作,并且 QueueMessagingTemplate 将消息传递到正确的队列。

所以,我对 spring-int 和 spring-aws 专家的问题是,“你认为过滤任何预先存在的 SQS 标头的合适位置是在哪里,以便它们不会被任何下游 SQS 处理拾取?” 在我看来,您想在 SQSHandler 中执行此操作,因为它们可能与任何基本 spring-aws-messaging 调用相关。

附带说明一下,从 SQS ICA 创建一条消息,并在流中创建一个 object-to-json 转换器,它还导致创建 12 个消息标头,这比 SQS 允许的多 2 个(导致消息传递失败)。

带有略微修改标题以保护无辜队列的示例消息...正如您所见,aws_queue、目的地等仍在从“wrench_workflow-mjg”读取的消息中,因此当尝试传递到下一个队列时,那些标头覆盖了 spring-int xml 配置中的配置,并且从未传递到下一个队列。该消息一直在 SQS 队列“wrench_workflow-mjg”中循环(在修复了 10 多个属性问题之后)。

如有必要,我可能会举一个例子,但我希望你明白我在没有什么。

0 投票
0 回答
237 浏览

spring-cloud-aws - Spring AWS S3:访问 s3 对象元数据

是否可以使用 spring-aws-s3 库获取对象元数据?我需要访问“ETag”标头,但似乎 SimpleStorageResource 没有公开访问 objectMetadata 的方式,并且 ResourceLoader 接口没有公开连接。

我有哪些选择?直接使用S3 SDK?

0 投票
1 回答
885 浏览

amazon-web-services - 如何覆盖 SqsConfiguration 以返回 SimpleMessageListenerContainer 的自定义实现

在我们的 Spring Boot 应用程序中,我们使用 Spring Cloud AWS:

  • spring-cloud-starter-aws
  • spring-cloud-aws-自动配置
  • spring-cloud-aws 消息传递

从 SQS 队列接收消息。但是,即使队列不可访问,我们也需要能够启动应用程序(即“ (服务:AmazonSQS;状态代码:403;错误代码:AccessDenied ”)。为了做到这一点,我们需要能够覆盖org.springframework.cloud.aws.messaging.config.annotation.SqsConfiguration类,并提供我们自己的org.springframework.cloud.aws.messaging.listener.SimpleMessageListenerContainer.

这样做的正确方法是什么,而不是破坏我们现有代码中的自动装配?

0 投票
0 回答
379 浏览

spring-boot - 为什么固定资源名称 AWSEBRDSDatabase 不适用于我的 Elastic Beanstalk/Spring Cloud AWS 应用程序?

我有一个使用 Spring Cloud AWS 的 Spring Boot 应用程序。我正在使用 Amazon RDS 数据库在 Elastic Beanstalk 上部署应用程序。

根据文档,Elastic Beanstalk 为您在部署应用程序时为您创建的 AWS 资源提供了固定的资源名称。

axxt7bi97gbjy4这意味着我应该能够使用 Elastic Beanstalk 资源名称,而不是通过其实际实例 ID(类似于 )来引用 RDS 数据库AWSEBRDSDatabase。我想要这样做的原因是,克隆 Elastic Beanstalk 环境实际上可以在没有手动干预的情况下配置正确的数据库。

问题:

当我使用 Elastic Beanstalk 固定资源名称配置我的 Spring Boot/Spring Cloud 应用程序的数据源时AWSEBRDSDatabase...

...我得到以下异常...

当我使用对特定 RDS 实例的引用来配置数据源时:

...一切都很好。

如何修改我的环境以显示 Elastic Beanstalk 固定资源名称AWSEBRDSDatabase

更新

我将以下内容添加到我的 .ebextensions 并使用 EB CLI 创建了一个新环境。没有变化,同样的错误。AWSEBRDSDatabase 资源不可用。

0 投票
1 回答
1255 浏览

memcached - 使用 spring aws 云的 Elasticache

我正在为我的 spring 应用程序实现 ElastiCache(使用 memcached)。从这里我可以看到这可以使用 spring cloud aws 来完成,但我在任何地方都找不到合适的步骤。谁能提供一些示例实现或教程?

0 投票
1 回答
247 浏览

java - Spring Cloud AWS cglib 问题

我有一个现有的 Spring Boot 项目 (1.4.3.RELEASE),并且正在尝试使用 Cloud AWS 项目添加一些功能。但是,在实例化我的 @Configuration 类之一时,仅将依赖项添加到 gradle 构建文件会导致明显的 cglib 问题。

将以下行添加到 gradle build 并运行应用程序:

原因:

它抱怨在我的 @Configuration 类中找不到非空构造函数,但最新版本的 Spring 支持这些构造函数。如果我删除依赖项,应用程序可以正常启动。如何在不重新配置我的课程的情况下解决这个问题?等待 Cloud AWS 的更新版本?

0 投票
2 回答
4061 浏览

java - 春季云AWS SQS监听器问题

我正在准备从 Amazon SQS 监听的演示程序。下面是我的代码。

xml配置

用户服务监听器.java

我在 SQS 队列上放了 2 条消息。当我尝试使用此演示程序获取消息时,消息在我的 AWS 控制台中显示 Messages_in_flight 列。但消息没有到达我的 sqsListener 方法,几分钟后消息显示到 AWS 控制台中的 Messages_available 列。

以下是我运行程序时遇到的异常。

那么,如果有任何线索,出了什么问题?

0 投票
0 回答
581 浏览

spring-boot - 尝试使用 spring cloud aws (SES) 发送电子邮件时出错

我正在尝试使用 spring-cloud-aws 发送电子邮件。波纹管相关的片段:

应用程序属性:

邮件发送服务:

应用:

在我的 POM 中,我正在使用:

当我运行此代码时,我收到以下错误:

原因:org.springframework.mail.MailSendException:失败消息:com.amazonaws.AmazonServiceException:我们计算的请求签名与您提供的签名不匹配。检查您的 AWS 秘密访问密钥和签名方法。有关详细信息,请参阅服务文档。

此请求的规范字符串应该是 'POST /

amz-sdk-invocation-id:3a35628a-ca4d-5d3f-666a-1bd596b25a0 amz-sdk-retry:3/230/485 主机:email.us-east-1.amazonaws.com 用户代理:aws-sdk-java /1.11.18 Windows_10/10.0 Java_HotSpot(TM)_64-Bit_Server_VM/25.92-b14/1.8.0_92 x-amz-date:20170201T113844Z

amz-sdk-invocation-id;amz-sdk-retry;主机;用户代理;x-amz-date c87e0a9aed59cebfbf123b9a248c1bece98e17c59ab38486fef0220d1f86da'

The String-to-Sign should have been 'AWS4-HMAC-SHA256 20170201T113844Z 20170201/us-east-1/ses/aws4_request daa69ea00e5c19ce5123fdbfe0c335d2678516925dc2042f7627d9660520ef' (Service: AmazonSimpleEmailService; Status Code: 403; Error Code: SignatureDoesNotMatch; Request ID: fd73a86-e872 -11e6-a68d-7b50079b6d0)

我已经三次检查了钥匙。有任何想法吗?