プログラミング

Amazon Timestreamへの書き込み処理のレスポンスと例外を詳しく見てみる

こんにちは。 アプリケーションサービス部の兼安です。 今回はAmazon Timestreamの書き込み処理のお話です。 本記事のターゲット Amazon Timestreamを使い始めたぐらいの方を想定しています。 Amazon TimestreamがSQLが使えるため、一見RDBと同じように見え…

複数人でコードを読み解く「モブコードリーディング」をやってみた話

こんにちは サーバーワークスのコーポレートエンジニアリング部にてSalesforceの保守をしている中村です。 サーバーワークスのSalesforceチームは少しずつ人が増えてきて、攻めの活動に時間を割くことが段々とできるようになってきました。 今回、その攻めの…

Google開発者用のコードレビューガイドの読み合わせ会をしました

先日、社内で Google の Code Review Developer Guide の読み合わせ会をしました 本記事は、その時の感想コメントをまとめたものです。ガイドの内容について、大なり小なり刺さった部分の感想を、ページ毎に箇条書きでまとめています。 読み合わせ会の結果、…

【OSSリーディング】Active Recordの内部実装を覗いてみた

こんにちは、サーバーワークス OSS探求部のくればやしです。(「部」は部活の部) 普段業務ではAWSの運用自動化サービスのCloud Automatorの開発に携わっており、Webの開発ではRuby on Railsを用いています。 Railsのコンポーネントの中でもActive Recordは…

Papermillを使ってみた

こんにちは。AS部DS1課の戸塚です。 以前Papermillを使う機会があったので、本記事ではPapermillの特徴や用途について書いていきたいと思います。 Papermillとは PapermillはJupyter Notebookをバッチ実行するためのツールです。 Papermillを使えば,ノート…

【環境構築】Windows11でLinux(Ubuntu)を使用する

こんにちは。サービス開発課の刈谷です。 サーバーワークスから貸与して頂いた業務用PCのOSは、Windows11でした。 個人用PCのOSは、Linuxで、前職のPCのOSは、Windows10でWSL2環境で開発していたため、 業務用PCもLinuxが良いと考え、この機会にWSL2の環境構…

【pytest入門】第1章 - pytest概要

pytestの概要およびインストール方法、使用方法を紹介します。

【読書感想文シリーズ】リーダブルコード編(中編)

コード初心者の方向けに、同じくコード初心者の私が『リーダブルコード』を読んで「なるほどなぁ」と思った箇所を紹介していきます。

【読書感想文シリーズ】リーダブルコード編(前編)

読書感想文シリーズとして、コード初心者の方向けに、同じくコード初心者の私が『リーダブルコード』の内容を紹介していこうと思います◎

【Bash】RDS for MySQL のダウンタイムを計測するスクリプトを書いてみた

はじめに RDS for mysql のアップデートがまた来たよということで、ダウンタイム時間を計測するシェルスクリプトを書いてみました。 記事目安...10分 はじめに 実行環境 ダウンタイム計測スクリプト 処理ロジックについて 使い方 まとめ 実行環境 mysql パッ…

【初心者向け】【Node.js】【Javascript】async/await を使った非同期処理についてまとめてみた

はじめに Nodejs の async/await について、自分なりに整理してまとめてみました。 本記事と対照に書いた Promise.prototype.then() に関する こちら の記事も見ていただけると理解しやすいと思います。 具体例を交えて解説するので参考にしてみてください!…

【初心者向け】【Node.js】【Javascript】Promise.prototype.then() メソッドを使った非同期処理についてまとめてみた

はじめに Promise.prototype.then() メソッドの使い方がわからなかったので、自分なりにまとめてみました。 具体例を交えて解説するので、参考にしてみてください! 記事目安...10分 はじめに Promise.prototype.then() メソッドとは 具体例を用いた Promise…

【python3】はてなブログへ記事と画像を投稿するスクリプトを書いてみた

弊社のはてなブログ移行を記念に、python3で記事本文と画像の投稿スクリプトを書いてみました 記事目安...10分 投稿スクリプトについて Post_hatena.py "PostHatena"クラス "PostHatenaPhoto"クラス execution.py main() upload_text() upload_images() 使い…

Python の例外を別の例外として投げるときの話

