- 确保 MongoDB 数据库配置了正确的用户名和密码,并且这些凭据被用于创建任务定义时的环境变量。
- 确保 ECS Fargate 容器定义中的环境变量与 MongoDB 数据库中的凭据匹配。
- 为 MongoDB 添加访问控制。您可以使用 MongoDB Atlas 中的 IP 白名单来限制访问。详细信息请参见 MongoDB 官方文档。
- 检查网络设置,确保 ECS Fargate 和 MongoDB 数据库在同一 VPC 中,并且所需的安全组和网络 ACL 已打开。
- 如果问题仍然存在,请确认 ECS Fargate 中运行的容器可以与所需的 MongoDB 主机端口建立 TCP 连接。您可以在容器启动时通过以下方式运行该命令:
telnet
。如果连接成功,则表示该端口未被防火墙阻止。
- 如果您使用的是旧版 MongoDB 驱动程序,请考虑升级到较新版本的驱动程序。较新版本的驱动程序可以更好地处理 MongoDB 认证。
下面是一个示例任务定义,它演示了如何使用环境变量进行 MongoDB 认证:
"containerDefinitions": [
{
"name": "my-mongodb-container",
"image": "mongo:4.2",
"environment": [
{
"name": "MONGO_INITDB_ROOT_USERNAME",
"value": "admin"
},
{
"name": "MONGO_INITDB_ROOT_PASSWORD",
"value": ""
},
{
"name": "MONGO_INITDB_DATABASE",
"value": "mydb"
}
],
"portMappings": [
{
"containerPort": 27017,
"protocol": "tcp"
}
]
}
]