跳到主要內容

發表文章

目前顯示的是 一月, 2014的文章

Detached Apps Script

通常Apps Script會Binding在一份文件上,但是使用的情境上,如果永遠讓文件與Script做Binding,就缺少了些操縱的快感.... 例如,需要動態產生表單,並且讓表單自動的Binding onFormSubmit的Event…. 下面就是這段範例,執行createFormTrigger之後,ID為 '1hCg1vS…..Qm5-Q'的文件(必須要是Form啦,這個Trigger是針對Form動作的),就會附加上onFormSubmit的Event,而Event的內容,則是同一份Script中的runCommand function,也就是由ScriptApp所new的Trigger名稱: function createFormTrigger() {  var fid = '1hCg1vS…..Qm5-Q';  // Create onEdit trigger using sheet ID  ScriptApp.newTrigger("runCommand").forForm(fid).onFormSubmit().create(); } function runCommand(){  Logger.log('TEST......' + new Date()); } 上面的Script可以搭配Driver來使用,例如指定某個Forder下的文件都要附加上某個Trigger,這樣以後Create在那個Folder下的文件,就都會具備同樣的Event...

Intall OracleXE in Google Compute Engine

Step1: 上傳所下載的Oralce安裝檔,並解壓縮 Step2: 執行安裝 $ sudo rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm Step3: 使用root設定環境 $ sudo su - # /etc/init.d/oracle-xe configure Step4: 設定Apex預設admin密碼 $ sudo su - oracle oracle@sles11-roaclexe: ~ > export PATH=~/product/11.2.0/xe/bin:$PATH oracle@sles11-roaclexe: ~ > sqlplus SQL*Plus: Release 11.2.0.2.0 Production on Thu Jan 23 02:49:25 2014 Copyright (c) 1982, 2011, Oracle.  All rights reserved. Enter user-name: system Enter password: Connected to: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production SQL> @apxxepwd admin Step5: 登入並設定預設的Workspace與相關user資訊 登入: http://your-ip-address:8080/apex/ 使用system作為使用者名稱,密碼為安裝時提示設定的那組 登入APEX系統,使用admin作為帳號,密碼為之前sqlplus設定的那組 正常登入後就可以進行進階管理... 設定Apex密碼,請參考: http://blog.mclaughlinsoftware.com/2011/09/14/reset-11g-xe-apex-password/

GCE Create N-Tier Network Environment

傳統的實體資料中心中,一般會把網路切分成:DMZ層、AP層、DB層等等,目的是讓每一層區域之間,透過Firewall來保護不從曾主機的安全性,而Google Cloud Platform在Compute Engine的網路運作上,則是透過定義Network與Firewall及Router幾個元素來彈性定義網路架構,搭配TAG的應用切分不同的主機網路區段。之後主機只要使用不同的Tag設定,就可以快速定義可連線的區段。下面描述一下實際執行的做法... N-Tier描述 此範例實做簡單的三個區段,如果需要再往下切分,可以延續此概念再往下切割... admin: 建立允許外部SSH進入或建制VPN Gateway服務的網段,作為管理之用 frontend: 第一線服務伺服器,通常為DMZ區段,作為提供用戶服務的連線功能,一般為Web Server所在位置,在此我們建制Web Server,需要開放80 port db: 後端資料儲存區,通常為資料庫或是檔案伺服器所在位置,在此我們建制couchdb,需要開放5984 port Network Tier Setup 建立network: 首先我們先建立屬於這個服務的網段(my-network),給定一個C class( 192.168.10.0/24) ,並指定192.168.10.1作為Gateway... 這裡的網段設定是屬於內部的私有網段,也就是會實際attach在主機之上的ip位置 $ gcutil --service_version="v1" --project="my-project" addnetwork "my-network" --range=" 192.168.10.0/24 " --gateway="192.168.10.1" 建立admin zone: 允許外部SSH連入+SSH連進內部frontend, db網段,作為管理之用 $ gcutil addfirewall --allowed_ip_sources= 0.0.0.0/0 --target_tags=admin --network=my-network --allowed=tcp:2

Connect CloudSQL with SSH tunnel

連線到CloudSQL的方式很多 原則上與使用MySQL無異 而在MySQL連線上,使用SSH Tunnel的方式算是安全又穩定的 而SSH Tunnel簡單的說就是透過SSH到某一檯Linux主機 再透過該主機連線到MySQL的方式 有了這樣的連線方式 我們可以在CloudSQL的Connection Control部分設定允許root角色由某個IP連線過去 而該IP可以設定成一檯Compute Engine的IP位置 這樣,像MySQL workbench之類的連線工具就可以使用SSH Tunnel連線到CloudSQL中 概念如下圖: 而Workbench的部分,設定大致如下: 原則上有兩個部分: SSH server部分:設定中繼的SSH server位置與連線上去的金鑰或是帳號密碼 MySQL server部分:設定最終要連線的MySQL位置與帳號密碼等資訊 這樣的連線方式通常適用在您申請了GCE server作為AP開發使用時候 為了安全性考量,CloudSQL可以只開放給GCE server連線 這時候,使用SSH Tunnel從AP server轉連線到CloudSQL資料庫則相當方便喲∼

GCE上製作自己的image

在雲端的世代,主機服務怎麼可以少得了image呢... Google Compute Engine在製作image的部分 可以透過幾個簡單的指令來打包你的主機 然後再註冊到image服務上,就可以方便之後使用拉∼ 簡單的三步驟,介紹一下: 步驟一:在客製好(安裝好你所需要的軟件或服務)的主機上做打包的動作 $ sudo gcimagebundle -d /dev/sda -o /tmp/ --log_file=/tmp/abc.log  步驟二:傳送到google cloud storage $ gsutil cp /tmp/308...439.image.tar.gz gs://arecord-customise-images  如果要從google的主機上執行gsutil的話,記得要在開主機的時候,把project access的cloud storage部分選擇read + write 步驟三:將image加到Google的image collection中,之後就可以在web console中看到自己的image了喲∼ $ gcutil addimage test-image gs://arecord-customise-images/308...439.image.tar.gz INFO: Waiting for insert of image test-image. Sleeping for 3s. …(skip) INFO: Waiting for insert of image test-image. Sleeping for 3s. INFO: Waiting for insert of image test-image. Sleeping for 3s. Table of resources: +------------+-------------+--------+ | name       | deprecation | status | +------------+-------------+--------+ | test-image |             | READY  | +------------+-------------+--------