news 2026/7/21 14:46:11

Earthdata Search部署指南:本地环境搭建与服务器配置全攻略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Earthdata Search部署指南:本地环境搭建与服务器配置全攻略

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:数据库连接失败

症状:应用启动时报数据库连接错误解决方案

  1. 检查PostgreSQL服务是否运行:brew services list | grep postgresql
  2. 验证数据库用户权限
  3. 确认secret.config.json中的连接信息正确

问题2:内存不足错误

症状:构建过程中出现内存不足错误解决方案

# 增加Node.js内存限制 export NODE_OPTIONS="--max-old-space-size=8192" npm run build

问题3:AWS权限问题

症状:部署到AWS时出现权限错误解决方案

  1. 检查IAM角色权限
  2. 验证VPC和子网配置
  3. 确保安全组规则正确

问题4:本地API服务无法启动

症状npm run offline命令失败解决方案

  1. 确保已全局安装Serverless框架:npm install -g serverless
  2. 检查端口3001是否被占用
  3. 验证AWS凭证配置

📊 监控与维护

日志查看

  • 本地开发:查看控制台输出
  • AWS环境:使用CloudWatch日志
  • 数据库:PostgreSQL日志文件

性能监控

  • 使用AWS CloudWatch监控Lambda函数性能
  • 设置RDS性能监控
  • 配置SQS队列监控

定期维护任务

  1. 定期更新依赖包:npm update
  2. 清理构建缓存:rm -rf node_modules/.cache
  3. 优化数据库索引
  4. 监控磁盘空间使用

🎯 最佳实践建议

开发环境最佳实践

  1. 使用Docker Compose统一开发环境
  2. 配置IDE代码格式化规则
  3. 启用ESLint代码检查
  4. 使用Git分支策略进行功能开发

生产环境最佳实践

  1. 使用CI/CD流水线自动化部署
  2. 配置多环境部署(dev/staging/production)
  3. 实施蓝绿部署策略
  4. 设置自动备份和灾难恢复

安全最佳实践

  1. 定期轮换AWS访问密钥
  2. 使用AWS Secrets Manager管理敏感信息
  3. 实施最小权限原则
  4. 启用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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/21 14:46:03

OOTDiffusion终极指南:基于潜在扩散模型的AI虚拟试穿技术

OOTDiffusion终极指南:基于潜在扩散模型的AI虚拟试穿技术 【免费下载链接】OOTDiffusion [AAAI 2025] Official implementation of "OOTDiffusion: Outfitting Fusion based Latent Diffusion for Controllable Virtual Try-on" 项目地址: https://gitc…

作者头像 李华
网站建设 2026/7/21 14:43:10

桌面宠物框架终极指南:如何用DyberPet打造专属数字伙伴

桌面宠物框架终极指南:如何用DyberPet打造专属数字伙伴 【免费下载链接】DyberPet Desktop Cyber Pet Framework based on PySide6 项目地址: https://gitcode.com/GitHub_Trending/dy/DyberPet 在数字时代,我们的电脑桌面往往是冰冷的代码和单调…

作者头像 李华
网站建设 2026/7/21 14:42:19

ADC与PD-1联用的协同效应与免疫治疗机制

1. ADC与PD-1联用的协同效应解析 免疫检查点抑制剂PD-1抗体和抗体偶联药物(ADC)的联合治疗近年来在多种肿瘤类型中展现出惊人的临床效果。这种组合策略的强大之处,很大程度上源于二者在肿瘤免疫循环中形成的正向反馈机制——特别是通过"…

作者头像 李华
网站建设 2026/7/21 14:42:00

TI M3 GPTM定时器全解析:从基础定时到PWM、输入捕获与RTC实战

1. 从零开始理解GPTM:不止是“数数”的定时器 在嵌入式开发的世界里,定时器(Timer)绝对算得上是“劳模”级别的外设。无论是你按下按键后的消抖延时,还是驱动舵机所需的PWM信号,亦或是为整个系统提供心跳的…

作者头像 李华