Как получить файлы без контроля версий при развертывании приложений без сервера с помощью действий github? - PullRequest
1 голос
/ 16 января 2020

У меня есть серверный проект, для которого требуется сертификат / закрытый ключ, подписанный SSL, для связи с API. Сертификат / ключ не находятся в управлении версиями, но локально находятся в моей файловой системе. Файлы связаны с лямбдами в сервисе и доступны для использования при развертывании.

package: 
  individually: true
  include:
    - signed-cert.pem
    - private-key.pem

Развертывание выполняется с помощью действий Github. например, npm install serverless ... npx serverless deploy

Как эти файлы можно включить, не добавляя их в систему контроля версий? Могут ли они быть извлечены из S3? Как-то иначе?

Похоже, шифрование файлов может работать, но есть ли лучший подход? Лямбды могут извлекать их из S3, но я бы предпочел избежать дополнительной задержки при каждом запуске, если это возможно.

1 Ответ

1 голос
/ 16 января 2020

Похоже, что добавление секретного ключа GitHub для закрытого ключа и сертификата работает. Просто вставьте текст сертификата / секретного ключа в секретный файл GitHub, например

Secret: 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 не находится на уровне root проекта.

...