Tag: amazon web services

如何在spring xml配置中注入环境变量?

在我们设置环境变量之后,AWS在http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Java.managing.html中讨论了System.getProperty(“JDBC_CONNECTION_STRING”) 。 除了我不能在我的Spring XML配置代码中调用System.getProperty ,我也无法调用资源包快捷方式,因为资源包本身必须以某种方式提取这些环境变量来为它们服务。 请帮助我转换此示例配置以使用环境变量? 🙂 300000 60000 我无法理解人们在这里做了什么: 我可以为Spring FileSystemResource使用基于环境变量的位置吗? 哪个适用于最近的春季版?

com.amazonaws.services.s3.model.AmazonS3Exception:Forbidden(Service:Amazon S3; Status Code:403; Error Code:403 Forbidden; Request ID:XXXXXXXX)

从几天开始,当我尝试将文件推送到S3Bucket时,我收到此exception。 Ealier的一切似乎都有效,我相信我的代码没有任何代码变化。 com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; Request ID: XXXXXXXXXXXX), S3 Extended Request ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1077) at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:725) at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:460) at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:295) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3699) at com.amazonaws.services.s3.AmazonS3Client.getObjectMetadata(AmazonS3Client.java:999) at com.amazonaws.services.s3.AmazonS3Client.getObjectMetadata(AmazonS3Client.java:977) …. …. 我遇到了许多与com.amazonaws.services.s3.model.AmazonS3exception相关的Q:禁止跟随这些 我已经在我的服务器上安装了NTP来解决任何时间相关的问题。 我还将“AmazonS3Client”对象的endPointUrl添加到我觉得可以解决我的问题的代码中。 我还可以尝试解决这个问题 我正在使用aws-java-sdk:1.9.10将文件推送到S3 Bucket。

如何将S3对象写入文件?

将S3对象(我有密钥)写入文件的最快方法是什么? 我正在使用Java。

如何在另一个AWS Java Lambda函数中调用aws java lambda函数,两者都在同一个帐户中,同一个区域

我有一个java aws lambda函数或处理程序作为AHandler来做一些事情,例如它已经订阅了SNS事件,它解析了SNS事件并将相关数据记录到数据库中。 我有另一个java aws lambda BHandler,这个BHandler的目标是从AHandler接收请求并向AHandler提供响应。 因为BHandler的目标是提供一些json数据的响应。 这将由AHandler使用。 我是否可以看到任何明确的例子,告诉我们如何做这些事情? 我看到这个例子从java类 调用lambda函数和从java调用lambda函数 我的问题讨论了这种情况,当一个aws java lambda函数(或处理程序)调用另一个aws java lambda函数时,两者都在同一个区域,相同的帐户,相同的vpc执行东西,相同的权限。 在那种情况下,aws java lambda函数可以直接调用(或调用)到另一个或仍然必须提供aws键,区域等东西(如上面的链接)? 一个明确的例子/解释将非常有帮助。 编辑 正在调用另一个Lambda函数(BHandler)的AHandler,存在于同一个帐户上,已经给出了完整的AWSLambdaFullAccess ,例如 “iam:PassRole”,“lambda:*”, 这是要调用的代码: 注意:当我使用普通java main函数调用相同的函数时,下面的代码可以工作。 但它不像在lambda函数上调用一样(就像ALambdaHandler调用BLambdaHandler作为函数调用)。 即使它没有返回任何例外。 它只是显示超时,它被困在代码:lambdaClient.invoke String awsAccessKeyId = PropertyManager.getSetting(“awsAccessKeyId”); String awsSecretAccessKey = PropertyManager.getSetting(“awsSecretAccessKey”); String regionName = PropertyManager.getSetting(“regionName”); String geoIPFunctionName = PropertyManager.getSetting(“FunctionName”); Region region; AWSCredentials credentials; AWSLambdaClient lambdaClient; credentials = […]

使用Apache HttpComponents Client签署AWS HTTP请求

我正在尝试向受IAM访问策略保护的AWS Elasticsearch域发出HTTP请求。 我需要签署这些请求,以便AWS授权这些请求。 我正在使用Jest ,后者又使用Apache HttpComponents Client 。 这似乎是一个常见的用例,我想知道是否有某种类型的库,我可以在Apache HttpComponents客户端上使用它来签署所有请求。

DynamoDBMapper用于条件保存

