Earthdata Search部署指南:本地环境搭建与服务器配置全攻略
【免费下载链接】earthdata-searchEarthdata Search is a web application developed by NASA EOSDIS to enable data discovery, search, comparison, visualization, and access across EOSDIS' Earth Science data holdings.项目地址: https://gitcode.com/gh_mirrors/eart/earthdata-search
想要快速搭建NASA地球科学数据搜索平台吗?Earthdata Search是一个强大的Web应用程序,由NASA EOSDIS开发,用于实现地球科学数据的发现、搜索、比较、可视化和访问。本终极指南将为您详细介绍如何从零开始搭建Earthdata Search的完整部署流程,无论是本地开发环境还是生产服务器配置,我们都将一一涵盖。
🚀 为什么选择Earthdata Search?
Earthdata Search作为NASA官方数据搜索平台,集成了多个地球科学数据服务,包括:
- CMR(通用元数据存储库)- 数据发现和访问
- URS(用户注册系统)- 身份验证管理
- GIBS(全球图像浏览服务)- 数据可视化
- OPeNDAP服务- 数据提供者托管的数据访问服务
这个强大的数据搜索工具让研究人员、科学家和开发者能够轻松访问NASA的海量地球观测数据。
📋 部署前准备:环境要求检查
在开始部署Earthdata Search之前,请确保您的系统满足以下基本要求:
系统环境要求
- Node.js v14或更高版本- 应用基于Node.js构建
- npm包管理器- 建议使用最新版本
- PostgreSQL数据库- 生产环境推荐使用AWS RDS
- AWS账户- 用于部署到云环境(可选)
- 内存要求- 至少4GB可用内存
快速安装Node.js
如果您还没有安装Node.js,可以通过以下方式快速安装:
# 使用Homebrew(macOS) brew install node # 或从Node.js官网下载安装包安装完成后,建议更新npm到最新版本:
npm install -g npm@latest🔧 本地环境搭建详细步骤
第一步:获取Earthdata Search源代码
首先克隆项目仓库到本地:
git clone https://gitcode.com/gh_mirrors/eart/earthdata-search cd earthdata-search第二步:配置Node版本管理
Earthdata Search使用Node Version Manager(NVM)来确保正确的Node版本。安装NVM后,项目会自动使用.nvmrc文件中指定的版本:
# 使用NVM切换到项目要求的Node版本 nvm use第三步:安装项目依赖
在项目根目录下运行以下命令安装所有必要的依赖包:
npm install这个过程可能需要几分钟时间,具体取决于您的网络速度。
第四步:配置数据库连接
Earthdata Search使用PostgreSQL作为数据库。首先创建开发数据库:
createdb edsc_dev然后配置数据库连接信息。复制示例配置文件并编辑:
# 复制秘密配置文件 cp secret.config.json.example secret.config.json # 复制静态配置文件 cp static.config.json overrideStatic.config.json在secret.config.json中设置数据库用户名和密码:
{ "dbUsername": "您的用户名", "dbPassword": "您的密码" }第五步:运行数据库迁移
应用数据库架构变更:
DATABASE_URL=postgresql://用户名:密码@localhost:5432/edsc_dev npm run migrate up或者使用Serverless框架本地运行迁移:
serverless invoke local --function migrateDatabase🖥️ 启动本地开发服务器
启动前端开发服务器
运行以下命令启动React应用开发服务器:
npm run start这将在http://localhost:8080启动开发服务器,支持热重载功能。
启动后端API服务
Earthdata Search使用Serverless框架管理AWS资源。要在本地运行API Gateway和Lambda函数:
npm run offline这将启动本地API Gateway服务,默认运行在http://localhost:3001,为前端应用提供完整的后端功能支持。
启用缓存功能(可选)
如果需要使用Redis缓存来加速缩略图生成,可以启动Docker容器:
# 启动Redis缓存 npm run start:cache # 设置缓存环境变量 export USE_CACHE=true🏗️ 生产环境构建与部署
构建生产版本
当您准备好部署到生产环境时,首先构建生产版本:
npm run build构建完成后,所有静态资源将输出到/static/dist/目录中。
测试生产构建
您可以使用简单的HTTP服务器测试生产构建:
npx http-server static/dist自动化测试
在部署前,确保所有测试通过:
# 运行单元测试 npm run test # 运行集成测试 npm run cypress:run☁️ AWS云环境部署指南
AWS服务依赖
Earthdata Search在生产环境中依赖以下AWS服务:
- S3- 静态资源存储(建议配合CloudFront使用)
- SQS- 消息队列服务
- API Gateway- API管理
- Lambda- 无服务器函数计算
- CloudWatch- 日志和监控
- RDS- PostgreSQL数据库
- ElastiCache- Redis缓存
环境变量配置
部署前需要设置必要的环境变量:
export AWS_ACCESS_KEY_ID=您的访问密钥 export AWS_SECRET_ACCESS_KEY=您的秘密密钥 export VPC_ID=您的VPC ID export SUBNET_ID_A=子网A ID export SUBNET_ID_B=子网B ID部署到AWS
使用Serverless框架进行部署:
NODE_ENV=production serverless deploy --stage production--stage参数指定部署环境(如dev、staging、production)。
🔧 高级配置选项
自定义门户配置
Earthdata Search支持多门户配置。您可以在overrideStatic.config.json中修改defaultPortal值来切换不同的门户界面:
{ "application": { "defaultPortal": "edsc" } }性能优化配置
在static.config.json中可以调整以下性能相关参数:
thumbnailSize- 缩略图尺寸orderStatusRefreshTime- 订单状态刷新间隔defaultCmrPageSize- 默认搜索结果页大小defaultMaxOrderSize- 最大订单大小限制
安全配置
为了增强安全性,可以配置混淆参数:
export OBFUSCATION_SPIN=您的混淆密钥 export OBFUSCATION_SPIN_SHAPEFILES=形状文件混淆密钥🚨 常见问题与解决方案
问题1:数据库连接失败
症状:应用启动时报数据库连接错误解决方案:
- 检查PostgreSQL服务是否运行:
brew services list | grep postgresql - 验证数据库用户权限
- 确认
secret.config.json中的连接信息正确
问题2:内存不足错误
症状:构建过程中出现内存不足错误解决方案:
# 增加Node.js内存限制 export NODE_OPTIONS="--max-old-space-size=8192" npm run build问题3:AWS权限问题
症状:部署到AWS时出现权限错误解决方案:
- 检查IAM角色权限
- 验证VPC和子网配置
- 确保安全组规则正确
问题4:本地API服务无法启动
症状:npm run offline命令失败解决方案:
- 确保已全局安装Serverless框架:
npm install -g serverless - 检查端口3001是否被占用
- 验证AWS凭证配置
📊 监控与维护
日志查看
- 本地开发:查看控制台输出
- AWS环境:使用CloudWatch日志
- 数据库:PostgreSQL日志文件
性能监控
- 使用AWS CloudWatch监控Lambda函数性能
- 设置RDS性能监控
- 配置SQS队列监控
定期维护任务
- 定期更新依赖包:
npm update - 清理构建缓存:
rm -rf node_modules/.cache - 优化数据库索引
- 监控磁盘空间使用
🎯 最佳实践建议
开发环境最佳实践
- 使用Docker Compose统一开发环境
- 配置IDE代码格式化规则
- 启用ESLint代码检查
- 使用Git分支策略进行功能开发
生产环境最佳实践
- 使用CI/CD流水线自动化部署
- 配置多环境部署(dev/staging/production)
- 实施蓝绿部署策略
- 设置自动备份和灾难恢复
安全最佳实践
- 定期轮换AWS访问密钥
- 使用AWS Secrets Manager管理敏感信息
- 实施最小权限原则
- 启用AWS WAF保护Web应用
📈 扩展与定制
添加新数据源
通过修改serverless-configs/aws-functions.yml中的配置,可以集成新的数据源和服务。
自定义UI主题
编辑portals/目录下的门户配置文件,可以自定义界面主题和布局。
集成第三方服务
Earthdata Search的模块化架构支持轻松集成第三方服务,如:
- 自定义身份验证提供者
- 额外的数据可视化工具
- 外部存储服务集成
🏁 总结
通过本完整指南,您已经掌握了Earthdata Search从本地开发环境搭建到生产服务器部署的全流程。无论是地球科学研究人员、数据工程师还是Web开发者,都可以按照这些步骤成功部署自己的Earthdata Search实例。
记住,Earthdata Search的强大功能不仅限于数据搜索,它还是一个完整的科学数据管理平台。随着NASA地球科学数据的不断增长,拥有自己的部署实例将为您的研究和项目提供强大的数据支持能力。
立即开始您的Earthdata Search部署之旅,探索地球科学数据的无限可能!🌍
【免费下载链接】earthdata-searchEarthdata Search is a web application developed by NASA EOSDIS to enable data discovery, search, comparison, visualization, and access across EOSDIS' Earth Science data holdings.项目地址: https://gitcode.com/gh_mirrors/eart/earthdata-search
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考