私のアプリケーションのためにデプロイメントパイプラインを自動化しようとしています。あなたは私が私の展開を自動化するためにcodePipelineとcodeBuildを使用しています、見ることができるように AWS codeBuild/codePipeline with serverless framework
:ここでは、自動化アーキテクチャがあり、私が思い付きました。私のバックエンドは、Serverless Frameworkに基づいています。これは、sls deploy
コマンドを発射する際にラムダ関数をデプロイします。これが理由で、私はcodeDeployを使って従来の展開を行っていませんでした。 buildspec.yml
ファイルは次のようになります。
質問1:コマンドsls deploy
がconfig.yml
と呼ばれるファイルに依存
version: 0.1
phases:
install:
commands:
– apt-get -y update
– npm install -g [email protected]
build:
commands:
– cd nj2jp/serverless && npm install
post_build:
commands:
– serverless deploy –verbose
artifacts:
files:
– serverless.yml
discard-paths: yes
、私は3質問CodeBuildとサーバレスに関してでを持っていますdbパスワードなどの秘密を含んでいます。このファイルはgitにチェックインされません。 codeBuildにconfig.yml
を含める最良の方法は何と思いますか?
質問2:私たちはcodeDeployを使用して、従来のEC2アプリケーションを展開する必要がある場合ロールバックは、AWSで行うことができます。サーバレスの場合、codeDeployを使用していません。また、サーバレスの場合はロールバックの機能もサポートしています。 codePipeelineの中でサーバレスロールバックをどのように活用するのですか?
質問3:プルリクエストが発生したときにコードパイプラインをトリガーします。私はいくつかの投稿が、codePipelineによってサポートされていないと言っていました。しかし、これらの投稿は昨年のものでした.Pull Requestは現在codePipelineでサポートされていますか?
ハックは(正しくないが、作品をあなたからより良い答えが必要です。)回答
回答1:config.yml
ファイルは、プライベートS3バケット内に保存することができ、codeBuildに引くことができますpre-build
setupの一部として、またはすべての秘密をcodeBuildのEnv変数に追加することができます。私はすべての環境で一貫性を持たせたいので、第二の選択肢は気に入らない。この問題の解決策はどれですか?
回答2:私はこれのためのハックを考えることはできません。あなたからの回答を探しています。
回答3:私はプル要求のcodePipelineをトリガする[APIGateway + Lambda + S3]を使用して、いくつかのブログの記事に出くわしました。しかし、私は、この機能はすぐに使えるものとして提供されなければならないと感じています。この機能のcodePipelineに関する更新はありますか?
ワンダフルアンサー!!あなたの答えは完全に理にかなっています。好奇心が強い、異なるブランチ(prod、dev&stg)間で環境(秘密)をどのように管理しますか?私は '.env.prod'、' .env.dev'、 '.env.stg'のような環境ごとに明示的な' .env'ファイルを使用しています。これらはすべてgitにチェックインされていません。 –
私の秘密はすべてEC2パラメータストアに保存されています。私の開発者、ステージング、プロダクションではAWSの別々のアカウントを使用しています。だから、私は簡単に同じ変数名を使用して衝突を心配することなく使用することができます。 – dashmug
ああ素敵!しかし、あなたはそれを地元の環境でどのように管理していますか?同じ変数だが異なる値になるようだ。 envファイルもバージョン管理していますか?はいの場合は意味があります。私は、それはプライベートレポのために良いと思います。 –