【メモ】AWS CodeDeploy で GitHub の Organization Account の Private Repo をデプロイできなかったので調査メモ
ハマった。あとで技術ブログにまとめるために備忘録。
やりたかったこと
- EC2 で動いている WEB アプリのデプロイ自動化をやりたい
はまったこと
- GitHub の Organization アカウントのプライベートリポジトリに CodeDeploy がアクセスできない
- ソースコードの pull で 404 NotFound になる
- GitHub と CodeDeploy の連携が必要っぽいのだがどうすればいいかわからない
結論
- AWS CLI だけだと多分完結できなくて、一回手動で CodeDeploy のデプロイ作成画面で「GitHub に接続」を押して連携する必要あり
- Organization の Owner アカウントだとそれだけでいけるけど、そうでない場合は Organization にアプリ連携のリクエストする必要あり
- 連携→連携解除したら
$ aws deploy delete-git-hub-account-token --token-name <tokenName>
でキレイに消そう
メモ
で、この作業を Organization の Owner の GitHub アカウントで実施した場合は、この状態で Organization と連携できてるので完了。そうでない GitHub アカウントで実施した場合は、Organization にアプリ連携をリクエストする必要ある。やり方は GitHub 公式ヘルプのこちら。
で、この作業をした後に、GitHub 側で連携解除したら、CodeDeploy 側に保存されているアクセストークン情報も削除する必要ある。 $ aws deploy list-git-hub-account-token-names
で確認して、$ aws deploy delete-git-hub-account-token --token-name <tokenName>
でキレイに消してからやってみるとうまくいく。
ハマった要因
- 今と昔でちょっとやり方が違うっぽくて、昔のやり方の記事にヒットしてごちゃごちゃわちゃわちゃやってたらわからなくなった。焦らず落ち着いてやろう(自戒)。
- AWS のドキュメントの日本語にまだ慣れてないので読めない、、、精進します。
ちょっとこれは AWS の人に聞いてみたい
スーパーエンジニア Richardさん来日 Meetup を開催しました
2017年7月30日(日)に リチャードさん (@mackstar) の来日 Meetup を開催しました。
まとめ記事はこちら!
懇親会からハッシュタグが生まれたのでそちらも。
会場提供と懇親会スポンサードしていただいた サイボウズスタートアップス様、本当にありがとうございました!!
今回は郡山さんと二人でイベント企画したので、イベント企画、会場探し、リチャードさん・郡山さんと打ち合わせ、参加者招待、当日も司会進行、ランチ・懇親会の準備、、、などなど結構てんやわんやだったので、聞けてない部分が多かったんです・・・!!汗
が、いくつか本当に素晴らしいインスピレーションをいただけたので、後ほど自分のためにまとめます!リチャードさん、郡山さん、そして参加いただいたみなさん、本当にありがとうございました。また次の来日もやりたいですね!
It was an absolute pleasure to share how we do software engineering in the UK to this ace group. I love the development community in Japan. pic.twitter.com/nujxw7LZ4r
— Richard McIntyre 🍣 (@mackstar) 2017年7月30日
Always lots to learn from this chap! Great to catch up with with @koriym pic.twitter.com/NmEyNfUGY2
— Richard McIntyre 🍣 (@mackstar) 2017年7月30日
PHP Testing Study #1 を開催しました!
Scrutinizer で Unknown database というエラー
Symfony で作ったアプリケーション を Scrutinizer で composer install するときにこんなエラーで困った人います?
[Doctrine\DBAL\Exception\ConnectionException] An exception occured in driver: SQLSTATE[HY000] [1049] Unknown database 'symfony' [Doctrine\DBAL\Driver\PDOException] SQLSTATE[HY000] [1049] Unknown database 'symfony'
状況としては、アプリケーションで設定しているデータベースがないよってエラーですね。そのままです。
解決方法
どうすんねん、と少し悩んでいたのですが、.scrutinizer ファイルに以下を記述し解決。
build: dependencies: before: - mysql -e "CREATE DATABASE symfony"
こんな感じで composer install する前にデータベース作成を実行してくれます。
今回の設定はドキュメントの Build Configuration - Dependencies & Project Setup に書いてありました。ドキュメントのサンプルでは project_setup
にデータベース作成のコマンドが記載されいますが、この project_setup
は dependencies
、つまり composer install 後で実行されるようで、今回のエラーだと composer install 実行前にデータベースが作成されている必要があったため不適でした。dependencies > before
に設定するのが正解のようです。
まとめ
日本語、いや英語でも How to の情報が圧倒的に少ない Scrutinizer ですが、基本的なところは柔軟に設定できそうなので上手く付き合っていきたいところです。
草野球リーグ運営アプリの開発 a.k.a ひまつぶし 1
このとおり、土日働いたらダメよ指令があったので、前々から作成したかった草野球リーグ運営のアプリの開発をしてみた。The ひまつぶし。ターゲットとするリーグは IT LEAGUE。チームの代表者として参加しているので運営についてもなんとなく把握している!野球も中学校からやっているのでなんとなくしっている!今日は Day 1。
まずはいつもとおり、どんなドメインがあるのかフリーハンドで書いてみる。特定のドメインを決めて深掘りする。やりかたは以下の 1 ~ 3 を何回か繰り返す。あーなんとなくこれでいけそう!ってなるまで繰り返す。
ビジネスロジックや用語にまよったら辞書や野球のサイト、野球のルールブックを見てみる。用語のより専門的な「呼び方」や「意味」からすごーく深いい情報が得られたりする。今回だと以下を参考にした。今回だとリーグの「シーズン」っている概念がなんとなく頭から抜けていて、MLBのサイトを見て「シーズンでフィルタ」する機能を見て気付いた。あと選手の成績としてどんなデータを残すのか?という観点で表示されているデータからより深く洞察できるようになったりした。
なんとなく頭で実装イメージが湧いてきたところでコーディングを開始!1回くらいは作りなおすなーくらいのテンションで手を動かすこともどんどんやって実装からフィードバックを得ていく。採用した技術は慣れている PHP + Symfony。DB は MySQL。開発環境は PHP のビルドインサーバ。
結局、今日は分析と Entity, Repository の作成を半分くらいまででおわた!分析でだいたい5時間くらい(°_°)実装は3時間くらいかな。野球のルールブック見てたら日が暮れてもた笑 FOSUserBundle, EasyAdminBundle を利用してさくっとスタート!!
画面はこんな感じ。
また時間あいたらちょっとづつ開発していこーっと。 ひとりきままなざっくり開発最高!
もっとゆるふわに考えていくこと
最近、いろいろ考える。周りの仲間もいろいろ考えている。自分のこれまでを振り返る。これでいいんだろうか?と少し悩む。これからどうやって生きていこうかと思いがふくらむ。
自分はこの数年、ほぼ仕事しかしていない。仕事にしか打ち込めていない。時々、「あれ、これでいいんだっけ?」と不安になる。そして、たまーになにしてきたのかを振り返ったりする。振り返りろうとしている。Wantedly からプロフィール埋めてねリコメンド来てたので少しだけ埋めてみた。う〜ん、大したことしてないから書けない(笑)。また後で書こう。
まだまだいろんなことにチャレンジできるしチャレンジしていきたい。成したいこともある。取捨選択が難しい。一度決めたことが変えられない、選び直すことができない。できなかった。なんか物事から逃げているみたいで。でもそれって、「絶対これは変えちゃだめなんだ!」って思い込むことによって変化から逃げ、自分を守っているだけだよね。これからもうちょっとゆるふわに考えてみたい。
今週末はSymfony Meetup #8 !!
今週末は Symfony Meeup #8 を開催しますー!UUUM株式会社さんのステキなオフィスで開催ですよ!
当日は書籍「基本からしっかり学ぶ Symfony2入門」の写経会も実施する予定です。講師は著者の後藤さん(@hidenorigoto)と金本さん(@qckanemoto)。著者による写経会というのはかなり貴重な機会だと思いますので、入門者の方に超オススメします!Meetup には Symfony に興味がある方が多数参加されますので、友達作りや交流するキッカケとしてぜひ遊びにきてください。
さて、
週末の Meetup に先駆けて写経会に必要な開発環境の構築会を開催しました。水曜日と金曜日で二回に分けて開催です。
どんなことをしたのか?
「本を読みはじめたんですけど、いざコードを写して書いてみようと思うと PHP のインストールとかの環境構築ができない・・・挫折!」という入門者の方のために、講師の方と一緒に環境構築をしてまずスタートラインに立てるようにしよう、というのが会の主旨です。写経にはアプリケーションを動作させる環境が必要で、その環境構築には、PHP のインストール、Apache の設定などなどが必要になってきます。ルーキーの中には「そこまでまだ一人でできない!」という方も多いと思います。「じゃあそれできないと書籍読めないのか」というとそうでもなくて、まず Symfony に触れてその世界に飛び込んでみるというはチャレンジとしてはアリだと思っています。なので、「細かいことはよくわかってないけどとりあえず動く環境用意する!」という感じで最低限の説明と共に環境構築しました。
もちろん、今回の環境構築に必要な知識がないとエンジニアとしての基礎が養われないので、そのあたりは引き続き習得していただく感じで。(このあたりは自分も全然できてなくて、もっと勉強していかないと、と日々学習に励んでます。)
結果的に、参加者全員が環境構築まで完了できたのでよかったです^^写真は作業中の様子。
環境構築のハマりポイント
今日の環境構築でハマったところを2つピックアップ。今回はエンジニア歴2年の2人の方と一緒にやっていたのですが、特に大きくハマることなくスムーズに構築できました・・・!(でも全工程で3時間掛かった)
Symfony が動作する環境かどうかを判定を $ php app/check.php
で確認できます。実行し PHP の拡張モジュールが足りない、など要件を満たしてませんよ的な主旨のメッセージが表示されたら、まずそれを修正する必要があります。どうやって解決するかは内容によって異なるのでここでは詳細に書きませんが、まずこのスクリプトの実行結果で OK と表示されるまでやってみましょう。
- 書籍にコマンドの誤りがあるので正誤表を確認しよう
書籍にコマンドの誤りが一部あるので、そのまま叩くと失敗することがあります。正誤表は こちら で公開されいていますのでまずさっと見てみるとよさそう。今回は $ symfony new classic-symfony2.7
で 2.7 の前にスペースを空けずに実行したりして失敗されていることがありました。
というわけで、Meetupでお会いしましょう!
今週の Meetup でお待ちしています!まだ残席ありますのでぜひ。環境構築会など初心者向けの会は今後も実施していきますので、そちらもご期待ください^^
では!!!
RESTful#とは勉強会10に参加してきた!
RESTful#とは勉強会10に参加してきた!郡山さん (@koriym) が講演されるということを聞いていってみよかなーって感じで参加!楽しかったです。毎度のことですが、中身はあんまりないですが、参加ログ!!!
どんなことをしたのか?
募集ページにあるとおりで、
RESTプロフェッショナルの 川村 徹 さんとフリーランスPHPプログラマーで、WebアプリケーションフレームワークBEAR.Sundayの開発者として知られる 郡山 昭仁さんをお迎えし、RESTfulに関して基礎から学ぶ勉強会です。
内容は、①「WEBを支える技術」の読書会 〜② 郡山さんのトーク 〜 ③懇親会という感じでした。
読書会パート
読書会パートは3人〜4人でひとつのグループになって声に出して輪読しつつ疑問点などあったらグループ内で話し合う、という形式。今日は「キャッシュ」に関する章から。参加したグループはなんと全員 PHPer の Symfony、Silexユーザでちょっとびっくり。ETag って Symfony だとこんな計算の実装ですよね〜とか話題になって、全員初対面なのに親近感がわきましたw 社会人になって、読書会に参加したのははじめてかも。一冊の本に対して議論をしていると結構いろんな方向に話が広がったりして面白かったデス。本の内容も基本的なものだったので、ちょっと知ってる前提で「これってこうだよね」みたいな感じで始められたので気楽でした(難しい本だと、そもそも理解するのにすごく時間が掛かったり、誰もちんぷんかんぷんになったりとかなりそう。)もちろん、知らないこともあったりして、都度確認しながら進めていく感じでした。例えば、キャッシュヘッダの方針について
キャッシュさせない場合は、Pragma と Cache-Control の no-cache を同時に指定する
というものに対して「これってなんでだっけ?」みたいな質疑がでてたりしました。
この書籍はこの読書会のために会の直前で買ったのでまだ全く読めてないです!ちょっと読み進めてみたいと思います。
郡山さんのトークパート
前回の Symfony Meetup #5 でも再演していただいた PHPカンファレンス福岡の基調講演の再演トークをしていただきました!二回目で理解も深まりました!!僕は郡山さんのファンなのでそもそもめっちゃ面白いのですが、現場でも盛り上がってたみたいですね!
郡山さんのPHPカンファレンスでの講演の再演「全てを結ぶ力」 #RESTudy pic.twitter.com/35wolmnj6B
— 直接コントロールできない何か (@suginoy) 2015, 9月 29
今日の話は壮大で素晴らしかった。人類の知へのアプローチのリレーだった。 #RESTudy
— igaiga (@igaiga555) 2015, 9月 29
今日はwebの起源を知れて、ヘッダー重要だよも知れて、参加出来てよかったです!!! #RESTudy
— ❄*☃*❄ (@murokaco) 2015, 9月 29
今回の参加者の方は郡山さんと面識がない方が多くて「この御方、誰や!?」みたいな感じでトーク終わったあとや懇親会で検索されている人がいて、いつもの「郡山さん話すと油性ペンが〜」みたいなノリと違う感じで楽しかったです。
本編総括
そんなこんなで楽しかったです。以上。
懇親会
懇親会、いや〜久々に視野狭い自分の視野が広がった会でした。
- 「ヨッシーのたまごを支える技術」について郡山さんに教えてもらう。アセンブラでの実装とか、ファミコンの処理についてなど。
- Vimmer な女子に出会う。というかそもそもエンジニア、プログラマーな女子とこんなに話すのはじめて?かも。論理和の話で笑える女子、実在するんだ・・・。ステキっすね・・・。
- 帰り道で川村さんにフリーになったこととかいろいろ教えてもらう。キャリアどうしよーとか考えることが多いのでめっちゃ興味でたっ
あと自己紹介で「せたといいます!」と言ったら「(Twitterの?)IDは?」と聞かれてあたふたするなど。twitter とか SNS はほんとにやらないのできょどる。など。
そんなこんなで
- WEBを支える技術、という本を読むきっかけになった!読む。
- 社会人になって読書会、初体験。ちょっと会社でもやってみたいなー
- 自身の女子感に広がり。
- 川村さんに出会う、話を聞く、もっと話を聞いてみたくなった!
次回もぜひ参加したいなー!そんな会でした。