- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我对 AWS SQS 服务比较陌生。我编写了一些代码来包装 Amazon SQS api。
我能够使用创建的队列执行基本功能,但尽管如此(事实上,我一直在使用这段代码,没有任何问题,而且我正在创建 JUnit 测试作为一种形式),我的 JUnit 测试失败了,因为一个错误对我来说毫无意义。
我使用 AWS 管理控制台创建了一个名为 SerenaQForTest 的队列。当我查看 AWS 控制台时,我可以看到我创建的队列已列出。我已将队列的权限设置为对所有人开放。我正在用 Java 编码。
当我尝试与队列交互时,我收到错误代码为 AWS.SimpleQueueService.NonExistentQueueerror 的 AmazonServiceException。
这是我的代码。
在 Junit 类中:
/**
* Prefix for queues used to run junit tests.
*/
private static final String TESTQ = "SerenaForTest";
/**
* Ensures that the queue exists.
*/
@Test
public void testExists() {
System.out.println("JUnit Test EXISTS.");
CloudSQS cloudsqs = new CloudSQS();
// this queue does exist and i can see it through the aws management console in sqs
assertTrue(cloudsqs.exists(TESTQ));
// this queue does not exist.
assertTrue(cloudsqs.exists("thisQDoesNotExist") == false);
}
/**
* Determines if the queue exists or not.
*
* @param qName
* , name of the queue to determine existence of.
* @return boolean, true if the queue exists; false otherwise.
*/
public boolean exists(final String qName) {
boolean retVal = false;
try {
// create a request for the url of qName
GetQueueUrlRequest getQueueUrlRequest = new GetQueueUrlRequest(qName);
String addy = sqs.getQueueUrl(getQueueUrlRequest).getQueueUrl();
System.out.println(qName + " url : " + addy);
if (addy != null) {
// get all queues on sqs
ListQueuesResult queues = sqs.listQueues();
// for each url,
for (String url : queues.getQueueUrls()) {
// System.out.println("Comparing " + addy + " and " + url);
if (url.equalsIgnoreCase(addy)) {
System.out.println("Queue exists.");
retVal = true;
break;
}
}
} else {
System.out.println("Queue " + qName + " does not exist.");
}
} catch (AmazonServiceException ase) {
System.err.println("ERR: AmazonServiceException. Error code: " + ase.getErrorCode());
} catch (AmazonClientException ace) {
System.err.println("ERR: AmazonClientException.");
ace.printStackTrace();
} catch (Exception e) {
System.err.println("ERR: Regular Old Error.");
e.printStackTrace();
}
return retVal;
}
最佳答案
您确定您创建的队列与您的 Java SQS 客户端所在的区域位于同一区域吗?适用于 Java 的 AWS 开发工具包中的默认区域是 US-East-1。您可以通过查看右上角的管理控制台来验证队列的区域。
关于java - 访问现有 SQS 队列时抛出 AWS.SimpleQueueService.NonExistentQueue 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18157167/
我在 lambda 中有以下代码: entries = [ { "Id": str(index), "MessageAttribut
我正在构建一个无服务器应用程序,它在资源中定义了一个 SQS 队列,如下所示: resources: Resources: TheQueue: Type: "AWS:SQS:Q
我正在使用无服务器框架来使用来自 SQS 的消息。一些发送到队列的消息不会被消费。他们直接进入飞行中的 SQS 状态,然后从那里进入我的死信队列。当我查看我的消费者日志时,我可以看到它消费并成功处理了
我们的亚马逊 SQS 队列没有收到来自亚马逊 MWS 的 AnyOfferChanged 通知消息。 我们发送一个测试通知,当我们收到通知时,它会被发送到队列并可用。 我们已经设置了两个 AWS 账户
我想知道最后一条消息何时发布到 SQS 队列。 查看队列属性(通过 CLI 或其他方式),我看不到任何合适的内容 - 只能看到队列属性最后一次修改的时间。 如果有什么技巧可以找到这个(在不了解客户的情
我正在使用无服务器框架来使用来自 SQS 的消息。一些发送到队列的消息不会被消费。他们直接进入飞行中的 SQS 状态,然后从那里进入我的死信队列。当我查看我的消费者日志时,我可以看到它消费并成功处理了
我们的亚马逊 SQS 队列没有收到来自亚马逊 MWS 的 AnyOfferChanged 通知消息。 我们发送一个测试通知,当我们收到通知时,它会被发送到队列并可用。 我们已经设置了两个 AWS 账户
我正在使用 Amazon SQS 队列向外部系统发送通知。 如果使用 SQS 时 HTTP 请求失败 SendMessage ,我不知道消息是否已排队。我的默认策略是重试将消息发布到队列,但存在两次发
来自 SNS FAQ ,我知道 SNS 到 SQS 有重试策略,但是他们是否保证至少向 SQS 传递一条消息? 请给官方报价。 最佳答案 见 https://aws.amazon.com/sqs/fa
我是否可以使用 Amazon PHP SDK 根据消息 ID 从 SQS 队列中获取消息?我是否必须获取队列中的所有消息,然后在我的服务器上对其进行过滤? 我的服务器收到一个带有队列消息 ID 的 S
我意外删除了 Amazon SQS 中的队列。有没有办法检索/撤消删除? 最佳答案 不,队列(以及队列上的任何消息)将永远消失。 如果您使用相同名称重新创建队列,它将保留相同的 ARN 和 URL。希
我的大多数 Celery 任务的 ETA 都长于 Amazon SQS 定义的最大可见性超时。 celery documentation说: This causes problems with ETA
我正在实现 SQS fifo 队列。我必须使用 cloudformation 模板来实现。 当我放大推送时,我得到 错误API:sqs:CreateQueue 对资源 https://sqs.us-e
我有一个代码,我需要将消息发送到现有的 sqs 队列。 我在 aws-cdk 中有这段代码。但这是行不通的。没有添加访问权限。 const sqsQ = sqs.Queue.fromQueueArn(
我很想了解 GCP 的 PubSub 的实现。尽管 Pubsub 似乎指向遵循发布-订阅设计模式,但它似乎比 AWS SNS(使用发布-订阅模型)更接近 AWS 的 SQS(队列)。为什么认为这是,G
序言:我正在尝试为我认为是一个非常常见的用例提出一个建议,我想使用 Amazon 的 SWF 和 SQS 来实现我的目标。可能还有其他服务可以更好地匹配我正在尝试做的事情,因此,如果您有任何建议,请随
AWS SQS 是否可以通过某种方式调用我的 REST API?基本上,一旦消息被推送到 AWS SQS,我就想听到它并执行所需的操作。我可以安排一个每秒可以提取消息的监听器,但这不是一个优化解决方案
我已配置 SQS 监听器来使用消息列表中的消息,但一次只收到一条消息,并收到错误,因为无法将 model.StudentData 转换为 java.util.ArrayList 的实例 我的代码是:-
使用 Amazon Simple Queue Service 发送消息需要多长时间? 另外,我想知道在 Amazon SQS 中一分钟内会发送多少条消息? 最佳答案 截至 2007 年,at leas
我正在使用 Amazon-SQS,我尝试从队列中检索大约数量的属性,但响应为空 我正在使用 C# 以下是代码: GetQueueAttributesRequest attReq = new GetQu
我是一名优秀的程序员,十分优秀!