SMARTCAMP Engineer Blogのフィード
https://zenn.dev/p/smartcamp
SMARTCAMPに所属するエンジニアの個人記事を集めています。 記事の内容は個人の見解であり、社内でのレビュー等は行っておりません。
フィード

GitHub Actions を使うなら、気にしたほうがいいこと から1年経って得た知見
2

SMARTCAMP Engineer Blogのフィード
https://zenn.dev/smartcamp/articles/1444487997ae511年ほど前に GitHub Actions を使うなら、気にしたほうがいいこと というタイトルで記事を書かせていただきましたが、この1年でそれなりにGitHub Actionsを書いてきました。その中でこれ意外と使うかも、いいノウハウかもと思ったものをまとめました。 前段ワークフローが成功またはスキップの場合、実行したいワークフローによっては前段のワークフローが成功したとしてもスキップしたとしても、実行したい場合があると思います。その場合はif: ${{ !cancelled()...
3日前

GitHubActions 複数のCodeDeployのデプロイを新コンテナが立ち上がるまで待機するためのShell芸
1

SMARTCAMP Engineer Blogのフィード
GitHubActionsでCodeDeployのデプロイを行い、新コンテナが立ち上がるまで待機したい...しかも複数環境...なんてことはないでしょうか?私はあります、そんなときに使えるShell芸を紹介します。 コード例name: example workflowon: workflow_call: inputs: ENVIRONMENT: required: true type: string AWS_REGION: required: false type: strin...
7日前

ECSサービス検出とCodeDeployのブルーグリーンデプロイを組み合わせる場合の注意点
SMARTCAMP Engineer Blogのフィード
前提app1とapp2が存在しているapp2はサービス検出を使っているapp1からapp2に対してリクエストを送信することがある 注意したいことapp2でCodeDeployのブルーグリーンデプロイが行われたとします。それぞれのフェーズの最中にapp1からapp2にリクエストが送信された場合どんな挙動になるか確認してみました。新コンテナデプロイ中旧コンテナのみ繋がる新コンテナのデプロイ完了(トラフィック切り替え待ち)旧コンテナ、新コンテナのどちらかにランダムで繋がる新コンテナへトラフィック切り替え完了(旧コンテナ停止待ち)旧コンテナ、新コ...
9日前

過去に実行したGitHubActionsワークフローのアーティファクトを取得したい
SMARTCAMP Engineer Blogのフィード
アーティファクトをさくっと取得したいデプロイフローにいくつか手順があって、前段で実行したワークフローで保存したアーティファクトを取得したいなんてことがあると思います。そんなときはワークフローのrun_idを取得して辿ることが可能です。 コード例過去に実行したワークフローの情報を取得する際にGitHubのREST APIを使っています。ワークフローのIDを指定することも可能ですが、以下の例ではファイル名を使ってrun_idを取得しています。またQuery parametersで正常終了の場合や実行者などで条件をつけることもできます。name: Download Arti...
9日前

CodeDeployのdeployment_idから辿って、ECSサービスタスク内のコンテナのイメージタグを取得したくなった
SMARTCAMP Engineer Blogのフィード
経緯CodeDeployを使ったブルーグリーンデプロイをしているGitHub Actionsを使ってデプロイを行っているデプロイのワークフローではコンテナのビルドのあとにデプロイという順番で処理しているコンテナをビルドしてECRにプッシュする時にイメージタグを指定しているブルーグリーンデプロイでデプロイされるECSサービスタスクとは別のECSサービスタスクをトラフィック切り替えのタイミングでデプロイを行いたい要件があり、訳あってイメージタグは同様のものを使いたい新コンテナデプロイ完了後のトラフィック切り替え待ちの状況でCodeDeployからのイベントをSNSがキャッチ...
9日前

DB設計を比較する際の考慮事項
SMARTCAMP Engineer Blogのフィード
前書きDB設計を行う際に複数案がある場合、比較しやすい項目・判断を行いやすいものを先輩に教えてもらったので、備忘録として残しておきます。 今回の前提DB設計において自分が複数の提案をしている状態複数案は破綻しておらず、どれも一長一短ある状態どの案を採用するかは複数人で決める 総合的に判断しやすい比較項目工数ユーザーへのインパクト負債を負わないか 工数DB設計後の具体化(テーブル・プロダクトコード)への落とし込みにかかりそうな時間比較する場合期限に間に合うかどうか工数のメリット対して他の項目のデメリットをどれほど許容できるか ユー...
15日前

