List of usage examples for com.amazonaws.services.sqs.model GetQueueAttributesRequest GetQueueAttributesRequest
public GetQueueAttributesRequest()
From source file:SimpleQueueService.java
License:Open Source License
public static int getNumberOFTasksRunning() { // returns the number of amazon tasks running AmazonSQSClient sqs = new AmazonSQSClient(new ClasspathPropertiesFileCredentialsProvider()); CreateQueueRequest createQueueRequest = new CreateQueueRequest("taskQueue"); String myQueueUrl = sqs.createQueue(createQueueRequest).getQueueUrl(); GetQueueAttributesRequest request = new GetQueueAttributesRequest(); request = request.withAttributeNames("ApproximateNumberOfMessages"); request = request.withQueueUrl(myQueueUrl); Map<String, String> attrs = sqs.getQueueAttributes(request).getAttributes(); // get the approximate number of messages in the queue int sizeOfMessages = Integer.parseInt(attrs.get("ApproximateNumberOfMessages")); System.out.println("sizeOfMessages " + sizeOfMessages); return sizeOfMessages; }
From source file:awslabs.lab31.SolutionCode.java
License:Open Source License
@Override public String getQueueArn(AmazonSQSClient sqsClient, String queueUrl) { // TODO: Construct a GetQueueAttributesRequest for the specified queue and for the attribute named "QueueArn". GetQueueAttributesRequest getQueueAttributesRequest = new GetQueueAttributesRequest().withQueueUrl(queueUrl) .withAttributeNames("QueueArn"); // TODO: Submit the request using the getQueueAttributes method of the sqsClient object. GetQueueAttributesResult getQueueAttributesResult = sqsClient.getQueueAttributes(getQueueAttributesRequest); // TODO: Return the QueueArn attribute value. return getQueueAttributesResult.getAttributes().get("QueueArn"); }
From source file:awslabs.lab31.StudentCode.java
License:Open Source License
/** * Query the SQS service for the ARN of the specified queue and return it. Hint: Use the getQueueAttributes() method * of the client object. The attribute to request is named QueueArn. * /*from ww w. ja va 2s . c o m*/ * @param sqsClient The SQS Client object. * @param queueUrl The URL for the queue to inspect. * @return A string containing the ARN for the queue. */ @Override public String getQueueArn(AmazonSQSClient sqsClient, String queueUrl) { GetQueueAttributesRequest request = new GetQueueAttributesRequest().withAttributeNames("QueueArn") .withQueueUrl(queueUrl); GetQueueAttributesResult result = sqsClient.getQueueAttributes(request); return result.getAttributes().get("QueueArn"); }
From source file:com.connexience.server.model.archive.glacier.SetupUtils.java
License:Open Source License
public static SQSInfo setupSQS(String accessKey, String secretKey, String domainName, String vaultName) { SQSInfo sqsInfo = null;/* w w w. ja v a 2 s. co m*/ try { AWSCredentials awsCredentials = new BasicAWSCredentials(accessKey, secretKey); AmazonSQSClient amazonSQSClient = new AmazonSQSClient(awsCredentials); amazonSQSClient.setEndpoint("https://sqs." + domainName + ".amazonaws.com/"); String queueName = vaultName + "-inkspot_glacier-queue"; CreateQueueRequest createQueueRequest = new CreateQueueRequest(); createQueueRequest.withQueueName(queueName); CreateQueueResult createQueueResult = amazonSQSClient.createQueue(createQueueRequest); if (createQueueResult != null) { String queueURL = createQueueResult.getQueueUrl(); GetQueueAttributesRequest getQueueAttributesRequest = new GetQueueAttributesRequest(); getQueueAttributesRequest.withQueueUrl(queueURL); getQueueAttributesRequest.withAttributeNames("QueueArn"); GetQueueAttributesResult getQueueAttributesResult = amazonSQSClient .getQueueAttributes(getQueueAttributesRequest); if (getQueueAttributesResult != null) { String queueARN = getQueueAttributesResult.getAttributes().get("QueueArn"); Statement sqsStatement = new Statement(Effect.Allow); sqsStatement.withPrincipals(Principal.AllUsers); sqsStatement.withActions(SQSActions.SendMessage); sqsStatement.withResources(new Resource(queueARN)); Policy sqsPolicy = new Policy(); sqsPolicy.withStatements(sqsStatement); Map<String, String> sqsAttributes = new HashMap<>(); sqsAttributes.put("Policy", sqsPolicy.toJson()); SetQueueAttributesRequest setQueueAttributesRequest = new SetQueueAttributesRequest(); setQueueAttributesRequest.withQueueUrl(queueURL); setQueueAttributesRequest.withAttributes(sqsAttributes); amazonSQSClient.setQueueAttributes(setQueueAttributesRequest); sqsInfo = new SQSInfo(queueARN, queueURL); } else logger.warn("Unable to get queue attributes: \"" + queueName + "\""); } else logger.warn("Unable to create queue: \"" + queueName + "\""); amazonSQSClient.shutdown(); } catch (AmazonServiceException amazonServiceException) { logger.warn("AmazonServiceException: " + amazonServiceException); logger.debug(amazonServiceException); } catch (IllegalArgumentException illegalArgumentException) { logger.warn("IllegalArgumentException: " + illegalArgumentException); logger.debug(illegalArgumentException); } catch (AmazonClientException amazonClientException) { logger.warn("AmazonClientException: " + amazonClientException); logger.debug(amazonClientException); } catch (Throwable throwable) { logger.warn("Throwable: " + throwable); logger.debug(throwable); } return sqsInfo; }
From source file:com.leverno.ysbos.archive.example.AmazonGlacierDownloadInventoryWithSQSPolling.java
License:Open Source License
private static void setupSQS() { CreateQueueRequest request = new CreateQueueRequest().withQueueName(sqsQueueName); CreateQueueResult result = sqsClient.createQueue(request); sqsQueueURL = result.getQueueUrl();//w ww .j ava 2s . com GetQueueAttributesRequest qRequest = new GetQueueAttributesRequest().withQueueUrl(sqsQueueURL) .withAttributeNames("QueueArn"); GetQueueAttributesResult qResult = sqsClient.getQueueAttributes(qRequest); sqsQueueARN = qResult.getAttributes().get("QueueArn"); Policy sqsPolicy = new Policy() .withStatements(new Statement(Effect.Allow).withPrincipals(Principal.AllUsers) .withActions(SQSActions.SendMessage).withResources(new Resource(sqsQueueARN))); Map<String, String> queueAttributes = new HashMap<String, String>(); queueAttributes.put("Policy", sqsPolicy.toJson()); sqsClient.setQueueAttributes(new SetQueueAttributesRequest(sqsQueueURL, queueAttributes)); }
From source file:org.apache.usergrid.apm.service.ApplicationServiceImpl.java
License:Apache License
/** * // w w w . j a va2 s .c o m * @param applicationId */ public void createSQSQueue(String orgAppName) { log.info("Creating Queue for App : " + orgAppName); CreateQueueRequest createQueueRequest = new CreateQueueRequest(); createQueueRequest.setQueueName(AWSUtil.formQueueName(orgAppName)); try { sqsClient.createQueue(createQueueRequest); //Need to do this to get QueueArn to apply right policy on that GetQueueAttributesRequest attributesRequest = new GetQueueAttributesRequest() .withQueueUrl(AWSUtil.formFullQueueUrl(orgAppName)).withAttributeNames("QueueArn"); GetQueueAttributesResult attributesResult = sqsClient.getQueueAttributes(attributesRequest); String queueArn = attributesResult.getAttributes().get("QueueArn"); SetQueueAttributesRequest setQueueAttributesRequest = new SetQueueAttributesRequest(); Map<String, String> queueAttributes = new HashMap<String, String>(); //Increasing the max size of SQS messages. queueAttributes.put("MaximumMessageSize", "65536"); //Apply IP address white list String sqsPolicy = AWSUtil.getSQSIPAddressWhiteListPolicy(queueArn); log.info("For queue " + queueArn + " with policy json " + sqsPolicy); queueAttributes.put("Policy", sqsPolicy); setQueueAttributesRequest.setAttributes(queueAttributes); setQueueAttributesRequest.setQueueUrl(AWSUtil.formFullQueueUrl(orgAppName)); sqsClient.setQueueAttributes(setQueueAttributesRequest); } catch (AmazonServiceException ase) { log.error("Problem creating queue in sqs"); log.error(ase); } catch (AmazonClientException ace) { log.error(ace); } }
From source file:org.apache.usergrid.apm.service.ApplicationServiceImpl.java
License:Apache License
public AccessKey createAuthorizedAppPrinciple(Long applicationId, String orgAppName) { CreateUserRequest createUserRequest = new CreateUserRequest(); createUserRequest.setUserName(APP_PRINCIPLE_USER_PREFIX + "_" + orgAppName); createUserRequest.setRequestCredentials(awsCredentials); try {/* w ww . ja va 2s .c o m*/ CreateUserResult createUserResult = identityManagementClient.createUser(createUserRequest); log.info("cloud user id for app with " + orgAppName + " created with " + createUserResult.getUser().getUserName()); CreateAccessKeyRequest accessKeyRequest = new CreateAccessKeyRequest(); accessKeyRequest.setUserName(createUserResult.getUser().getUserName()); CreateAccessKeyResult accessKeyResult = identityManagementClient.createAccessKey(accessKeyRequest); //Create policy of queue GetQueueAttributesRequest attributesRequest = new GetQueueAttributesRequest(); log.info("Going to secure sqs queue : " + AWSUtil.formFullQueueUrl(orgAppName)); attributesRequest.setQueueUrl(AWSUtil.formFullQueueUrl(orgAppName)); List<String> attributeNames = new ArrayList<String>(); attributeNames.add("QueueArn"); attributesRequest.setAttributeNames(attributeNames); GetQueueAttributesResult attributesResult = sqsClient.getQueueAttributes(attributesRequest); String queueArn = attributesResult.getAttributes().get("QueueArn"); String policy = POLICY_DOCUMENT_TEMPLATE.replace("QUEUE_ARN", queueArn); String formattedPolicy = String.format(POLICY_DOCUMENT_TEMPLATE, queueArn); log.info("Applying authorization for following AWS resources" + formattedPolicy); PutUserPolicyRequest policyRequest = new PutUserPolicyRequest(); policyRequest.setPolicyName(POLICY_NAME); policyRequest.setPolicyDocument(formattedPolicy); policyRequest.setUserName(createUserResult.getUser().getUserName()); identityManagementClient.putUserPolicy(policyRequest); log.info("User policy for queue " + queueArn + " was set"); return accessKeyResult.getAccessKey(); } catch (EntityAlreadyExistsException e) { log.error("This should not happen in production. Swallowing the error fow now " + e.getMessage()); log.error(e); return null; } }
From source file:org.apache.usergrid.apm.service.MetricsInjestionServiceSQSImpl.java
License:Apache License
protected List<ReceiveMessageResult> getClientDataForApp(String fullAppName) { ArrayList<ReceiveMessageResult> messageResults = new ArrayList<ReceiveMessageResult>( MAX_NUMBER_OF_REQUEST_TO_PROCESS); try {// www . j a v a2 s . c om GetQueueAttributesRequest queueAttributesRequest = new GetQueueAttributesRequest(); ArrayList<String> attributeNames = new ArrayList<String>(2); attributeNames.add("ApproximateNumberOfMessages"); attributeNames.add("LastModifiedTimestamp"); //attributeNames.add("All"); queueAttributesRequest.setAttributeNames(attributeNames); String qUrl = AWSUtil.formFullQueueUrl(fullAppName); log.info("Getting APM data from SQS queue" + qUrl); queueAttributesRequest.setQueueUrl(qUrl); GetQueueAttributesResult queueAttributeResult = sqsClient.getQueueAttributes(queueAttributesRequest); String numMessagesString = queueAttributeResult.getAttributes().get("ApproximateNumberOfMessages"); //Calculate number of "ReceiveMessage" requests need to be made. //TODO might need to use AsyncClient in the future to make multiple requests int numMessages = Integer.parseInt(numMessagesString); log.info("Num Messages to Process " + numMessages + " messages"); if (numMessages > 0) { int receiveMessages = 0; int receiveRequest = 0; int lastNumberOfRecievedMessages = 1; while ((receiveMessages < numMessages) && (receiveRequest < MAX_NUMBER_OF_REQUEST_TO_PROCESS) && (lastNumberOfRecievedMessages != 0)) { ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(); receiveMessageRequest.setMaxNumberOfMessages(MAX_NUMBER_OF_MESSAGES); receiveMessageRequest.setQueueUrl(qUrl); ArrayList<String> requestMessageAttributeNames = new ArrayList<String>(1); requestMessageAttributeNames.add("All"); receiveMessageRequest.setAttributeNames(requestMessageAttributeNames); try { ReceiveMessageResult receiveMessageResult = sqsClient.receiveMessage(receiveMessageRequest); log.info("For application " + fullAppName + " Received " + receiveMessageResult.getMessages().size() + " messages."); receiveMessages += receiveMessageResult.getMessages().size(); //check if any of these messages have been downloaded already. Since SQS is distributed and injestor //could have failed before deleting particular message, we check for message read count to 3. In odd //case, some messages could get processed at most 3 times. List<Message> messages = receiveMessageResult.getMessages(); String receiveCount = null; Message m = null; for (Iterator<Message> iter = messages.iterator(); iter.hasNext();) { m = iter.next(); receiveCount = m.getAttributes().get("ApproximateReceiveCount"); if (receiveCount != null && Integer.valueOf(receiveCount) > 3) { log.warn("ReceiveCount of message for app " + fullAppName + " is greater than 3 so going to delete this message before further processing"); sqsClient.deleteMessage(new DeleteMessageRequest(qUrl, m.getReceiptHandle())); iter.remove(); } } lastNumberOfRecievedMessages = receiveMessageResult.getMessages().size(); if (lastNumberOfRecievedMessages > 0) { messageResults.add(receiveMessageResult); receiveRequest++; } ; } catch (Exception ex) { log.error("Problem getting messages for " + fullAppName, ex); } } } } catch (AmazonServiceException ce) { log.error("Problem pulling message from SQS for " + fullAppName, ce); } catch (Exception e) { log.error("Problem getting messages for " + fullAppName, e); } return messageResults; }
From source file:org.duracloud.common.queue.aws.SQSTaskQueue.java
License:Apache License
private GetQueueAttributesResult queryQueueAttributes(QueueAttributeName... attrNames) { return sqsClient.getQueueAttributes( new GetQueueAttributesRequest().withQueueUrl(queueUrl).withAttributeNames(attrNames)); }
From source file:org.transitime.maintenance.AwsGlacierInventoryRetriever.java
License:Open Source License
/** * For retrieving vault inventory. For initializing SQS for determining when * job completed. Does nothing if member snsTopicName is null. Sets members * sqsQueueURL, sqsQueueARN, and sqsClient. *//*w w w .j a v a2 s . c o m*/ private void setupSQS() { // If no sqsQueueName setup then simply return if (sqsQueueName == null) return; CreateQueueRequest request = new CreateQueueRequest().withQueueName(sqsQueueName); CreateQueueResult result = sqsClient.createQueue(request); sqsQueueURL = result.getQueueUrl(); GetQueueAttributesRequest qRequest = new GetQueueAttributesRequest().withQueueUrl(sqsQueueURL) .withAttributeNames("QueueArn"); GetQueueAttributesResult qResult = sqsClient.getQueueAttributes(qRequest); sqsQueueARN = qResult.getAttributes().get("QueueArn"); Policy sqsPolicy = new Policy() .withStatements(new Statement(Effect.Allow).withPrincipals(Principal.AllUsers) .withActions(SQSActions.SendMessage).withResources(new Resource(sqsQueueARN))); Map<String, String> queueAttributes = new HashMap<String, String>(); queueAttributes.put("Policy", sqsPolicy.toJson()); sqsClient.setQueueAttributes(new SetQueueAttributesRequest(sqsQueueURL, queueAttributes)); }