分類
懶得分類

中華電信連微軟雲端服務異常

今早同事通知網站異常, 經檢查, 發現走中華電信路由的電路, 無法連上微軟的雲端服務, 走台哥大4G則是正常, 初步研判是中華對微軟雲端問題.

剛好朋友也在問今天 skype 是不是異常, 回覆應該是上面的問題, 中華電路對微軟雲端路由問題, 目前其他家的網路(如台哥大, 遠傳等)沒有異常.

由於是 IP 層就無法連線, 所以許多相關服務也都無法使用, 像是 office 365 / skype / Azure 等, 應該有大量的客訴發生了吧, 相信兩邊也都在積極處理中, 看何時會恢復囉.

這裡有持續性的連線資料MRTG圖, 所以查得斷線時間約在 (2016/6/24) 9:25 左右, 之後若有恢復會再記錄下來, 供各位參考.

歷經兩小時, 終於恢復了, 時間約在11:15起陸續正常了. 這次相信影響的受災戶還不少.

CentOS中apache與php寫入權限與SELinux設定

由於 CentOS 有 SELinux 的權限設限, 所以相對一些安全層級也都比較高, 最近有個需要用 php 寫入檔案(或是上傳檔案的應用), 原本的 php 在預設狀況下, 就會對 /tmp 有寫入的權限(預設是會在 /tmp/systemd-private-xxxxxx 下的私有 /tmp), 所以上傳時沒有問題, 但使用 move_uploaded_file() 至目的目錄時, 會有寫入的權限問題.

方式如下:

Method A
1. 要寫入需要有對應的權限, 建議方式是將要寫入的目錄給予 apache 執行用戶的擁有者, 如 CentOS 配 apache 時, user 為 apache

chown -R apache /var/www/mysite1/upload

2. 此時只需要給予對應目錄 755 的權限即可(通常預設也是這個).

chmod -R 755 /var/www/mysite1/upload

Method B (不建議)
1. 直接給予該目錄 global write 的權限, 777 即可, 不過會有安全性的考量

chmod -R 777 /var/www/mysite1/upload

完成之後, 若仍無法寫入, 則是因為 SELinux 的設限, 所以即使完成了上面的設定也無法寫入, 此時要再進一步設定 SELinux, 方式如下:

sudo chcon -t httpd_sys_rw_content_t /var/www/mysite1/upload -R

原因為預設的 webservice 能擁有的權限角色為 httpd_sys_content_t , 是無法寫入檔案的, 所以需要再進一步設定 SELinux 才行.

參考資料:
https://blog.lysender.com/2015/07/centos-7-selinux-php-apache-cannot-writeaccess-file-no-matter-what/

另外寫得很仔細的 SELinux 資料可以參考:
https://www.digitalocean.com/community/tutorials/an-introduction-to-selinux-on-centos-7-part-1-basic-concepts
https://www.digitalocean.com/community/tutorials/an-introduction-to-selinux-on-centos-7-part-2-files-and-processes
https://www.digitalocean.com/community/tutorials/an-introduction-to-selinux-on-centos-7-part-3-users

雙北Youbike租借站即時資訊地圖

因為介紹 open data 與 google maps javascript sdk 的使用與實作 , 利用了台北市的 open data 與 新北市 的 open data 來進行雙北 Youbike 租借站即時資訊.

台北市的 Youbike 資料:
http://data.taipei/opendata/datalist/datasetMeta?oid=8ef1626a-892a-4218-8344-f7ac46e1aa48

新北市的 Youbike 資料:
http://data.ntpc.gov.tw/od/detail?oid=71CD1490-A2DF-4198-BEF1-318479775E8A

資料來源分別為(JSON type):
http://data.taipei/youbike
http://data.ntpc.gov.tw/od/data/api/54DDDC93-589C-4858-9C95-18B2046CC1FC?$format=json

其中台北市的資料 SERVER還有支援 CORS .

接下來就利用這些資料與 Google Maps Javascript SDK 來實作這個地圖了. 資料欄位都很容易理解, 其中使用不同顏色來表示租借站的狀態, 區分為可借可還 / 可借不可還 / 不可借可還 / 暫無營運, 而為能更容易借還, 目前可借為超過 2台, 可還也以超過 2個空位為基礎, 實際數字可點擊站點得知.