はじめに こんにちは。技術4課の保田(ほだ)です。 iOS14 へのアップデートをしたらかなり雰囲気が変わってビックリしています。 というわけで(?)今日は Python のお話です。 要約 raise 文には from が使えるぞ 本題 main 関数から呼び出されるある関数…

Rails + React のプロジェクトに Jest + Enzyme を導入してReactコンポーネントを単体テストする

Reactを利用しているRails プロジェクトにJestとEnzymeを導入して Reactコンポーネントのテストを書くことができたので導入手順をメモします。 当プロジェクトの環境は導入時点でRails5.2系で、webpackerとsprocketsが共存している状態でした。 Jestとは jes…

初めてのTerraform

こんにちは。技術4課を福島です。 先日、同じ課のメンバーからTerraformに関するお話をしてもらったので、 その内容をブログにまとめたいと思います。 IaCとは まず、Terraformのお話をする前にInfrastructure as Code(以下、IaC)についてです。 IaCとは…

MarkLogicをAWSにデプロイしてみた

はじめに こんにちは。SRE2課の福島です。 先日、以前から持っていたAlexaに追加でSwitchBotハブミニを買い、 リビングの電気を声でオン、オフできるようにしました。便利ですね~。 今回は、MarkLogicをAWSにデプロイする方法をブログにまとめたいと思いま…

[2020/07/21 Update] AWS CodeBuild のビルド環境にログインできるようになりました

掲題の通り、 2020/07/21 のアップデートによって実行中の CodeBuild のビルド環境に入れるようになりました。 AWS CodeBuild now supports accessing Build Environments with AWS Session Manager AWS CodeBuild - View a running build in Session Manage…

【10分で】ほぼコマンドなし!VSCode×Docker×ペアプロしよう【開発体験向上】

こんにちは。ローカル環境のパッケージ管理は美しくできていますか? 残念ながら私はできていません。 あれは入社1年目、いろんなブログから引っ張ってきたインストール系コマンドをよくわからないまま実行した結果・・・(お察しください) それはさておき ロ…

【Ruby】正規表現の\sはタブや改行にもマッチする

先日正規表現でスタックしてまい、正規表現やエスケープシークエンスについて調べていたのですが、その途中で気づいたことがあったのでブログにしてみます。 タイトルの通りなのですが、なんと正規表現の\s はスペースだけではなくタブや改行にもマッチして…

Connect と Lambda を組み合わせるときに注意すべき点いくつか

こんにちは。技術4課の保田(ほだ)です。 みなさん好きな野菜は何ですか?私はピーマンが好きです。小さいころから好きで小学生の卒業制作でピーマンを擬人化したキャラクターの絵を描いたぐらい好きです。色も良いですよね。鮮やかさで言えば超新星爆発と…

TTL を有効化した DynamoDB でちょっと焦った話

こんにちは。技術4課の保田(ほだ)です。 先日28回目の誕生日を迎えたのですが、全然実感がないので実質まだ27歳です。 要約 TTL を有効にした DynamoDB に対して有効期限切れのレコードを PutItem すると何も起きない DynamoDB の 有効期限(TTL) 冒頭の…

Step Functions の Map ステートで、処理時間が劇的に短くなった話

はじめに こんにちは。技術4課の河野です。最近作り置き料理にハマっていて、週末に平日分の夕飯を作るというライフハックを実践中です。 今回は、AWS Step Functions(以下「SFN」) の Map ステートについてのお話です。 要約 SFN で過去一年分のSlack投稿メ…

Pythonコネクタを使ってSnowflake に接続してみる

CI部の宮本です。最近、天気が悪い日はもれなく頭痛に悩まされています。鎮痛剤で対応していますが、何か良い方法はないものでしょうかねえ。。 さて、今回は先日のブログ SnowSQL コマンドで Snowflake に接続する の続編です。Webインターフェース、CLIツ…

CodeBuildでSlackへ株価をお知らせ

こんにちは 弊社は2019/03/13東証マザーズへ上場しました。 社員の中には、自社が市場でどう思われてるか気になる人もいたりするもんです。 というわけで、Slackへその日の株価(始値/高値/安値/終値)をお知らせしています。 構成 平日19時前にビルドを実行…

Step Functionsで Lambda のタイムアウトエラーをキャッチして再試行する

$(document).ready( function () { $("a[href^='http']:not([href*='" + location.hostname + "'])").attr('target', '_blank'); }) はじめに こんにちは。技術4課の河野です。 今回は、AWS Step Functions(以下「SFN」) で AWS Lambda(以下「Lambda」) がタ…

