LoginSignup
3
2

More than 5 years have passed since last update.

Circle CIからElastic BeanstalkにPythonアプリケーションをデプロイしてSlackに通知したメモ

Last updated at Posted at 2016-06-26

準備

Circle CIにリポジトリ登録する

Circle CIにサインアップした時点でリポジトリがいくつか表示されているのでポチポチ選ぶ。
選択するとビルドが走る。

AWSのアクセスキーを設定する

BUILDSから登録されたリポジトリを選択し、右上のProject Settingsを選択。
PERMISSIONS → AWS Permissionsと進み、Access Key IDとSecret Access Key IDを登録。
これはビルド時内部的に ~/.aws/config~/.aws/credentials に書き出される。
プロファイル名は [default] になるので、すでに別のプロファイル名で.elasticbeanstalkディレクトリ以下の.configファイルを編集されていたら注意。

Slackを設定する

WebHook URLを取得してCircle CIにぺたり。
Test Hookで確認。

circle.ymlを追加、編集する

たぶんリポジトリルートディレクトリ直下に置かないといけなかったはず。

ディレクトリを指定する

リポジトリのルートディレクトリにソースコードがあれば不要。

general:
  build_dir: src

machineの指定

現在Elastic Beanstalkで作成できるPython3環境に合わせて以下のように。

machine:
  python:
    version: 3.4.3

awsebcliを入れる設定

依存ライブラリもここで入れる。

dependencies:
  pre:
    - pip install -r requirements.txt
    - pip install awsebcli

同時にテストも走らせたい時

以下のように

test:
  override:
    - python test.py

デプロイする設定

ブランチ名とElastic Beanstalk上の環境名を。

deployment:
  staging:
    branch: develop
    commands:
      - eb deploy eb-environment-name

Elastic Beanstalkの設定ファイルを追加編集

デプロイするディレクトリ(今回はsrc)に .elasticbeanstalk/config.yml を追加。
以下のように編集。
前述した通りプロファイル名は default で。

branch-defaults:
  default:
    environment: eb-environment-name
global:
  application_name: eb-app-name
  default_ec2_keyname: null
  default_platform: 64bit Amazon Linux 2016.03 v2.1.0 running Python 3.4
  default_region: ap-northeast-1
  profile: default
  sc: null

すでにプロファイル名をdefault以外で設定してしまっている場合

circle.ymlpre~/.aws/credentials を上書きしてしまえばいい。
最初Circle CI側で ~/.aws/credentials が書き出されることに気づかずに自前で書き出してしまって成功したのでこの手法で大丈夫なはず。

デプロイしてみる

circle.yml.elasticbeanstalk/config.yml をプッシュ。
しばらく待つとデプロイされるはず。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2