可以參考看看:
http://sample.diary.tw/youbike/

[2020/12/13 13:44]

由於原本的 data source 有問題, 已無法正常取得內容, 查找一下更新後的 data source, 調整如下:

台北市的由: http://data.taipei/youbike 改為 https://tcgbusfs.blob.core.windows.net/blobyoubike/YouBikeTP.gz , 而新北市的由: http://data.ntpc.gov.tw/od/data/api/54DDDC93-589C-4858-9C95-18B2046CC1FC?$format=json 改為 https://data.ntpc.gov.tw/api/datasets/71CD1490-A2DF-4198-BEF1-318479775E8A/json/?size=10000

調整 data source 後, 原範例頁的資料就能正常呈現囉:

https://sample.diary.tw/youbike/

分類
系統技術

在 Azure 上 Media Service的服務功能與應用介紹

剛在 Channel 9 上看到的, 很棒的內容分享介紹, 給大家參考:

互聯網流媒體架構設計模式與實踐 – 如何使用 Azure Media Service 構建端到端的流媒體服務平臺

https://channel9.msdn.com/Events/DevOps-TW/DeveloperDay/A02

微軟的媒體雲端服務, 基本上包含了完整的媒體應用時所需要的所有功能, 包含了 VOD, Live Streaming, DRM, Player 等, 而且也與原來的 Azure Storage 結合, 可以存放大量內容與上傳轉檔等功能, 另外播放器也十分完整, 可以在各不同平台上提供播放功能, 而傳輸的協議上也同時提供了 MPEG-DASH, HLS, Smooth Streaming (影片中提到的 Azure Media Player 連結: https://ampdemo.azureedge.net/).

這篇影音很清楚地介紹許多在開發人員面對要實作 Media service 時的應用情境, 可以讓大家在開發這類的應用服務時, 有更快速方便的工具.

另外開發的程式語言支援了 .NET, JAVA, PHP, NODEJS 等, 基本上在 Azure 的服務上, 就算是不支援的程式語言也可以透過 Restful API 來操作, 更容易讓開發者使用自己熟悉的語言來進行開發.

分類
系統技術

為Azure上的主機或雲端服務設定保留IP

在雲端的主機, 通常IP不一定是一直固定的, 尤其是在重新開機或關機後再打開, 其 IP 位罝會因為資源重新分派而變動 IP.

當然, 變動 IP 在一般的狀況下, 沒有太大的影響, 因為大多數的服務都是以名稱來連接, 走 DNS 的解析來連接到對應的主機, 所以即使變動也沒有太大問題.

不過有時需要固定的 IP, 尤其像是一些限制 IP 存取的服務時, 若是 IP 異動, 對於連接到這些限制 IP 存取的服務時, 就需要提供服務的廠商來進行調整, 若是因此造成一定時間的服務中斷, 就不是太理想了.

Azure 有提供保留 IP 的服務, 一共有兩種, 一種是 VIP, 也就是走 cloud service 出去的 IP, 另一種是直接對主機設定 IP, 稱為 ILPIP, 通常使用上以 VIP 的彈性較大, 也比較容易進行資源部署, 而直接對主機設定公用 IP 時, 有時會少了一些彈性, 不過也相對單純.

先來看一下價格: https://azure.microsoft.com/zh-tw/pricing/details/ip-addresses/, 正常狀況下, 提供了 5個免費的固定 IP, 若超過 5 個, 每個月會收約 92元(台幣, 也就是美金3元). 最多可以保留 20個 IP, 不過也是可以透過聯絡 Azure 服務來提高這個限制. (限制參考這裡: https://azure.microsoft.com/en-us/documentation/articles/azure-subscription-service-limits/#_subscription-limits)

這篇則說明了 ILPIP 與 VIP 的不同: https://azure.microsoft.com/zh-tw/documentation/articles/virtual-networks-instance-level-public-ip/

設定方式可以使用 azure powershell 或 restful api (https://msdn.microsoft.com/library/azure/dn722420.aspx), 若非常在異動, 或只是幾組設定, 可以使用 azure powershell 即可.

安裝 Azure powershell 可以參考這篇: https://azure.microsoft.com/zh-tw/documentation/articles/powershell-install-configure/

接下來就可以開始操作了: