Screaming Loud

日々是精進

Golang

Goで重い処理をtimeoutさせる ~その2~

前回はGoでtimeoutさせる処理に関して書きました。 yuutookun.hatenablog.com しかし、前述の記事で書いているのはレスポンスが返らない場合でした。 多くの場合、レスポンスが必要だと思うので、レスポンスを付与するパターンを紹介します。 functionの返り…

Goで重い処理をtimeoutさせる

Goで重い処理を書いているとタイムアウトさせたいときがあると思います。 大抵のIOが発生するライブラリだとcontextを引数に加えると、context の終了通知が発生して終了してくれます。 例えば、以下のようにhttp requestであれば、contextにタイムアウト設…

PythonでCFBを使って暗号化したものがGoで復号できない

Goには標準パッケージにcipherがあり、それを用いると暗号化復号化を行うことができる 例えば暗号化、復号化は以下のように定義することで実行できます。 import ( "crypto/cipher" "crypto/des" ) func TripleDesEncrypt(data, key, iv []byte) ([]byte, er…

goaでXMLを生成する

goaとはgoのWebフレームワークです。 goa.design goでリクエストとレスポンスを定義してあげると、APIとswagger周りを生成してくれるので、便利なライブラリです。 詳しくはこちら The goa API Design Language · goa :: Design-first API Generation 今回go…

goaのjwtにおけるscopeに関して

goaのjwtやOAuthにおけるScopeってなんなんだろうと思ったので調べてみた 結論 claimに含まれているscope or scopesで判別 前提 Jwtは.で連結されたbase64encodeの文字列となっています。 3つのパートに分かれており、順番に ヘッダー 、ペイロード、 署名 …

lambdaでSNSからS3イベントを取得する

最近Goを書き始め、LambdaをGoで動かすものを書き始めたので、メモ。 やること S3にオブジェクトが置かれたときに、SNSを経由してlambdaをキックする。 SNSTopic S3からオブジェクトが登録されたときのイベントを受け取るには、最低でもPutとCompleteMultiPa…