2017/05/05の日記

とにかくAzure Functionsについて考えてた1日だった。

Azure Functionsでサーバーレスなメール送信ワーカーシステム

今日はAzureFunctionsでSendGridを利用したメール送信をAzure QueueStorage経由で実行することでメール送信用のWorkerを増やさなくても、 サーバーを節約した状態で、メール送信を一斉に行える仕組みを作れるのではないか? と思って色々試行錯誤してた。 AWSだと、SQS (Queue Storage) -> Lambda(Azure Functions) -> SES (SendGrid) という流れで同じことができるのだろうけど、宗教上の理由からAzureで利用している。

Azureの場合は、OutPutにSendGridを選択できるのでSendGrid経由でメールを送信する処理を書く場合はこっちのほうがラクっぽい。 まだ未完成だけど、節約しつつメール送信数が数千、数万*1のレベルでもシュッと格安に送信できそうなので、引き続きすすめてみる。 多分SendGridの設定がうまくいっていないだけで、Azure Functions自体のコードは数行で完了すると思う。

Azure FunctionsとStorage Fileの連携について

また、Azure FunctionsでStorage Fileにファイルの追加・更新があった場合にバックアップデータを取るような処理を書いてみたかったのだけど、 Azure FunctionsではBlob File(S3相当のサービス)の追加はトリガーにはできるけど、Storage Fileは出来ないそうだ…残念… サポートがされることがあれば便利機能が簡単にできそうだったのだけど…

Azure FunctionsでWebhookを処理する

これが1番簡単で現実的かなー まずはSendgridの送信エラーだけSlackに通知したりとかシュッとできそう。 ただし、AzureFunctionsの場合は起動が遅いらしいので決済webhookの用途には厳しそう。

*1:むしろそのレベルになるとQueue Storageにキューを積む処理のほうがボトルネックになりそう。