mantineでaタグの中にaタグを入れるとエラーが出た
SMARTCAMP Engineer Blogのフィード
エラーが出る理由mantineを使っていると以下のようにCardをリンクにしつつ、中にボタンのリンクを入れたくなる時があると思います。(今回の場合はNextなのでLink)import { Card, Button } from "@mantine/core";import Link from 'next/link'<Card component={Link}><Button component={Link}>詳細</Button></Card>しかし、これはHTMLの仕様上許されておらずNext.jsなどで...
16日前

action_argsを使うとリクエストに自動的にモデル名が追加される罠にハマった
SMARTCAMP Engineer Blogのフィード
経緯Railsでuser_informations_controller(仮)にPOST APIを追加Rspecで下記の内容のjsonをリクエストするテストを書く{user_information: {name:ex}}controller内でリクエストを見るとなぜか空のjsonがリクエストされている{user_information: {}} 原因action_argとparamsに対してdeep_transform_keys!(&:underscore)を使っていたのですがそれが原因でした。action_argsは自動的にリ...
16日前

Active Storageで画像をパブリックにする方法
SMARTCAMP Engineer Blogのフィード
こんにちは!!GWに有休を使って長期休みにしておらず、普通に働いています...(休みたかった今回はActive Storageで画像をパブリックにする方法とどのように実装されているかについて記事にしました。前提としては以下です。Ruby : 3.4.XRails : 8.0.XストレージはAWSのS3CDNで画像をキャッシュしたいため、画像をパブリックにしつつ生成されるURLを固定にしたいすでにプライベートな画像をActive Storageを用いて保存している Acitve Storageで画像をパブリックにする方法まずはRailsガイドにもある通りサービスを...
19日前

[Github Actions] Github Scriptは別ファイルに切り出せる
SMARTCAMP Engineer Blogのフィード
前置きGithub公式ActionであるGithub Scriptですが、今までインラインでしか書けないと思い込んでおりシンタックスハイライトも入力補完も効かない状態でコーディングしていました。何とかならないものかとREADMEを読み漁ってみるとどうやら別ファイルに切り出せるらしい...https://github.com/actions/github-script やってみる!このセクションで登場するコードは生成AIが記述したものになります。動作は保証できないので雰囲気を感じ取る程度の温度感でご覧ください🙇♂️ ポイントスクリプトを配置するディレクトリに...
1ヶ月前

エンジニアが商談に興味を持った話
SMARTCAMP Engineer Blogのフィード
新卒二年目になった人です。プロダクトの商談に興味を持って、やったこととメリットをつらつら書きます。 経緯元々技術とプロダクトに対して興味があるタイプの新卒だったのですが、入社して数ヶ月後にBizの同期がプロダクトに対しての勉強会を開いてくれまして。プロダクトってどういう風に顧客に対してアピールされているのかという疑問をもったところが始まりです。まぁ気になることは解消しろということで。 やったこと商談・マーケティング周りの本を読む商談用資料をエンジニアにも公開してもらう商談録画をエンジニアにも公開してもらう商談相手を想像してみる メリット モチベーションが...
1ヶ月前

Rubyで急にcsvがuninitialized constantエラーになった
SMARTCAMP Engineer Blogのフィード
背景CircleCIでRailsのRSpecがcsvのuninitialized constantで急に落ちるようになった。CIでrubyのバージョンが3.0.6から最新のバージョン(3.4.x)に上がった。 原因ruby3.4からcsvがdefault gemではなくなったのが原因。 default gemとは標準ライブラリでgem化されているいるもの。以下のコマンドでdefault gemを確認できる。$ gem listdate (default: 3.4.1)などdefault gemにはdefaultと書いてある。 解決方法CSVのgemを明...
3ヶ月前

技術記事とブログ記事の管理で疲弊しないために
SMARTCAMP Engineer Blogのフィード
はじめにこんにちは、はじめまして。最近はNotionをMarkdownに変換するOSSツールの作成が趣味になっている、まるべいじ(malvage)です!今回、OSSツールをもっと手軽に使ってもらうためのデモサイトを作ったので、紹介します!インストール不要で、すぐに試せるデモサイトなので、ぜひ触ってみてください。https://nmc-demo.malvageee.com/ まずはOSSの紹介https://github.com/salvage0707/notion-md-converter どんな課題を解決してくれる?このツールは、Notionのページを色々なプ...
3ヶ月前

Zenn記事の執筆を効率化!NotionのMarkdown変換ライブラリをnpm公開
SMARTCAMP Engineer Blogのフィード
はじめにこんにちは。はじめまして!まるべいじ(malvageee)です。先日、NotionのページをMarkdownに変換するライブラリをOSSとして公開しました。Zennにも対応しているので、技術記事を書いている方にも便利です。📢 公開記事:https://zenn.dev/smartcamp/articles/4b3e05623bf11e初回リリース時はgit cloneが必要で、導入のハードルが少し高かったのですが、今回はnpmに公開しました!これにより、より簡単に導入・利用できるようになりました。この記事では、ライブラリの使い方を詳しく解説します。すぐにサン...
3ヶ月前

Notionからmarkdownに変換するOSSを公開しました(Zennも対応)
SMARTCAMP Engineer Blogのフィード
はじめにこんにちは。はじめまして。まるべいじ(malvageee)と申します!まだ完成系じゃないですが、Notionからmarkdownに変換するライブラリをOSSとして公開したので、経緯など含めて紹介しようと思います。https://github.com/salvage0707/notion-md-converter変換されたMarkdownはこちらから確認できます。https://zenn.dev/salvage0707/articles/4105ccdf1690c8この記事もこのライブラリを使って変換処理されたMarkdownを使ってます。Notion記事:htt...
3ヶ月前

ECSタスクスケジューラのトラブルシューティング
SMARTCAMP Engineer Blogのフィード
この記事はECSタスクをタスクスケジューラから動作させる時に、うまくいかなかったことがあったので、解決までに何を確認したかをまとめましたhttps://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/scheduling_tasks.html CloudWatchからメトリクスを確認ECSタスクをタスクスケジューラから動作させる場合は、CloudWatchイベントルールを設定する必要がありますが、そのメトリクスからECSタスクの呼び出しに成功しているかどうかを確認できます。https://repost.a...
3ヶ月前

RDS Aurora MySQL 本番環境運用時に必要なログ出力の設定
SMARTCAMP Engineer Blogのフィード
この記事はRDS Aurora MySQL 本番環境運用時に必要なログ出力の設定方法をまとめました。https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_LogAccess.MySQL.LogFileSize.html次の種類の RDS for MySQL ログファイルをモニタリングできます。・エラーログ・スロークエリログ・全般ログ・監査ログ パラメータグループを確認監査ログとスロークエリログに関しては、クラスターレベルのパラメータまたはインスタンスレベルのパラメータの修正が必要にな...
3ヶ月前

【CSS】任意の子要素幅に基づいて親要素のwidthを制御するTips
SMARTCAMP Engineer Blogのフィード
TL;DR👇のように指定する.parent { width: fit-content;}.targetChild { width: 0; min-width: 100%;} before after 使えるケースかなり限定的で👇のようなタイトルの下にサブタイトルがあり、タイトルの幅に合わせてサブタイトルの幅を決めたい時などに使えると思います。<body> <div class="parent"> <div class="title">優先する要素</div> <div...
4ヶ月前

ActiveStorageの画像URLをテストする方法
SMARTCAMP Engineer Blogのフィード
2025年もついに明けてしまいましたね... なにこれRuby on RailsにはActiveStorageというとても便利なライブラリがあります。https://railsguides.jp/active_storage_overview.htmlActiveStorageで保存した画像のURLをテストする際のTipsを記事にしたものです。 問題ActiveStorageでは public: true をしない限り、ファイルを表示したりDLする際のURLを一時的なURLにします。> hoge.image.url=> "http://example.co...
4ヶ月前

テキストコミュニケーションにおける質問の仕方で試して良かったこと
SMARTCAMP Engineer Blogのフィード
はじめにアドベントカレンダーの記事になっております!社会人1年目でテキストコミュニケーションに苦戦していたので試して良かったこと書いていこうと思います! 試して良かったこと 質問を行う際には既に試したを伝える 改善前の状態下記のように質問だけ伝えてしまっていた。Aでエラーでているのですがどうすればよいでしょうか? 伝えないと起こること目的に対して何を試して失敗したか、成功したかがわからないと改善点が伝わらず質問相手が解決方法を提案できない。質問相手から既に試したことに対してから確認が行われるので、解決方法が提案されるまで時間がかかる。 改善例上記では...
5ヶ月前