我正在使用DynamoDBMapper,并且当且仅当hashkey和range键组合不存在时,才想有条件地保存。 我知道有一些方法可以使用UUID来减少碰撞的可能性,但我想通过使用条件保存来保护自己。 我遇到了这篇使用DynamoDBSaveExpression的 文章但是我无法指定条件是“hashkey AND rangekey”不能存在。 API指定了withConditionalOperator方法,但我无法在我的课程中看到这个。 我也在这里使用最新的aws java sdk。 有关如何有条件保存的任何建议? 或者我可能做错了什么?

Amazon SQS长轮询不返回所有邮件

我需要在1次读取中读取Amazon SQS队列中的所有消息,然后根据创建的时间戳对其进行排序并对其执行业务逻辑。 为了确保检查所有SQS主机的消息,我启用了长轮询。 我这样做的方法是将队列的默认等待时间设置为10秒。 (任何大于0的值都将启用长轮询)。 但是,当我尝试读取队列时,它仍然没有给我所有的消息,我不得不做多次读取以获取所有消息。 我甚至通过每个接收请求的代码启用长轮询,仍然无法正常工作。 以下是我正在使用的代码。 AmazonSQSClient sqsClient = new AmazonSQSClient(new ClasspathPropertiesFileCredentialsProvider()); sqsClient.setEndpoint(“sqs.us-west-1.amazonaws.com”); String queueUrl = “https://sqs.us-west-1.amazonaws.com/12345/queueName”; ReceiveMessageRequest receiveRequest = new ReceiveMessageRequest().withQueueUrl(queueUrl).withMaxNumberOfMessages(10).withWaitTimeSeconds(20); List messages = sqsClient.receiveMessage(receiveRequest).getMessages(); 我在队列中有3条消息,每次运行代码时都得到不同的结果,有时候我得到所有3条消息,有时只有1条。可见性超时我设置为2秒,只是为了消除消息变得不可见的原因因为没有在阅读中看到它们。 这是短轮询的预期行为。 长轮询应该可以消除多个民意调查。 我在这里做错了吗? 谢谢

使用Java建立与MySQL的安全连接Amazon RDS(SSL / TLS)

我正在尝试使用JDK 1.8和MySQL Connector / J版本5.1.23安全地连接到Amazon RDS,我对MySQL Connector / J文档中的说明感到困惑。 说明指出在当前目录中创建信任库并导入服务器的CA证书。 当我运行以下命令时,我被要求输入密码,我不知道输入什么: keytool -import -alias mysqlServerCACert -file file_location.pem -keystore truststore 另一方面,亚马逊的指示指出证书由证书颁发机构签名。 SSL证书包括数据库实例端点作为公共名称(CN)。 公钥也存储在http://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem中 。 虽然我理解SSL / TSL和私钥/公钥的概念,但我很困惑如何实现它? 当我运行SHOW VARIABLES LIKE ‘have_ssl’; 命令我收到“是”作为值。 当我连接到数据库并运行SHOW SESSION STATUS LIKE ‘Ssl_version’; ,我没有收到任何价值。 如何建立从Java到MySQL数据库的安全连接? 更新:我使用的是ubuntu,我使用keytool在JRE目录/usr/lib/jvm/java/jre/生成truststore.jks文件。 我还执行了以下命令: GRANT USAGE ON db_name.* To ‘username’@’address’ REQUIRE SSL; 以下代码是我连接数据库的方式: import com.mysql.jdbc.Connection; public class mainClass{ public […]

Tomcat需要太多时间才能启动 – Java SecureRandom

请不要将其标记为重复。 对于这两个问题,这是一个后续问题。 Tomcat7在Ubuntu 14.04 x64上启动太晚[Digitalocean] https://stackoverflow.com/a/2325109/6785908 我理解,替换 securerandom.source=file:/dev/urandom 同 securerandom.source=file:/dev/./urandom 在$JAVA_PATH/jre/lib/security/java.security中将解决这个问题。 我的问题是,在制作中这样做是否可以? 这会对安全性产生什么影响(如会话ID变得可预测)? 如果这不太安全,还有其他方法可以更快地提供足够的熵吗? 更新 我使用openstack进行部署(或者只是说,使用AWS或GCP或任何其他云提供商)。 因此,添加声卡等硬件设备对我来说不是一个选择。

在WAR中添加.ebextensions的位置?

场景: AWS Elastic Beanstalk Java应用程序 .ebextensions目前放在src / main / resources / .ebextensions中 命令未被执行。 .ebextensions应该放在Java应用程序中的哪个位置?