は、CircleCiを使用してAWSのECR/ECSにDockerized Pythonフラスコアプリ
私は昨日、Pythonを取得するいくつかの時間を過ごしたFlask アマゾンWebサービス(AWS)への応用うまくいけば、このチュートリアルでは、あなた自身のPython(またはDocker)のWebアプリケーションのために同じようにいくつかの時間を節約することができます!
連続積分(CI)と連続配置(CD)は、チームが一貫した価値を生み出すために急速に協力するのを可能にする強力な技術です.指定されたブランチにプッシュする各コードプッシュは、ターゲット環境にコードを構築、テスト、および配備するためにパイプラインをキックオフします.CircleCiは、インフラストラクチャの管理について心配する必要がないパイプラインを開発者に可能にするサービスとしての統合パイプラインです.
Dockerは、アプリケーションの管理と配信を標準化する素晴らしい技術です.それはUSPSモットーのようです.主要なクラウド・プロバイダーのすべては、Dockerコンテナを配備して、管理する解決策を持っています.
Python 3+ Python Virtual Environments CircleCI Account Docker Terraform
GitHub / BitBucket
AWS Account Deploying to AWS ECR/ECS Dockerize your Flask Application DEV3L: python-flask-aws ウォークスルー
アクセスキー 秘密鍵 アカウントID エリア この情報を取得する方法についての参照here アクセスと秘密鍵のために.あなたのアカウントIDは
パイプラインのCircleCyでは、次の環境変数を設定して入力します.
変数
説明
アプリケーションをホストするために必要なAWSインフラストラクチャを作成する必要があります.これは手動で行うことができますfollowing AWS tutorials そうするには、Terraformは必要な断片を足場にするための雲の不可知論法です.このアプローチでは、簡単に環境を作成できます.たとえば、生産環境を反映したテスト環境のスタックを作成する場合.
リポジトリの例から、
この準備の後、我々は最終的に魔法が起こるのを見る準備ができています!私たちのリポジトリのセットアップ、場所のパイプライン、およびインフラストラクチャTorraformを介して足場、我々が今しなければならないすべてのマスター支店に変更をプッシュします.
一度ビルドは緑、最後のステップは、我々のアプリケーションの上にホストされているURLを見つけることです!
私は確実にこれをする方法があると確信しています、しかし、私はAWSによって作成されたDNS Aレコードエントリを見つけるために私がたどり着いたステップを歩きます. AWSコンソールへのログイン EC 2サービスに移動 左側のメニューから、 ロードバランサのDNS名フィールド 結論
連続積分(CI)と連続配置(CD)は、チームが一貫した価値を生み出すために急速に協力するのを可能にする強力な技術です.指定されたブランチにプッシュする各コードプッシュは、ターゲット環境にコードを構築、テスト、および配備するためにパイプラインをキックオフします.CircleCiは、インフラストラクチャの管理について心配する必要がないパイプラインを開発者に可能にするサービスとしての統合パイプラインです.
Dockerは、アプリケーションの管理と配信を標準化する素晴らしい技術です.それはUSPSモットーのようです.主要なクラウド・プロバイダーのすべては、Dockerコンテナを配備して、管理する解決策を持っています.
必要条件
GitHub / BitBucket
参考文献
ウォークスルー
1 . gitクローンdev 3 l:Pythonフラスコ
これはBearboneリポジトリです.それは意図的にスリムなので、何かを取得し、遅かれ早かれ実行することに集中することができます.
: git clone https://[email protected]/dev3l/python-flask-aws.git
: cd python-flask-aws
plython-flask-aws:
2 . Pythonフラスコこんにちは
コマンドラインから実行される次のコマンドは、新しい仮想環境python-flask-aws
, それをアクティブにするrequirements.txt
ファイルは、最後にこんにちは世界フラスコアプリケーションを起動します.
: python3 -m venv python-flask-aws
: source python-flask-aws/bin/activate
: pip install -r requirements.txt
: python app.py
---
* Running on http://0.0.0.0:80/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 262-674-088
私たちは行くことによってウェブサイトをロードすることができるはずですhttp://localhost
or http://0.0.0.0
. 一度確認すると、ターミナルとプレスに戻るctrl-c
アプリケーションを停止します.
Dockerイメージをビルドする
アプリケーションがDockerの外で動くことができるということを知ったので、コンテナの中で動くようにすることを確認しましょう.
: docker build -t python-flask:latest .
: docker run -d -p 80:80 python-flask
もう一度、この時点でアプリケーションがブラウザを介して利用可能になっていることを確認しますhttp://localhost
フクロップ・サイクレシィ
倉庫のローカルコピーを切断して、それをあなた自身のものに押し上げましょう.これはフォークまたは手動で行うことができます.forkを行っていない場合は、githubまたはbitbucketに新しい空のgitリポジトリを作成します.
: rm -rf .git
: git remote add origin <clone url>
: git add .
: git commit "Add flask-aws project scaffolding"
: git push
一旦、あなたが倉庫の別々のかフォークされたコピーを持っているならばCircleCI . 左側のメニューから「プロジェクトを追加」を選択します.既に行われていない場合は、CircleCiをリポジトリに接続できます.をクリックしますSet Up Project
リストからのリポジトリに.
CircleCi使用./circleci/config.yml
アプリケーションを構築するためのテンプレートとして.このファイル内で参照されるビルド環境変数を設定する必要があります.
そのためには4つの情報が必要です.
: git clone https://[email protected]/dev3l/python-flask-aws.git
: cd python-flask-aws
plython-flask-aws:
: python3 -m venv python-flask-aws
: source python-flask-aws/bin/activate
: pip install -r requirements.txt
: python app.py
---
* Running on http://0.0.0.0:80/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 262-674-088
: docker build -t python-flask:latest .
: docker run -d -p 80:80 python-flask
: rm -rf .git
: git remote add origin <clone url>
: git add .
: git commit "Add flask-aws project scaffolding"
: git push
My Account
AWSコンソールからのメニュー.パイプラインのCircleCyでは、次の環境変数を設定して入力します.
変数
説明
AWS_ACCESS_KEY_ID
AWS CLIによって使われますAWS_SECRET_ACCESS_KEY
AWS CLIによって使われますAWS_DEFAULT_REGION
AWS CLIによって使用されます.例の値:"US - EASH - 1 "( Fargate起動型で指定された領域がサポートされているか確認してください)AWS_ACCOUNT_ID
この情報は展開に必要です.AWS_RESOURCE_NAME_PREFIX
必要なAWSリソースの一部が名前を持つと仮定するプレフィックス.値はaws_resource_prefix
変数の値terraform_setup/terraform.tfvars
.ALESインフラストラクチャを作成するには、TerraFormを使用します
アプリケーションをホストするために必要なAWSインフラストラクチャを作成する必要があります.これは手動で行うことができますfollowing AWS tutorials そうするには、Terraformは必要な断片を足場にするための雲の不可知論法です.このアプローチでは、簡単に環境を作成できます.たとえば、生産環境を反映したテスト環境のスタックを作成する場合.
リポジトリの例から、
terraform.tfvars
ファイルはcloudformation-templates
ディレクトリ.私はこのファイルを.Gitignoreは誤って公共のリポジトリにこれらの秘密をプッシュしないように、各プッシュに注意してください.次の値を特定の値に設定します.aws_access_key = ""
aws_secret_key = ""
aws_account_id = ""
aws_region = ""
これが完了したら、端末のセッションをcloudformation-templates
ディレクトリ.: terraform init
: terraform plan
: terraform apply
数分かかるでしょう.その後、AWSにアプリケーションを配備するのに必要なインフラがあります.ビルド成功
この準備の後、我々は最終的に魔法が起こるのを見る準備ができています!私たちのリポジトリのセットアップ、場所のパイプライン、およびインフラストラクチャTorraformを介して足場、我々が今しなければならないすべてのマスター支店に変更をプッシュします.
一度ビルドは緑、最後のステップは、我々のアプリケーションの上にホストされているURLを見つけることです!
AWS上のビューアプリケーション
私は確実にこれをする方法があると確信しています、しかし、私はAWSによって作成されたDNS Aレコードエントリを見つけるために私がたどり着いたステップを歩きます.
結論
ここではまだたくさんのことがある.たとえば、SSLを有効にするには?私は、これがAWSにCI/CDパイプラインを作る出発点であることを望みました.我々は、'こんにちは、世界を展開アプリケーションは、利用されるツールチェーンは複雑です.例を挙げると複雑になる.
Reference
この問題について(は、CircleCiを使用してAWSのECR/ECSにDockerized Pythonフラスコアプリ), 我々は、より多くの情報をここで見つけました
https://dev.to/dev3l/dockerized-python-flask-app-to-aws-ecr-ecs-using-circleci-6ko
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(は、CircleCiを使用してAWSのECR/ECSにDockerized Pythonフラスコアプリ), 我々は、より多くの情報をここで見つけました https://dev.to/dev3l/dockerized-python-flask-app-to-aws-ecr-ecs-using-circleci-6koテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol