AppsScriptを使用してGoogleCloudSQLDBに接続してクエリを実行する方法があるかどうかを知りたいです。
多くの投稿を読みましたが、DBCloudSQLにアクセスする唯一の方法はAppEngineを使用することだと思われます。
誰かが解決策を知っていますか?ありがとうございました
AppsScriptを使用してGoogleCloudSQLDBに接続してクエリを実行する方法があるかどうかを知りたいです。
多くの投稿を読みましたが、DBCloudSQLにアクセスする唯一の方法はAppEngineを使用することだと思われます。
誰かが解決策を知っていますか?ありがとうございました
はい、JDBCを介してアプリスクリプトをGoogleCloudSQLに接続することは明らかに可能です。
GoogleAppsScriptからのGoogleCloudSQLインスタンスへの接続: Google Apps Scriptには、Jdbcサービスを使用してJDBCを介してデータベースに接続する機能があります。
承認: インスタンスに接続するには、ユーザーは関連するGoogleAPIコンソールプロジェクトのメンバーである必要があります。オプションで、ユーザー名とパスワードを指定して、よりきめ細かい権限を適用できます。アクセス制御の詳細については、アクセス制御のドキュメントを参照してください。
Google Cloud SQLデータベースへのアクセス: 特別なメソッドgetCloudSqlConnectionを使用して、AppsScriptでこれらのデータベースに接続できます。このメソッドはgetConnectionと同じように機能しますが、GoogleCloudSQL接続文字列のみを受け入れます。
var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://instance_name/database_name");
接続すると、MySQLデータベースに対して作業するために使用するのと同じコードを使用できます。
データベースへの書き込み: このコードは、データベースのpersonテーブルにレコードを挿入します
function insert() {
var fname="First Name"
var lname="Last Name"
var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://instance_name/database_name");
var stmt = conn.createStatement()
var query="insert into person(FNAME,LNAME) values('"+fname+"','"+lname+"')"
stmt.execute(query)
stmt.close()
conn.close()
}
データベースからの読み取り: このコードはデータベースから読み取ります。
function read() {
var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://instance_name/database_name");
var stmt = conn.createStatement()
var query="select FNAME, LNAME from person"
var rs= stmt.executeQuery(query)
while(rs.next()){
Logger.log("First Name : "+rs.getString(1)+" , "+"Last Name : "+rs.getString(2))
}
rs.close()
stmt.close()
conn.close()
}
Google Developersコンソールで、[概要]をクリックし、ページの中央に移動して、[クラウドSQLインスタンスに接続する方法]をクリックし、リンクをクリックします。次に、言語のJavaを選択し、外部ネットワークからの接続が見つかるまでダウンし、URLを見つけます。
次のようになります。
url = "jdbc:mysql://your_address?user=root";
IPv4が有効になっている場合(000.000.000.00形式の数値)
?user=root"を省略してURLをコピーします。
に貼り付けますvar conn = Jdbc.getConnection("jdbc:mysql://your_address/
追加/db_name
して終了したコード行は、次のようになります。
var conn = Jdbc.getConnection("jdbc:mysql://your_address/db_name”, user, userPwd);
覚えておくべき2つのこと
AppScriptNetworkIDの最初のIDを許可する
事前にデータベースを作成してAppsScriptから書き込むと、作業がはるかに楽になります。
現在、GASからGoogle Cloud SQL DBに接続するためのソリューションはなく、いつ導入されるかは明確ではありません。これが課題追跡システムの問題であり、Google CloudSQLGroupでのこの問題に関するディスカッションです。
Google Cloud Sql DBに接続する唯一の方法は、AppEngineを使用することだと思います。