blogシタテルの技術やエンジニアの取り組みを紹介するテックブログです。投稿を表示しています。投稿を表示しています。2019こんにちは、DevOpsチームの甲斐です。Functions(以下、GCF)で画像を自動リサイズする手順を紹介したいと思います。GCFとはAWSでいうところのLambdaです。いわゆる、サーバーレスってやつですね。最近はGCPを触ることが多いのですが、先日GCP上のWordPressのアップロード画像をリサイズするために、GCFを使って自動的に画像をリサイズするようにしました。AWSのLambdaも触ったことありますが、GCFのほうが手間が軽い印象を持ちました。GCFをお使いになったことがない方は、ぜひご参考にしていただければと思います。前準備GCFを使う上で必要な環境は以下のとおりです。SDKのインストール詳細は、以下に書かれていますので、こちらをご参照ください。今回の仕様は以下のとおりです。Storage(以下、GCS)の当該バケットのuploadsディレクトリにアップロードされた画像を自動的にリサイズリサイズする画像フォーマットはimage/jpegのみオリジナル画像は".orig"拡張子をつけてバックアップリサイズされた画像はオリジナルの画像と同じ名前で上書き実装それでは、早速実装の手順を紹介していきたいと思います。Go(beta)が使えます。必要なパッケージをインストール今回は、@google-cloud/storage(GCS関連パッケージ)とgm(画像編集パッケージ)をインストールします。コーディングコードは以下のとおりです。最初に少しハマったところとしては、リサイズした画像でオリジナル画像を上書きすると再びイベントが発火されるので無限ループに陥ってしまったことです。対策としてメタデータにコンバート済みである旨を記述し、処理の最初にメタデータをチェックすることで判断するようにしました。デプロイデプロイは以下のようにします。今回の場合、runtimeはnodejs8になります。メモリやタイムアウトもオプションで設定できます。<timeout>]デプロイが完了したら、以下のコマンドで正常に登録されたことを確認します。テストサンプル画像を当該バケットにアップロードし、正常にリサイズされることを確認します。MiB)まとめ簡単ですが、GCFで画像をリサイズする実装手順を紹介しました。Pub/SubやHTTPリクエストをトリガーにすることも出来ます。GCFの詳細については本家ドキュメントをご参照ください。https://cloud.google.com/functions/docs/?hl=enまた、以下のGitリポジトリにGCFのサンプルプログラムがありますので参考にしてみてください。2018こんにちは、シタテルの茨木です。Railsで実装し、AWSでホスティングしています。SCS自体もViewを持っているのですが、徐々にAPI化とフロントエンドの分離を進めており、一部のフロントエンドは既にSPAで分離されていたりします。Endpointsに触ってみました。Endpointsを接続して、APIアクセスを管理できるか見てみる。トラフィックが見えるところまでで、認証系とかはやりません。--service_account_key=/esp/key.jsonざっとオプション説明--serviceendpoint構成のサービス名(≒APIサーバのドメイン名≒swaggerのhostエントリ)と一致させる--backendESPのプロキシ先。上記手順ではすんなりswaggerを読ませていますが、実際は結構エラーと戦いました。読むとガイドにも書いてありますが、endpoint構成はOpenAPI仕様を完全にはサポートしていないようです。fileはサポートしてない。message.'request-parameterのbody直下にarrayはサポートしない模様。API側のパラメタ受け取り仕様で、arrayはobjectでくるむように作る必要がある?まとめESPまわりの構成は実際に組むまでイメージ湧かなかったので、その辺の助けになれば幸いです。OpenAPIはほぼデファクトだと思っていたので、制約がいくつか出てきたのは意外でした。usシタテルのミッションはテクノロジーとイマジネーションで「ひと」と「衣服」の新しい未来をつくること。クラウドシステムを使うように服作りのリソースを誰でも好きなときに好きだだけ使えるプラットフォームを目指しています。(1)どうも朝野です。Storage移行記:バリデーション編こんにちはあさのです。Storageに移行したときの話を書こうと思います。Paperclipはファイルアップロード用のGemです。https://...SQLite3でWindow関数を試してみた!はじめまして、DevOpsチームの甲斐です。何かブログのネタはないかなーと思っていたところ、たまたま以下のニュースを発見しました。ECSに自動デプロイする(おまけで環境面の切り替えも)こんにちは、シタテルの茨木です。ECR/ECSにデプロイする為の設定例を紹介します。Nuxt.jsアプリ用に作ったものですが、言語やAPサーバが違っても共通の部分がほとんどです。