amazon-web-services - 如何使用 github 操作部署具有多个 packages.json 的无服务器单声道存储库?
问题描述
我正在尝试部署作为 mono repo 一部分的微服务,为此我正在使用 github 操作,但我遇到了与 package.json 文件中的插件相关的问题。这是我的项目的结构:
--repo
---package.json
---resources
----package.json
---services
----Service A
-----package.json
----Service B
-----package.json
首先,我正在尝试部署基本上创建 S3 存储桶、cognito 用户池等的资源文件夹......我已经添加了名为“serverless-cognito-add-custom-attributes”的插件作为这个项目的一部分,这个插件仅存在于“resources”文件夹内的 package.json 中。
尝试从 github 操作部署时出现此错误:
未找到无服务器插件“serverless-cognito-add-custom-attributes”。确保它已安装并列在无服务器配置文件的“插件”部分。
这是我在 github 操作中使用的 .yml 文件:
name: Deploy Resources to Dev
on:
push:
branches:
- dev
tags:
- RC-*
paths:
- './resources'
jobs:
InstallActions:
name: deploy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Download Node
uses: actions/setup-node@v1
with:
node-version: "12.x"
- name: Install NPM Global Packages
run: |
npm install --global
npm install "./resources" --global
- name: Serverless Deploy
uses: serverless/github-action@master
with:
args: deploy --stage dev --config "./resources/serverless.yml"
env:
AWS_ACCESS_KEY_ID: ${{secrets.AWS_ACCESS_KEY_DEV}}
AWS_SECRET_ACCESS_KEY: ${{secrets.AWS_SECRET_ACCESS_KEY_DEV}}
当上面的 .yml 文件运行时,我可以在控制台上看到:
+ ----@1.0.0
added 1 package in 2.935s
+ resources@1.0.0
added 3 packages from 3 contributors in 0.654s
解决方案
出于某种原因,似乎
uses: serverless/github-action@master
从子文件夹安装时无法找到软件包,但手动执行所有操作似乎工作正常:
name: Deploy Resources to Dev
on:
push:
branches:
- dev
tags:
- RC-*
paths:
- './resources'
jobs:
Deploy:
name: deploy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Download Node
uses: actions/setup-node@v1
with:
node-version: "12.x"
- name: Install Serverless Framework
run: npm install -g serverless
- name: Serverless Authentication
run: sls config credentials --provider aws --key ${{secrets.AWS_ACCESS_KEY_DEV}} --secret ${{secrets.AWS_SECRET_ACCESS_KEY_DEV}}
- name: Install NPM dependencies
run: |
npm install
npm install "./resources"
- name: Deploy to AWS
run: serverless deploy -v -s dev
working-directory: "./resources"
我有这个问题大约 17 个小时,然后决定全部手动而不是使用包 serverless/github-action@master
推荐阅读
- path - 如何解决这个与 conda 相关的 brew doctor 错误?
- python-3.x - 我的 pytesseract 不工作(我需要帮助)
- git - Git获取我所在的分支的历史记录
- github - 删除所有文件后无法回收操作和包的存储空间
- python - 如何从 Tkinter OptionMenu 中获取选定的值
- android - 将简单的 whatsapp 分享按钮添加到 Wordpress
- reactjs - 如何从另一个文件中提供 Bar 数据?
- swift - 调试控制台为每个循环迭代打印相同的随机数
- python - 这两个kde图有什么区别?
- reactjs - 为什么 svgr 加载一个字符串而不是实际的 svg?