業務でSAMを使って、Lambdaの管理を行っていますが、CI/CDの設定ができておらず、手動でデプロイしています。READMEに手順は書いていますが、「手順がかけているなら自動化だろう!」ということで、デプロイ設定を行っていきます。準備アプリケーションSAMアプリケーションを作成します。SAMをホストマシンに入れ、下記を実行します。init言語は何でもOKです。自分はGoを選択しました。AWSAWSではCircleCI用にユーザを作成します。ユーザには必要な機能が操作できるように、権限を与えてください。IAMS3CloudFormationLambdaAPIGatewayCircleCIデプロイはCircleCIで行っていきます。社内ではEnterprise版を使っているため、バージョンは2.0で記載していきます。※2.1だとOrbsが使えるので、もうちょっと楽できそうな気はします。ContextにAWSユーザを設定aws-cliを使うため、ユーザ情報を設定する必要があります。直接ユーザ情報を書くと漏洩してしまうので、CircleCIのContextにユーザ情報を記載します。CircleCI)必要な値は下記です。リージョン以外は事前に作った値で大丈夫です。AWS_ACCESS_KEY_IDAWS_DEFAULT_REGIONAWS_SECRET_ACCESS_KEY設定を記載CircleCIの設定を記載していきます。awscliとaws-sam-cliをインストールするため、Pythonのイメージを使います。今回はmasterブランチをトリガーにします。タグは、適時設定でOKです。masterこれで準備OKです。あとはmasterへのマージを行えば、CircleCIが動いてデプロイが走ります。躓いたことS3のバケットがないと怒られるCircleCIでデプロイを実行したところ、下記のエラーがでました...。exist.IAMで権限は付与しているので、作成もやってくれるかと思いましたが、バケットの作成はやってくれないようですね...。CloudFormationのスタックが更新できない一度デプロイに失敗したので、再度実行したところ下記のエラーがでました...。updated.CloudFormationは最初のデプロイで失敗したときは更新できないので、一度削除してから対応する必要があります。Qiita)CloudFormationで経験していましたが、忘れてしまっていました。SAM自体もCloudFormationのテンプレートを作るので、ここらへんの挙動は同じみたいですね。ビルドを忘れていた当たり前ですが、Goのコードはビルドをする必要があります。普段はNode.jsを使っているため、失念していました...。最後にいかがでしょうか?これから対応する人の参考になれば幸いです。#ooc_2020概要まさかの2週連続カンファレンス参戦。前回の参加記録はこちら。Conferenceになりました。今まではPHPの名を冠するカンファレンスに参加していたので、PHPがタイトルについていない初のカンファレンス参加になりました。難しい話が多かったですが、実りあるカンファレンスでした。セッション今回は1つ1つのセッションが重厚だったと思いました。下記に参加したのですが、どれも頭をかなり使うので、あまりツイートする余裕はなかったです...。「分割単位としてのドメイン」について考えるオブジェクト指向プログラミングの現在・過去・未来どれも重厚で、その場で理解するのは難しかったので、あとから振り返ろうと思います。個人的には増田さんの話を聴き、PHP以外の言語でも、業務で使えるレベルにしたいと思いました。今回はスポンサーブースをぐるっと回ってみました。知っている会社も知らない会社もあり、それぞれ業務の話が聴けたのは良かったです。人見知りするため、今までカンファレンスでスポンサーブースは回ってきませんでしたが、こうやって回ってみると良いなと思いました。SOLID原則のステッカーGMOのブースでは、SOLID原則のステッカーを配っていました。1人1つ投票ができましたので、自分はOCPに投票しました。PHPerKaigi2018の後藤さんのセッションで、初めてSOLID原則を知ったためです。2020年2月16日スタンプラリー後の抽選で、GMOタンブラーをGETできました。会社で使ってみようと思います。最後にカンファレンスとしては初めてということで、硬い雰囲気だったなという印象です。トイレが少ない(女子大だしね...)と気になるところはありましたが、全ホール中継も起こっており、全体的にGREATで楽しかったです。スタッフ・スピーカーの皆様、お疲れ様でした。概要juve534.hatenablog.comjuve534.hatenablog.com3年連続の参加です。今回は滑り込みでCfPしましたが通らず、サポーターで参加しました。1年目が一般、2年目がスピーカーだったので、サポーターで名札の色を全制覇しにいきました。結果から言うとジョーカーという枠があり、全制覇はなりませんでしたとさ...。会を重ねても、参加者が楽しめること・コミュニケーションを取りやすいことを重視しているなという印象です。名札にTwitterアイコンを印刷してくれるので、声をかけてもらえることが多かったですし、他の勉強会でも使えるので便利ですね。茶会と懇親会と2回交流イベントがあることで、色々な人と交流できるのが良いですね。本当は懇親会は参加する予定はなかったですが、運も見方したことで参加することになりました。東口さん、めもりーさん、k1LoWさん、のりこさんに感謝です。今年はやはりトレカですね。juve534トレカまさか自分のアイコンがトレカになるとは思いませんでした笑このトレカが名刺代わりになり、トークが弾んだりしていて良いなと思いました。長谷川さんの発想とまつぴーさんのデザインは素晴らしいですね!セッション今回は印象に残ったのは、下記の4つのセッションでした。VMにおける例外の実装マスターデータの管理運用と実装についてPHPとEventSauceで始めるイベントソーシングアプリケーションを聴く特にk1LoWさんの話は良かったですね。自分たちも、新しい人が入るときの導入コストを感じており、参考になる部分がありました。nさんとは、発表後に茶会で話すことができ、インフラ構成の変更が途中で入ると辛いという話をしました。自分たちもそれでキューの導入を悩んだ経験があり、最初のうちからイベントソーシングを検討しておきたいと思いました。まとめ今回も素晴らしいカンファレンスでした。普段はPHPを使って、DBからデータを取得しています。通常はそれで問題ないですが、PHPだとサーバに入れる必要があります。したデータを取る際に、いちいちサーバにPHPを入れるのが面倒だと感じました。そこで、PHPを入れないでもDBからデータを取得できるように、シェルでスクリプトを書いてみます。','これでざっくりデータをとってきて、csv形式の吐き出しは完了。19卒のメンバーと一緒に行ってきました。内容Androidについての話がメインなので、あんまりついていけず...。MVPなアーキテクチャだったと思いますが、MVVMに変えた時にどのくらい修正量あったのか気になります。A.1ヶ月くらいコツコツやった。UIが大幅に変わるタイミングでガツッと変えた。テストはしっかり目でやった。moduleにする際にfeaturesはどのような単位で切られているのですか?A.機能がまとまった単位で作成する1画面だと分けすぎアーカイブ配信でもライブ感を味わいたい内容メインイベントの1つ。LCのリプレイスでも、コメントを保存する仕組みが必要になるため。docで運用してみての感想を聞きたいですA.開発をすすめるときに、レビューを素早くできる。※思想が素早くできるため開発後の最終型を、みんなでイメージしやすいQ.アーカイブコメントと映像の時間同期について詳しく!A.HLSの送信時間をベースに、クライアントから送信してもらっている?ライブ配信で中断した時間を、アーカイブで削除することがある。LiveDataで実現。Liveは子会社で人数は少ないということですが、CookPadという大企業の恩恵は受けていると思いました。Liveはすべてスポットインスタンスで運用とのことというのが全社的な方針で決まっているらしいです。SQSだったか忘れてしまいましたが、特定のAWSサービスを使い倒してフィードバックしているようでした。docの保守について伺ったところ、「ドキュメントは腐るので保守していない」とのことでした。メンバーが少ないので、あまり過去を振り返る必要がないのも大きいとのこと。docはその時の設計レビューで使うが主なようです。懇親会でももさんに貴重なお話が聞けてよかったです。概要Go言語でなにか作る際に、色々準備をするのでメモを残します。mod最近のバージョンで、パッケージ管理が標準で装備されたようです。使っていた標準のものを使うので、プロジェクトを始める際は初期化をします。github.com/xxxxxこれでバージョン管理の準備はできたので、必要なパッケージを入れていきます。lintチェックGo言語は書きなれていないので、リンターチェックを充実させます。golang.org/x/tools/cmd/goimportsひとまずはこれだけ入れます。あとは、プロジェクトに合わせ、必要なパッケージをインストールしていきます。Tips概要GitHub上ではプルリクエストを出したときに、ブランチを削除するようにしていたが、ローカルは毎回削除していなかった。すると、ローカルにブランチが溜まってしまい、一々削除するのが面倒になっていた。前回はpecoを使って、Gitリポジトリを移動したが、今回はGitのブランチを掃除する。peco)こうすると動的にブランチを検索して消すことができます。ブランチが溜まって、どれを消したらよいか迷っている人は、ぜひ使ってみてください。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。