CloudTrail のログを Lambda から Athena を使って解析してみる

こんにちは。ポインコと暮らしている高橋です。 こどもの日は兄がAmazonで購入した室内用こいのぼりを揚げてくれました。 AthenaにCloudTrailのログを取り込む、というのは以前当社blogで紹介済みでした。 紹介時の2016年12月時点では、クエリを実行してClou…

Python でエポック秒(UNIX 時間)を取得するときの注意点

こんにちは。技術4課の保田(ほだ)です。 初めてブログを書きました。インドの青鬼というとても美味しいビールを段ボール(24缶)で買いました。 GW は快適に過ごせそうです。 要約 Python の datetime 型を文字列に変換する strftime メソッドはプラット…

『テスト駆動開発』をPythonで写経するにあたって 演算子のオーバーロードとハッシュテーブル について調べた

こんにちは。 完全リモートワークもそろそろ3ヶ月目に入って、運動不足が深刻になってきた丸山です。 今回は超有名な技術書『テスト駆動開発』をPythonで写経しながら学んでいく途中でわからなかったこと、調べたことなどを記事にまとめてみました。 知識と…

数字文字列のバリデーションチェックの実装方法

こんにちは、技術1課の加藤です。 今回は AWS 一切関係ない、 Python のお話。 先日、0埋めしたい数字文字列に変な値が入っていないか確認する、というバリデーションをプログラムに追加するタスクがありました。 数字文字列のチェックってそういえばどうし…

AWS Lambdaで不要なCloudWatch Logsのログストリームを削除する

はじめに はじめまして、技術4課の水垣です。サーバーワークスに転職して、早くも半年が過ぎました。 AWS&アプリケーション開発をガリガリと進めていけるように、もっと力をつけないとです。 今日は、カラになったCloudWatch Logsのログストリームを定期的…

CloudFront+S3環境でLambda@Edgeを用いてHTTPセキュリティヘッダーを付与する方法

HTTPセキュリティヘッダーとは 「HTTPセキュリティヘッダー」とは、Webブラウザでのセキュリティ対策のために使用されるHTTPヘッダーです。 Webブラウザがセキュリティヘッダーの設定内容に従って動作することで、クロスサイトスクリプティング(XSS)やクリッ…

VSCode の Remote - SSH 機能を使って EC2 上で開発する

こんにちは、技術1課の加藤です。 みなさんエディタは何を使っていますか。 ぼくは入社以来ずっとVimを使っていたんですが、先日ついに同僚に勧められてVSCodeを導入しました。 これがね、便利。ほんと。 というわけで今日は、VSCode布教活動の一環として、V…

Amazon API Gateway + AWS Lambda でのレスポンス形式

はじめに こんにちは、技術一課の山中です。 冬は好きではないですが、夏は嫌いです。 さて、 Amazon API Gateway + AWS Lambda で REST API を構築することは多々あるとおもいますが、 Lambda プロキシ統合をセットアップした際に、 AWS Lambda からどのよ…

Railsを動かして理解するDBコネクションプール

データベースの文脈でコネクションプールという用語は昔から聞くのですが、私はあまり理解できていませんでした。 アプリケーションサーバの代表的な実装の一つであるRuby on Railsで実験し、理解を深めてみました。 検証環境の構築 今回は1台のEC2インスタ…

Ruby on Rails 6をAmazon Linux 2で動かす

Amazon Linux 2 に Ruby on Rails 6 の環境を構築してみました。 軽い気持ちでやったのですが、想像以上にハマりどころが多かったです。 今回の構築方針は以下の通りです。 rbenvなどのRuby環境の管理ツールは使わない 関連ツール類は、なるべくAWSのリポジ…

Raspberry Piを使って会議室残り時間を通知してくれるものを作ってみた

技術1課でOJT中の濱岡です。 みかんが美味しい季節になりました。 最近毎日みかんを食べてます。 さて、今回はRaspberry Piを使って会議室の残り時間を通知してくれるものを作ってみました。 きっかけ 会社で会議はよくあると思うのですが 会議が時間通りに…

漢字仮名混じり文をローマ字に変換

ローマ字はイタリア語と習った男塾技術四課のテツカです。 Pykakasi とは? インストール スクリプト作成 テスト まとめ 1. Pykakasi とは? 漢字仮名混じり文をローマ字に変換する Python Natural Language Processing(NLP)ライブラリです。 pykakasi is a …

