我已经设置了 AWS SNS 设置,主题为“A”。我正在使用 Http 订阅此 SNS 主题(手动使用 AWS 控制台在线和使用 Java 代码进行了尝试)。在这两种情况下,我得到的只是“待确认”。但是,SNS 不会向提供的 Url 发送初始的“订阅确认”。
请注意,我的端点已准备好接收 http POST 通知。当我从我身边手动执行 POST 时,我看到我的 servlet 正在处理我发送的那些 Json。出于某种原因,我没有从 AWS SNS 收到任何信息。
请注意,我用于订阅的 http 端点面向公众,因此 SNS 到达它应该没有问题。
任何输入表示赞赏。
这是我的订阅功能。
public String subscribe(String arn,String url) {
if(arn == null || arn.isEmpty())
arn = topicArn;
SubscribeRequest subRequest = new SubscribeRequest(arn,"http",url);
SubscribeResult result = snsClient.subscribe(subRequest);
//get request id for SubscribeRequest from SNS metadata
if(result != null){
LOGGER.info("SubscribeResult - " + result.toString());
}
LOGGER.info("SubscribeRequest - " + snsClient.getCachedResponseMetadata(subRequest));
return …Run Code Online (Sandbox Code Playgroud) 我有一个CloudFront发行版,我想使用自定义证书使用SSL进行设置.
我们想要使用我们已经上传到IAM的SSL证书(我们目前正在使用一些ELB),但它不会让我们选择该选项(证书应该是下拉列表)是空的).
有任何想法吗?根据官方文件,这应该是一个有效的选择
PS:我们不想使用aws证书管理员提供的证书
我正在使用 Alpine 显示将更改的项目列表。但是我不知道如何告诉 Alpine 在新的项目从服务器返回后刷新项目列表:
<div x-data=" items() ">
<template x-for=" item in items " :key=" item ">
<div x-text=" item.name "></div>
</template>
</div>
Run Code Online (Sandbox Code Playgroud)
第一个“批次”的项目很好,因为它们在items()函数中是硬编码的:
function items(){
return {
items: [
{ name: 'aaron' },
{ name: 'becky' },
{ name: 'claude' },
{ name: 'david' }
]
};
}
Run Code Online (Sandbox Code Playgroud)
Alpine 之外的一些代码获取并接收一个全新的项目列表,我想显示它而不是原始集合。我无法弄清楚如何,或者目前是否可能。感谢您的任何指针。
对于那些经验丰富的人来说,我一直在为这个"简单"的任务而苦苦挣扎,我被困了2天,现在需要帮助.我现在已经改变了很多次,最后我偶然发现了这个春季JMS教程.
我想做什么,发送消息并接收它.我也一直在读这本关于消息传递的第8章.它非常好地解释了2种类型的消息传递,并且有一个很好的publish-and-subscribe类型示例,但现在是point-to-point消息传递的示例(这是我需要的).
我能够自己发送消息到队列,但是没有线索如何接收这些为什么我尝试使用这个春季教程这是我到目前为止所得到的:
重新编辑的发送者:
package quartz.spring.com.example;
import java.util.HashMap;
import java.util.Map;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Queue;
import javax.jms.Session;
import org.springframework.jms.core.MessageCreator;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.JmsTemplate102;
import org.springframework.jms.core.MessagePostProcessor;
public class JmsQueueSender {
private JmsTemplate jmsTemplate;
private Destination destination;
public void setConnectionFactory(ConnectionFactory cf) {
this.jmsTemplate = new JmsTemplate102(cf, false);
}
public void setQueue(Queue queue) {
this.destination = queue;
}
public void simpleSend() {
this.jmsTemplate.send(this.destination, new MessageCreator() {
public Message …Run Code Online (Sandbox Code Playgroud) 我最近在Elastic Beanstalk上部署了一个Django Web应用程序.我已对其进行了配置,以便我可以在线访问Django管理界面并将内容添加到在线站点.
现在,该网站仍处于开发阶段 - 我将进行切割和更改以及进行调整等.不幸的是,每次我从本地版本部署我的应用程序时,数据库(SQLite)都会被覆盖,我在在线版本上添加的任何内容被删除.
有没有办法从在线网站"拉"数据库(和数据库)?或者,我可以告诉'deploy'命令忽略数据库吗?
谢谢大家.
python sqlite django amazon-web-services amazon-elastic-beanstalk
使用Lambda进行首次尝试.创建代码,部署,测试工作,但是:
public String handleRequest(MyType inObj, Context context) {
// logging inObj here
}
Run Code Online (Sandbox Code Playgroud)
POJO课程
public class MyType {
String prop;
String otherProp;
}
Run Code Online (Sandbox Code Playgroud)
在调用时,我给出了以下有效负载:
{ "prop": "val1", "other_prop": "val2" }
Run Code Online (Sandbox Code Playgroud)
如你所见,我想在snake_case中给json.当lambda记录时,我可以看到
inObj.prop =="val1"
inObj.otherProp =="null".
当我将jSON从snake_case更改为camelCase时,它被正确地反序列化并且otherProp =="val2".我尝试将@JsonProperty("other_prop")添加到字段中,添加getter和setter(在camelCase中)并将@JsonProperty添加到那些(随机猜测),但没有任何改变.
问:我如何描述MyType类,以便AWS Lambda将其从snake_case正确反序列化为camelCase?
每当我尝试从Lambda(使用Java)发送带有SES的电子邮件时,都会失败-连接超时。
我已经在与Lambda函数相同的VPC中测试了来自EC2实例的完全相同的代码,并且从那里开始工作(它们具有相同的角色)。我还尝试了在Lambda函数不运行在VPC中的情况下运行它(尽管无论如何都需要将其运行在其中),这也不起作用。
这是相关的代码
SendEmailRequest request = new SendEmailRequest().withSource(from)
.withDestination(destination)
.withMessage(message);
try {
System.out.println("Attempting to send an email through Amazon SES by using the AWS SDK for Java...");
if (client == null) {
client = new AmazonSimpleEmailServiceClient();
client.setRegion(Region.getRegion(Regions.EU_WEST_1));
}
client.sendEmail(request); // this is where the exception is thrown
System.out.println("Email sent!");
} catch (Exception ex) {
ex.printStackTrace();
System.err.println(ex.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
该错误消息指出由于超时而无法连接(至email.eu-west-1 ...)。
有什么想法为什么不能在Lambda上使用吗?
我想利用 AWS 技术在 AWS 上的 nodeJS 中托管此类可扩展的博客或应用程序。这里的想法是拥有一个小型 EC2 服务器,它不负责为网站提供服务,而只负责运行 CMS/管理面板。虽然这些操作也可以是无服务器的,但我认为拥有一个专用的小型 VM EC2 实例会更高效,并且可以更好地与现有框架等配合使用。
在我上面的图表中,您可以看到有两种类型的用户audiences和admin/writers. 管理员 CRUD 操作也会导致 lambda 运行。Lambda 在 Admin 更改后生成静态站点,并将其交付给 S3。用户被定向到 S3 中托管的静态站点。只有管理员/作者才能访问站点的服务器连接部分。
我认为对于一个可扩展性极强且相对便宜的站点来说,这是一个很好的设计,只要面向用户的一面都是静态的。另一种方法是 CDN,但随后我必须处理缓存失效问题、更新速度较慢的站点以及更大的服务器。
这对我来说似乎是双赢的。回馈?
amazon-s3 amazon-ec2 amazon-web-services aws-lambda static-generator
我具有以下结构的部署包:
my-project.zip
--- my-project.py
------ lambda_handler()
Run Code Online (Sandbox Code Playgroud)
然后在配置文件中定义处理程序路径
my-project.lambda_handler
得到错误:
'handler' missing on module
Run Code Online (Sandbox Code Playgroud)
不明白
在抱怨允许附加到 VPC 的 lambda 函数访问互联网的 NAT 网关成本时,我发现了一些关于在公共子网而不是私有子网中部署 lambda 并将 EIP 附加到由 Lambda 创建的 ENI 的建议。(我也有一个连接到 VPC 的 IGW)。
我关注了这篇文章:/sf/answers/5227829771/
这有效!我在公共子网中运行的 lambda 可以访问互联网。
然而,我在很多地方读到“这不应该是可能的”,或者“为 lambda 提供互联网访问的唯一方法是通过 NAT 网关/实例。” 或“如果你这样做,它就无法正确扩展”。
这只是一个坏主意吗?我的 lambda 需要访问互联网和 VPC 中的资源(例如私有子网中的 rds)
aws-lambda ×5
java ×3
alpine.js ×1
amazon-ec2 ×1
amazon-s3 ×1
amazon-ses ×1
amazon-sns ×1
amazon-vpc ×1
django ×1
jboss ×1
jms ×1
json ×1
networking ×1
pojo ×1
python ×1
spring ×1
sqlite ×1
ssl ×1