プログラミング

【初心者向け】【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で指定してはいけないっていう話

技術1課の加藤です。 今回はプログラムを書いたことがある人なら誰もが一度は悩む「タイムゾーン 」のお話。 Lambda の環境変数 TZ は使っちゃいけないよ。 プログラムのタイムゾーンをどう統一するのか問題 時刻を扱うプログラムを書くとき、避けて通れない…

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分】

こんにちは、CI部の柿﨑と申します。 私はサーバーワークスに入社して3週間ほどですが、とても馴染みやすく、毎日リラックスした状態で過ごせております。 このような環境で仕事ができることに感謝感激です! そんなわけで、今回はブログ初投稿というところ…

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

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

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

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

Serverless FrameworkでCORS有効化したAPI Gatewayの作成

S3 + CloudFrontでwebページをホスティングして、バックはAPI Gateway + LambdaでSPAを作りたいってときにAPI GatewayでCORSを有効化する必要があります。 マネコンからですと、ポチポチしてデプロイが必要となり、複数メソッドがあるとそれぞれに設定しない…

Zappa で Django をデプロイする

はじめに Python の Web フレームワークである Django を AWS に Zappa を用いてデプロイします。 今回は Amazon Linux 2 上で Guide to using Django with Zappa に沿って進めてみます。 Django とは Django とは、 Python 用の Web フレームワークの中で最…

Serverless Framework で Flask app をデプロイする

はじめに こんにちは、技術一課の山中です。 本ブログでは Python の Web フレームワークである Flask を AWS に Serverless Framework を用いてデプロイしてみます。 今回は Amazon Linux 2 上で以下に沿って進めます。 Build a Python REST API with Serve…

PowerShellでLambdaを実装しよう!~コードの準備からデプロイまで~

技術4課のPowerShellおじさんこと、鎌田です。 先のブログで、PowerShellでLambdaを実装するための準備をしました。さあいよいよ、実装していきましょう。 1.実装の基礎知識 PowerShell Lambdaを実装する時は、専用コマンドでテンプレートからスターターコー…

Step FunctionsでLambda延命

はじめに AWS Lambda(以下「Lambda」)って実行時間が最大5分までなんですよね。5分以上かかる処理をさせたくて困ったこと、ありませんか?こんにちは、運用システム課の礒です。私は今回AWS Step Functions(以下「SFN」)で実行時間の上限対策をしてみました…

CodeBuild + Serverless FrameworkでPythonアプリケーションをChatDeployする

こんにちは。てるい@今年は雪が多い札幌です。 Serverless Frameworkで作ったPythonアプリのデプロイを効率化するために、CodeBuildによるデプロイ環境とそれをHubot(Slack)からの呼び出され方によって環境を切り替えつつデプロイできる仕組みを作ったので…

2 ヶ月で Slack のチャンネル数がどれくらい増えるのか測ってみた

こんにちは、技術1課の山中です。4月にひっそりと入社して、ひっそりと暮らしてきました。 サーバーワークスは基本的に社内のコミュニケーションは全て Slack で行っていて、部活チャンネルやプロジェクトチャンネルなど多くのチャンネルがあります。そん…

PyCon JP 2017に参加&登壇してきました #pyconjp #serverless

こんにちは。東京出張中のサーバレスおじさん担当の照井です。 東京オフィスの人達は「だいぶ涼しくなった。もう秋だ」と言いますが、道民的には東京はまだ全然夏です。 さて、先週末の2017/9/8(金),9(土)に開催されたPyCon JPにスピーカーとして参加してき…

AWS Step FunctionsでSlackの全チャンネルの1日分メッセージの取得を自動化する

はじめに こんにちは、技術3課の紅林です。前回は、AWS Data PipelineでSlackの全チャンネルの1日分メッセージの取得を自動化する試みをご紹介しました。今回は、AWS Step Functions(以下、Step Functions)を使って、同様のことをしてみたいと思います。 A…

Cloud AutomatorでSlackの全チャンネルの1日分メッセージの取得を自動化する

はじめに こんにちは、技術3課の紅林です。今回は、Cloud Automatorを使って、Slackの全チャンネルの1日分のメッセージの取得を自動化する試みを紹介したいと思います。 やりたいことと課題 1日に1回、Slackの全チャンネルの過去1日分のメッセージの取得し、…