如何在通过 github 操作部署无服务器应用程序时包含未版本化的文件?
How to get un-versioned files included while deploying serverless apps via github actions?
我有一个无服务器项目,它需要 SSL 签名的 cert/private 密钥才能与 API 进行通信。 cert/key 不在版本控制中,但在本地文件系统中。这些文件与服务中的 lambda 捆绑在一起,并且在部署时可以访问使用。
package:
individually: true
include:
- signed-cert.pem
- private-key.pem
部署是通过 Github 操作完成的。
例如npm install serverless ... npx serverless deploy
如何在不将它们添加到版本控制的情况下包含这些文件?可以从 S3 检索它们吗?其他方式?
看起来 encrypting the files 可能可行,但是有更好的方法吗? lambda 可以从 S3 获取它们,但我宁愿尽可能避免每次启动时的额外延迟。
似乎为私钥和证书添加了一个 GitHub 秘密。只需将 cert/private 密钥文本粘贴到 GitHub 秘密中,例如
秘密:SIGNED_CERT,值:-----BEGIN CERTIFICATE-----......-----END CERTIFICATE-----
然后在 GitHub 操作工作流程中:
- name: create ssl signed certificate
run: 'echo "$SIGNED_CERT" > signedcert.pem'
shell: bash
env:
SIGNED_CERT: ${{secrets.SIGNED_CERT}}
working-directory: serverless/myservice
- name: create ssl private key
run: 'echo "$PRIVATE_KEY" > private-key.pem'
shell: bash
env:
PRIVATE_KEY: ${{secrets.PRIVATE_KEY}}
working-directory: serverless/myservice
工作目录,如果 serverless.yml 不在项目的根级别。
我有一个无服务器项目,它需要 SSL 签名的 cert/private 密钥才能与 API 进行通信。 cert/key 不在版本控制中,但在本地文件系统中。这些文件与服务中的 lambda 捆绑在一起,并且在部署时可以访问使用。
package:
individually: true
include:
- signed-cert.pem
- private-key.pem
部署是通过 Github 操作完成的。
例如npm install serverless ... npx serverless deploy
如何在不将它们添加到版本控制的情况下包含这些文件?可以从 S3 检索它们吗?其他方式?
看起来 encrypting the files 可能可行,但是有更好的方法吗? lambda 可以从 S3 获取它们,但我宁愿尽可能避免每次启动时的额外延迟。
似乎为私钥和证书添加了一个 GitHub 秘密。只需将 cert/private 密钥文本粘贴到 GitHub 秘密中,例如
秘密:SIGNED_CERT,值:-----BEGIN CERTIFICATE-----......-----END CERTIFICATE-----
然后在 GitHub 操作工作流程中:
- name: create ssl signed certificate
run: 'echo "$SIGNED_CERT" > signedcert.pem'
shell: bash
env:
SIGNED_CERT: ${{secrets.SIGNED_CERT}}
working-directory: serverless/myservice
- name: create ssl private key
run: 'echo "$PRIVATE_KEY" > private-key.pem'
shell: bash
env:
PRIVATE_KEY: ${{secrets.PRIVATE_KEY}}
working-directory: serverless/myservice
工作目录,如果 serverless.yml 不在项目的根级别。