CodePipelineでデプロイ前に手動承認させてチャットワークに通知する(前編)
はじめに
みんな大好きCodePipelineで今回は手動承認を行ってみます。
本番環境などデプロイには慎重になりたい場合に承認手順があると本番運用も格段にしやすくなりますね。
大まかな流れは以下のような感じです。
GitHubコミット
↓
CodePipelineにWebhook
↓
SNSトピックに通知
↓
SNSトピックを購読しているlambdaが起動
↓
lambdaがチャットワーク通知
↓
コンソールから手動で承認
↓
デプロイ!
この承認通知にはSNSトピックを指定できるのでメール通知も出来ますが、例によってチャットワークに通知してみたいと思います。
チャットワーク、だ〜い好き♡
ところで、ちょっと前にCodePipelineのコンソールがマテリアルデザインっぽく変わりました。今後は色んなコンソールをこんな感じにしていくんでしょうね。
パイプラインの作成
承認ステージは一旦パイプラインを作成してから出ないと追加できないので、まずはパイプラインを作成していきます。
ソースはGitHub、本番用を想定してリポジトリのブランチはmasterです。
デプロイステージではとりあえずElasticBeanstalkを選択しました。
パイプラインを作成すると例によってすぐさま起動するのでまずければ無効化しておきます。
Lambda関数の作成
次にチャットワークに通知するlambda関数をserverlessフレームワークで作成します。
(serverlessが入ってない場合はnpm i -g serverlessでインストール)
$ serverless create --template aws-python3 --path approval-notification
cw-notification/直下にrequirements.txt、serverless.yml、handler.pyを配置します。
中身は以下のようにします。
serverless-python-requirementsに関することはクラスメソッドさんの記事を参考にいたしました。
https://dev.classmethod.jp/cloud/aws/managing-external-modules-with-serverless-framework-plugin/
以下コマンドでデプロイします。(slsはserverlessのエイリアスです)
$ sls deploy
しばらく待ちます…
デプロイ完了するとlambda関数一覧にapproval-test-dev-SnsToCwが増えていると思います。
ちなみにSNSからのイベントでhandlerの関数の最初の引数に入ってくる内容は以下になります。
以前のコンソールですとapprovalReviewLinkのリンクで直接承認ダイアログが表示されていたのですが、
今のデザイン版では開いてくれないみたいです…
結構長くなったので後編に続きます。
TAG
基本的にRuby on Railsで開発してます。最近はvue.jsも。好きな塔は円城です。
TAG
- Android
- AWS
- Bitrise
- CodePipeline
- Firebase
- HTML
- iOS
- IoT
- JavaScript
- KPI
- Linux
- Mac
- Memcached
- MGRe
- MGReのゆるガチエンジニアブログ
- MySQL
- PHP
- PICK UP
- PR
- Python
- Ruby
- Ruby on Rails
- SEO
- Swift
- TIPS
- UI/UX
- VirtualBox
- Wantedly
- Windows
- アクセス解析
- イベントレポート
- エンジニアブログ
- ガジェット
- カスタマーサクセス
- サーバ技術
- サービス
- セキュリティ
- セミナー・展示会
- テクノロジー
- デザイン
- プレスリリース
- マーケティング施策
- マネジメント
- ラボ
- リーンスタートアップ
- 企画
- 会社紹介
- 会社紹介資料
- 勉強会
- 実績紹介
- 拡張性
- 採用
- 日常
- 書籍紹介
- 歓迎会
- 社内イベント
- 社員インタビュー
- 社長ブログ
- 視察
- 開発環境