オブジェクト指向設計実践ガイドを読んだので基本部分をPythonでも書いてみた

オブジェクト指向設計実践ガイド is https://www.amazon.co.jp/dp/477418361X その名の通りオブジェクト指向の原則に沿った設計を実践しながら学ぶという内容です。 私は今年の3月からCloud Automatorを開発するサービス開発課に配属になりましたが、これま…

Lambda のタイムゾーンを環境変数TZで指定してはいけないっていう話 (追記あり)

[追記] ドキュメントが更新され、環境変数のTZは「予約済み環境変数」から「予約されていない環境変数」に変更になっています。 現在は、環境変数TZを指定してタイムゾーンを更新しても問題なくなったようです。 docs.aws.amazon.com 技術1課の加藤です。 今…

S.P.E.C. - Serverless Performance Empowerment Challenge の裏側の話

Day1に開催された、 "S.P.E.C. - Serverless Performance Empowerment Challenge" というワークショップをご存じでしょうか? ※開催概要はこちら ざっくり言うとISUCONのようなパフォーマンスチューニングコンテストのサーバーレス版です。参加者にお題とな…

Zendeskのチケットを検索するための簡易的CLIを作ってみた

Zendeskのチケットを検索してcsvフォーマットで返すだけのシンプルなツールを書いてみましたのでご紹介します。 ソースはこちら。 https://github.com/hassaku63/simple_zendesk_searcher 今のところはGitHubオンリーでの公開です。現時点でまともにテストで…

ServerlessDaysでServerlessなパフォーマンスチューニングコンテストを開催しました #ServerlessDays

このブログではお久しぶりです。照井(marcy_terui) です。 ServerlessDays Tokyo 2019、いかがでしたでしょうか?最高でしたか!? ServerlessDays Tokyoは過去最高のServerless系イベントになる(かもしれない) 私はServerlessconfとして開催されていた3…

AWS 謹製のデータ分析モジュール『AWS Data Wrangler』チュートリアルの紹介

タダです. AWS 謹製の Python データ分析モジュールの「AWS Data Wrangler」がリリースされました.今回は普段 Python を使ってデータ分析の勉強をしているため,「AWS Data Wrangler」を公式ブログチュートリアルを参考に使ってみた所感を書いていきます. AWS…

Backlog API(V2)のPython3ラッパー "python-backlog" を作った

当社ではプロジェクト管理ツールとして全社的にNulab社のBacklogを使いまくっているのですが、社内の研修課題やお客様へのヒアリング課題を一斉登録したり、昔のプロジェクトで作ったwikiを新しいプロジェクトに移管したりとか、何かとAPIが使えたらいいなぁ…

Serverless FrameworkでCORSに対応しつつ、認証にCustom Authorizerを使ってみる

業務改善の中でChromeExtensionを作成中に、API GatewayのCORS対応をしたのでその内容をご紹介します。

「AWS Cloud Development Kit」に対応した Python コードを実践!

技術2課の多田です. 以前,「AWS Cloud Development Kit」(以下、CDK)の記事を書きました.当時は対応言語に Python がサポートされてませんでしたが, Amazon Web Services ブログで Python 対応アナウンスがありましたので,早速, Python で CDK を使ってみま…

【Python3入門】boto3を使ってPython3とAWSに触れてみよう!【60分】

ブログ移転に伴い、本記事内の文章、画像を一部修正。(2021/05/14) こんにちは、CI部の柿﨑と申します。 私はサーバーワークスに入社して3週間ほどですが、とても馴染みやすく毎日リラックスした状態で過ごせております。 このような環境で仕事ができること…

AWS Lambda でのタイムゾーン変換

はじめに こんにちは、技術一課の山中です。 Python のタイムゾーンについて、学んだことを忘れないようにブログにまとめました。 Python の組み込みモジュールである datetime を利用して現在時刻を取得する場合、通常以下のように記載すると思います。 def…

【Backlog】課題のステータスを更新するスクリプト(Python)【API】

こんにちは。技術二課の伊藤Kです。 サーバーワークスでは、プロジェクト管理ツールとして「Backlog」を使っています。 タスク管理、ファイル共有もできるプロジェクト管理ツールBacklog 今回はこのBacklogの「課題」のステータスを、複数課題一挙に更新でき…