GCP Javascript 複合機で受信したFAXをMattermostに投稿(PNGを投稿+PDFへのリンク)

以前からFAXをオンラインで確認できるようにしたいと思っていて、数ヶ月前からMattermostを利用し始めたこともあり、Mattermostで受信できるようにしてみた。

複合機が送信したPDF付きメールをGmailで受信し、GASでGoogleDriveからMattermostに投稿してみたが、PDFがサムネイル表示されなかった。ファイル名が自動採番なのでサムネイルは必須であり、そこでPDFからPNGを生成するCloud Runを作成することにした。

Cloud Runを利用し、PDFはGoogleDriveに保存したままPNGをMattermostに投稿、PNGのリンク先にGoogleDriveのPDFを指定することにした。

●Cloud Run

・プロジェクトを作成。
※ここでは、PDF2PNGというプロジェクトを作成した
Cloud Runというプロダクトを選択し、サービスを作成する
・請求アカウントを作成(請求アカウントがないとサービスが作成できない)
ここでは、個人クレジットカードというアカウントを作成した
・インラインエディタで関数を作成する
・サービス名:pdf2pngとした
・リージョン:そのまま
・ランタイム:Node.js 20
・承認:未認証の呼び出しを許可
・課金:リクエストベース
・インスタンスの最小数:0
・Ingress:すべて
※Cloud Build APIを有効にする必要があるとでるのでここで有効
・エディタが開くのでindex.js、package.jsonを記入
ベースイメージ: Node.js 20 (Ubuntu 22)を選択
・関数のエントリポイントを空白のまま
※ここを空白にしないとエラーになる
・保存して再デプロイを実施
・URLが表示されるので、変換できるかcurlでテスト
curl -X POST -F “file=@./xxx.pdf” https://xxx.run.app -o output.png

index.js

package.json

GAS(時間トリガーで実行)