我试图通过我在Fargate的容器上运行的Java应用程序发送电子邮件。我的容器在API网关后面的VPC中运行,与外部服务的连接通过VPCendpoint进行。
所有的infra都是使用Terraform部署的。Java应用在本地运行正常,但部署到AWS时运行不正常,所以我认为缺少一个配置。
Java应用程序遵循以下AWS指南:
https://docs.aws.amazon.com/ses/latest/dg/send-email-raw.html
以下是地形代码中的一些尖晶石:
# SECURITY GROUPS
resource "aws_security_group" "security_group_containers" {
name = "security_group_containers_${var.project_name}_${var.environment}"
vpc_id = var.vpc_id
ingress {
protocol = "-1"
from_port = 0
to_port = 0
cidr_blocks = ["0.0.0.0/0"]
ipv6_cidr_blocks = ["::/0"]
self = true
}
egress {
protocol = "-1"
from_port = 0
to_port = 0
cidr_blocks = ["0.0.0.0/0"]
ipv6_cidr_blocks = ["::/0"]
}
tags = {
Name = "security_group_containers_${var.project_name}_${var.environment}"
}
}
resource "aws_security_group" "security_group_ses" {
name = "security_group_ses_${var.project_name}_${var.environment}"
vpc_id = var.vpc_id
ingress {
protocol = "-1"
from_port = 0
to_port = 0
cidr_blocks = ["0.0.0.0/0"]
ipv6_cidr_blocks = ["::/0"]
}
egress {
protocol = "-1"
from_port = 0
to_port = 0
cidr_blocks = ["0.0.0.0/0"]
}
tags = {
Name = "security_group_ses_${var.project_name}_${var.environment}"
}
}
# VPC
resource "aws_vpc" "main" {
cidr_block = var.cidr
enable_dns_support = true
enable_dns_hostnames = true
}
resource "aws_subnet" "private_subnet" {
vpc_id = aws_vpc.main.id
cidr_block = var.private_subnets[0]
availability_zone = "us-east-1b"
tags = {
Name= "private_subnet_${var.project_name}_${var.environment}"
}
}
# VPC ENDPOINT
resource "aws_vpc_endpoint" "ses_endpoint" {
security_group_ids = [aws_security_group.security_group_ses]
service_name = "com.amazonaws.${var.aws_region}.email-smtp"
vpc_endpoint_type = "Interface"
subnet_ids = [aws_subnet.private_subnet.id]
private_dns_enabled = true
tags = {
"Name" = "vpc_endpoint_ses_${var.project_name}_${var.environment}"
}
vpc_id = aws_vpc.main.id
}
如果有任何重要的服务丢失告诉我,以便我可以添加它。
正如你所看到的,我保持所有交通畅通,所以这里找到的解决方案对我不适用。当应用程序尝试发送电子邮件时,我发现以下错误:
software.amazon.awssdk.core.exception.SdkClientException: Unable to execute HTTP request: Connect to email.us-east-1.amazonaws.com:443 [email.us-east-1.amazonaws.com/52.0.170.238, email.us-east-1.amazonaws.com/54.234.96.52, email.us-east-1.amazonaws.com/34.239.37.81, email.us-east-1.amazonaws.com/18.208.125.60, email.us-east-1.amazonaws.com/52.204.223.71, email.us-east-1.amazonaws.com/18.235.72.5, email.us-east-1.amazonaws.com/18.234.10.182, email.us-east-1.amazonaws.com/44.194.249.132] failed: connect timed out
我认为我缺少一些配置,无法让java awssdk使用VPCendpoint。
您已经为SES SMTP API创建了VPCendpoint,但收到的错误消息是电子邮件。美国东部1号。亚马逊。com:443
用于AWS SES服务API。你可以在这里看到这两套API。如果您正在使用AWS SDK与Java应用程序中的SES交互,则需要将VPCendpoint更改为service_name=“com.amazonaws.${var.AWS_region}.email”
如果将Java应用程序配置为使用SMTP(如JavaMail API),则当前的endpoint配置将起作用。
这是我使用Spring Boot的第一次练习,这是我的应用程序。属性: 这些是我的课程: > DemomysqlApplication.java @ComponentScan(BasePackages={“Com.JoyDeep.SpringBoot”})公共类DemoMysqlApplication{ noteRepository.java(接口): 从控制台,我没有看到错误。Tomcat正常启
问题内容: 我尝试创建Kibana和Elasticsearch,看来Kibana在识别Elasticsearch时遇到了麻烦。 这是我的步骤: 1)建立网络 2)运行Elasticsearch容器 3)运行Kibana容器 通过浏览器通过http:// localhost:9200 / 连接到Elasticsearch时,我得到JSON输出。 但是,当我打开HTTP://本地主机:5601 /我得
我按照https://www.elastic.co/guide/en/elasticsearch/reference/6.5/docker.html和https://www.elastic.co/guide/en/kibana/6.5/docker.html但它似乎并没有很好地与kibana工作,ES工作正常。 我试着单独启动kibana,但最后我把它添加到了一个docker compose文件中
我试图创建Kibana和Elasticsearch,似乎Kibana无法识别Elasticsearch。 以下是我的步骤: 1) 创建网络 2) 运行Elasticsearch容器 3) 运行Kibana容器 当我通过连接Elasticsearch时,我会得到一个JSON输出http://localhost:9200/通过我的浏览器。 但当我打开http://localhost:5601/我明白了
我从另一台pc上得到了一个python文件,而那台pc正在使用mySQL作为数据库。现在我试图在XAMPP上使用db,但似乎发生了一些错误。我尝试使用Anaconda提示来检查以下显示的问题: 回溯(最近一次调用): 文件“C:\xampp\htdocs\distest.py”,第48行,在 conn=pymysql.connect(Host='localhost', 文件“C:\users\us
OS: Windows 10 pom.xml配置:Spring Boot:2.0.8 Mariadb:1.5.9 flywaydb:4.2.0 Mariadb: 10.2.26 描述:我的Spring Boot webapp无法连接到Mariadb。我已在Mariadb上使用pwd配置根用户,并创建了一个db(测试) 我在Spring Boot应用程序中遇到以下异常 “root”用户可以使用Hei