如何在通过 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 不在项目的根级别。