Cumulus Tasks的Cumulus消息准备和输出的命令行界面
项目描述
# Cumulus Message Adapter
cumulus-message-adapter是一个用于准备和输出Cumulus Tasks的Cumulus消息的命令行界面。cumulus-message-adapter帮助Cumulus开发者将任务集成到Cumulus工作流中。
有关cumulus-message-adapter如何工作的更多信息,请参阅[CONTRACT.md](./CONTRACT.md)。
## 版本
### 版本版本
请注意以下版本约定
X.Y.Z:其中
X是一个组织发布版本,表示一组核心功能的完成
Y是一个主要版本发布,可能包括不兼容的API更改和其他破坏性更改
Z是一个次要版本,包括错误修复和向后兼容的改进
### 持续集成
[CircleCI](https://circleci.com/gh/nasa/cumulus-message-adapter)管理发布和发布资产。
当CircleCI通过cumulus-message-adapter的主分支并且message_adapter/version.py已更新为与现有标签不匹配的版本时,CircleCI将
使用message_adapter/version.py中的字符串创建一个新的标签tag_name
使用新的标签创建一个新的发布版本,其名称等于tag_name(等于版本)。
构建一个cumulus-message-adapter.zip文件,并将其作为发布资产附加到新创建的发布中。该zip文件使用此存储库根目录中的[Makefile](./Makefile)创建。
这些步骤在[.circleci/config.yml](./.circleci/config.yml)文件中详细说明。
## 开发
### 依赖安装
`shell pip install -r requirements-dev.txt pip install -r requirements.txt `
### 运行测试
运行测试需要[localstack](https://github.com/localstack/localstack).
测试只需要运行S3的localstack,可以使用以下命令启动
`shell EAGER_SERVICE_LOADING=1 SERVICES=s3 localstack start `
然后,您可以使用以下nosetests命令检查测试是否通过
`shell CUMULUS_ENV=testing nose2 -v `
### 代码检查
`shell pylint message_adapter `
### 贡献
如果对代码库进行了更改,您可以创建cumulus-message-adapter zip存档以测试需要它的库
`shell make clean make cumulus-message-adapter.zip `
然后您可以运行一些集成测试
`shell ./examples/example-node-message-adapter-lib.js `
在更改最终确定并发布之前,应该将cumulus-message-adapter zip存档打包并在lambda环境中测试,因为那将是它被使用的地方。
#### 打包
打包zip文件最好在一个与将要运行的lambda环境相似的环境中完成,其中包含当前的Python版本,所以我们使用AWS Python Lambda镜像。某些包需要安装,并且由于Python路径问题,使用虚拟环境很重要。
`shell docker run -v ~/projects/cumulus-message-adapter/:/cma/ -v ~/tmp/:/tmp/ -v ~/amazon/:/home/amazon/ -it --entrypoint /bin/bash amazon/aws-lambda-python:3.10 yum install -y make binutils zip cd /cma pip install --user virtualenv ~/.local/bin/virtualenv ~/venv310 . ~/venv310/bin/activate pip install . make clean make cumulus-message-adapter.zip `
#### 在Lambda环境中测试包
一旦创建了包,就应该在Lambda环境中进行测试。在这样做之前,可以在上述命令之后立即运行该包,以查看是否出现任何错误,这表明创建包时出现了问题./dist/cma stream。
如果立即没有出现错误,可以可选地在AWS Lambda NodeJS镜像中测试zip文件,因为那是目标环境。在镜像中运行可能允许更快地进行测试和开发,但测试AWS仍然是最终的测试。
`shell docker run -v ~/projects/cumulus-message-adapter:/zipfile --entrypoint / bin/bash -it amazon/aws-lambda-nodejs:16 cd /zipfile cp -r dist /opt/ cd /opt/dist ./cma stream `
在AWS Lambda中测试包需要在作为层上传zip文件,然后运行利用该层的Cumulus步骤函数。以下说明适用于可以访问为该目的专门设置的层的Cumulus Core团队成员。
在AWS控制台中,转到Lambda > 层 > CMA_Test
通过上传之前打包的cumulus-message-adapater zip文件创建新版本
在您的/cumulus-tf/terraform.tfvars中,将cumulus_message_adapter_lambda_layer_version_arn的值替换为新建的版本ARN
使用terraform apply应用更改
找到任何最近成功运行的Step Function,并运行新执行。CMA_TEST层的“使用此版本的函数”标签应提供一些选项。
### 故障排除
错误:“DistutilsOptionError:必须提供home或prefix/exec-prefix,但不能同时提供两者”在运行make cumulus-message-adapter.zip * [解决方案](https://stackoverflow.com/a/24357384)
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
cumulus_message_adapter-2.0.4.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fe98bae50b87c0682c46e855e746680bb69b9439e1ee86b3129e6ea2d0af6ff7 |
|
MD5 | bbe80a99c89d5e2248fc34ff2df60ac9 |
|
BLAKE2b-256 | 6c39904570a044c1acbaa379b5c59d627f3d7f66b6de48044071fe1a694d9239 |