Google Apps Script(GAS) を Web フロント、データベースに Azure SQL Server を使う案件でのトラブル対策とその経過、対処(仮)を備忘録としてアップします。
Google Apps Script から Azure SQL Server への接続
GAS 使うなら、GCP SQL 使えばいいのにと思いつつ、Azure SQL Server を準備。Google からドキュメントが公開されていますので、これを参考に、Azure SQL Server のファイアウォールの設定や、接続テストなどを行いました。
この際の設定は、下の画面の通りです。

最小TLSバージョンの設定ですが、「>1.2」にしてみたところ繋がらず、「>1.0」にしたところ繋がりました。もしかすると GAS の JDBC の TLS は 1.0 なのかもしれません。
接続ポリシーですが、VPN 経由で接続しようと思うとプロキシに指定する必要があるようです。速度的にはリダイレクトの方が高速らしいのですが、VPN でDBの操作が必要だったため、プロキシにしています。
Azure SQL Server のセキュリティ設定
Azure SQL Server に、下の IP アドレスに接続許可の設定を行ます。
IP の範囲が広すぎてびっくりますが、GAS で使うそうです。
64.18.0.0/20
64.233.160.0/19
66.102.0.0/20
66.249.80.0/20
72.14.192.0/18
74.125.0.0/16
173.194.0.0/16
207.126.144.0/20
209.85.128.0/17
216.239.32.0/19
これで設定が完了しました。データベース接続文字列、ユーザ名、パスワードを用いて接続します。
function test() {
var r = [];
try {
var connectionString = "";//接続文字列
var dbuser = "";//データベースのユーザ名
var dbuserPwd = "";//パスワード
// JDBCでデータベースへのコネクション確立
var conn = Jdbc.getConnection(connectionString, dbuser, dbuserPwd);
var stmt = conn.prepareStatement("SELECT * FROM SAMPLETABLE");
stmt.setString(1, arg.uuid);
var result = stmt.executeQuery();
while (result.next()) {
var s = {};
s['ID'] = result.getString('ID');
s['NAME'] = result.getString('NAME');
r.push(s);
}
catch{
}
finally{
}
return JSON.stringify(r);
}
無事、接続できれば成功です。