重要公告:
部落革新位置:
https://riceben.gitlab.io
之後的文章都會改在這邊發佈~
Rice Programming Ground
Rice的技術隨筆
2018年11月10日 星期六
2018年10月14日 星期日
AWS SAM CLI on Windows

Step1: Install
本機環境:Windows10
使用 SAM 來進行 local debug,我覺得最不方便的地方就是它不能設定中斷點來看當下的狀態,不過 SAM 除了用來開發與本機除錯之外,其實還有發布功能,看在瑞士刀的份上,就原諒它功能沒這麼強悍吧~
本機環境:Windows10
- 安裝 [Docker for windows](https://www.docker.com/products/docker-desktop)
- 安裝 python 3.6+ [download](https://www.python.org/downloads/)python --version
- 確認將 python 的執行檔加入環境變數 PATH
- 安裝 pip (或是說確認 pip,python 3 >= 3.4, python 2 >= 2.7.9 預設 python 裝好就會有)
- pip --version
- 安裝 aws-sam-cli
- pip install --user aws-sam-cli
- 更新 aws-sam-cli
- pip install --user --upgrade aws-sam-cli
使用 SAM 的方法:
執行以下指令,使用SAM來初始化你的專案
sam init --runtime nodejs8.10 --name your_project_name
Ps. Sam init --help
這個指令可以調出這個指令的說明文件
官方的 template 可以從[這裡](https://github.com/awslabs/serverless-application-model/tree/master/examples/apps)取得
預設會產生 hellow_world 這個資料夾,且路徑名稱會使用 hello,可依據個人使用情境做更動。
執行以下指令:
sam local start-api
上述指令會下載 docker 並將你的 lambda 程式放上去跑(docker image 的名稱會是:MobyLinuxVM.vhdx 大小不超過 2GB)
接下來使用 POSTMAN 發送 request (預設會使用 http://127.0.0.1:3000 這個位址和阜)
預設會是 Get 方法,所以用 Get 去打 http://127.0.0.1:3000/hello 就會得到回應。
使用 SAM 來進行 local debug,我覺得最不方便的地方就是它不能設定中斷點來看當下的狀態,不過 SAM 除了用來開發與本機除錯之外,其實還有發布功能,看在瑞士刀的份上,就原諒它功能沒這麼強悍吧~
2017年11月27日 星期一
Serilog 初試心得(rookie's Note)

前言:
Serilog是一款給.NET平台的LOG Library,它最大的特色應該是使用事件來驅動,而不是單純的寫下LOG,這點讓它跟其他的Library有很大的不同,而他所提供的多樣Sink讓這點的發揮更加強大。他可以做到同時記下Log,發送信件,存到DB並且傳到Slack中通知維運人員,這些事情都可以在記下Log時一併做完,只需要設定一次。這點是我覺得這個Library最強大的地方。
Source Code
內文:
Serilog除了可以在.NET平台使用外,他還支援了.NET Core,這讓它在非Windows平台上的使用是可能的,Source Code跟以下的文章就是在MAC環境下搭配.NET Core使用Serilog。
開啟一個新的專案後在Dependencies按下右鍵選擇Add Packages,再使用關鍵字「Serilog」查詢~

/// <summary>
/// My logger.
/// </summary>
public class MyLogger
{
/// <summary>
/// The logger.
/// </summary>
private ILogger _logger;
/// <summary>
/// Initializes a new instance of the <see cref="T:BenSerilogNlog.MyLogger"/> class.
/// </summary>
public MyLogger()
{
////最基本的建立Logger的方式
this._logger = new LoggerConfiguration()
.WriteTo.Console()
.CreateLogger();
}
/// <summary>
/// Logs the info.
/// </summary>
/// <param name="message">Message.</param>
public void LogInfo(string message){
this._logger.Information(message);
}
}
呼叫端可以這樣使用
//// new 一個實體
var myLogger = new MyLogger();
//// 呼叫 Serilog 的 ILogger 介面的方法(紀錄 Info等級的Log)
myLogger.LogInfo("Information");
Console.Read();
這樣就是一個最簡單的Log使用方法。
若要調整Log的紀錄格式可以這樣做簡單的設定:
public MyLogger()
{
this._logger = new LoggerConfiguration()
.WriteTo.Console(
outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level}] {Message}{NewLine}{Exception}"
)
.CreateLogger();
}
以簡單的情境來說,這樣其實就可以做到跟NLog一樣的事情。
2017年6月11日 星期日
Git on Windows a rookie tutorial - Ben's Version

前言:
使用Git也有一段時間了,但是一直以來都很依賴使用GUI來幫忙做事情,甚少使用指令。
在一次GUI改版後因為使用GUI的回應速度真的是太慢了,所以才開始學習使用指令來做事,也是這時才發現原來使用指令沒有想像中麻煩,也如預期中的非常快速。
因此這邊就我自己的使用心得來分享,也因為我在使用git指令時有很多設定是已經在安裝GUI時就設定完畢的,所以這邊的常用指令其實是就我個人使用上而言。
像是有很多remote repository的設定我不是使用指令來完成的,這部分的指令就之後有機會再補上了。
1)安裝
下載路徑:https://git-for-windows.github.io/
GUI:https://git-scm.com/downloads/guis
下載安裝檔後基本上用預設值並一直按下下一步就好

[圖 Install-1]

[圖 Install-2]

[圖 Install-3]
在Powershell更輕易的使用Git(posh-git):
使用PsGet安裝
PsGet => Powershell安裝套件的好幫手
posh-git => 在powershell使用git的好幫手

[圖 Install-4]
但若使用這種方式安裝,每次關掉powershell要再使用就需要先下個
若不想這麼麻煩的話,打開一個新的powershell prompt直接輸入
2)產生SSH Key(非Windows環境使用格式,適合用在command line環境中使用)
在Windows下自產SSH Key,而且不是Windows使用的格式我們需要使用剛剛安裝Git for windows時一起安裝的Git Bash環境來操作會比較方便。
若是產建Github所需要的SSH Key可以直接參考Github的說明: https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/
2-1)
b則是密鑰長度,基本推薦2048或4096
t則是使用的加密算法,Github使用的是RSA演算法
2-2)選擇存放位置與設定passphrase

[圖 SSHKey-1]
執行完成後你應該就會看到指定路徑上面會有兩個檔案,副檔名帶有pub字樣的就是public key,這兩個都是純文字檔案可以用notepad打開看看裡面的內容
3)常用指令
3-1)add [告訴git哪些檔案要列入追蹤]
常用指令之一,把指定的檔案放入staged area中,因為commit只會把staged area的檔案遷入。
把所有有異動的檔案遷入
3-2)commit [讓進入stage area的異動變簽入git]
常用指令之一,git的commit message其實可以接受多行,只要不要打最後一個單引號,按下enter的話就會跳到下一行去,想要結束的話就把單引號補上去即可。
3-3)branch [git的強大之處 branch超好開,開免錢]
可以把本機的branch都羅列出來,算是方便一次瀏覽目前該repository的branch狀態。
常指令之一,通常建議branch名稱前面會多帶一層方便做管理,這個範例中feature就是這個branch的上一層名稱,在GUI (ex. SourceTree)中通常會用資料夾來表示。

[圖 Branch-1]
3-4)stash [保留做到一半的想法]
把該repository所有stash列出來
將所有未入staged area的異動存入stash中

[圖 Stash-1]
3-5)checkout [切換branch]
常用指令之一,將目前的pointer所在位置切換到指定的branch身上
常用指令之一,會做兩件事情,先產生一個新的branch,二是將pointer切換到該branch身上

[圖 Checkout-1]

[圖 Checkout-2]
3-6)remote [設定遠端repository]
將遠端的ref資訊顯示出來,在圖示中因為這個repository是從githubclone來的所以會顯示ref來源

[圖 Remote-1]
3-7)push [將成果交付出去]
將local branch develop 的異動推到 remote branch develop
指令型態:git push
3-8)log [看看歷史過程]
將branch的log以單行印出

[圖 Log-2]
將branch的log以圖形印出

[圖 Log-2]
使用漂亮的格式印出
4)使用GUI介面
基本上到這個連結選一個自己喜歡的使用就好,只要懂Git的指令就不難理解那些介面的操作。
而個人在GUI的推薦上,就推薦 SourceTree與GitKraken這兩套GUI,其他不是不好用事這兩套太威了。
若是公司的流程有Git-flow的話則推薦SourceTree,若不是使用Git-flow的話則推間使用GitKraken這套,這是因為SourceTree本身自帶git flow套件,與Git -Flow流程整合得很好。
使用Git也有一段時間了,但是一直以來都很依賴使用GUI來幫忙做事情,甚少使用指令。
在一次GUI改版後因為使用GUI的回應速度真的是太慢了,所以才開始學習使用指令來做事,也是這時才發現原來使用指令沒有想像中麻煩,也如預期中的非常快速。
因此這邊就我自己的使用心得來分享,也因為我在使用git指令時有很多設定是已經在安裝GUI時就設定完畢的,所以這邊的常用指令其實是就我個人使用上而言。
像是有很多remote repository的設定我不是使用指令來完成的,這部分的指令就之後有機會再補上了。
1)安裝
下載路徑:https://git-for-windows.github.io/
GUI:https://git-scm.com/downloads/guis
下載安裝檔後基本上用預設值並一直按下下一步就好

[圖 Install-1]

[圖 Install-2]

[圖 Install-3]
在Powershell更輕易的使用Git(posh-git):
使用PsGet安裝
PsGet => Powershell安裝套件的好幫手
posh-git => 在powershell使用git的好幫手
(new-object Net.WebClient).DownloadString("http://psget.net/GetPsGet.ps1") | iex
Install-Module posh-git

[圖 Install-4]
但若使用這種方式安裝,每次關掉powershell要再使用就需要先下個
Import-Module posh-git才能使用。
若不想這麼麻煩的話,打開一個新的powershell prompt直接輸入
Add-PoshGitToProfile這樣就可以免除每次關掉都要在import module的窘境。
2)產生SSH Key(非Windows環境使用格式,適合用在command line環境中使用)
在Windows下自產SSH Key,而且不是Windows使用的格式我們需要使用剛剛安裝Git for windows時一起安裝的Git Bash環境來操作會比較方便。
若是產建Github所需要的SSH Key可以直接參考Github的說明: https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/
2-1)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"C這個參數只是給的commant可加可不加,只是加上去方便做辨識
b則是密鑰長度,基本推薦2048或4096
t則是使用的加密算法,Github使用的是RSA演算法
2-2)選擇存放位置與設定passphrase

[圖 SSHKey-1]
執行完成後你應該就會看到指定路徑上面會有兩個檔案,副檔名帶有pub字樣的就是public key,這兩個都是純文字檔案可以用notepad打開看看裡面的內容
3)常用指令
3-1)add [告訴git哪些檔案要列入追蹤]
常用指令之一,把指定的檔案放入staged area中,因為commit只會把staged area的檔案遷入。
git add file_locatioon
把所有有異動的檔案遷入
git add .
3-2)commit [讓進入stage area的異動變簽入git]
常用指令之一,git的commit message其實可以接受多行,只要不要打最後一個單引號,按下enter的話就會跳到下一行去,想要結束的話就把單引號補上去即可。
git commit -m 'your commit message'
3-3)branch [git的強大之處 branch超好開,開免錢]
可以把本機的branch都羅列出來,算是方便一次瀏覽目前該repository的branch狀態。
git branch --list
常指令之一,通常建議branch名稱前面會多帶一層方便做管理,這個範例中feature就是這個branch的上一層名稱,在GUI (ex. SourceTree)中通常會用資料夾來表示。
git branch feature/my_branch_name
[圖 Branch-1]
3-4)stash [保留做到一半的想法]
把該repository所有stash列出來
git stash list
將所有未入staged area的異動存入stash中
git stash save 'your stash message'

[圖 Stash-1]
3-5)checkout [切換branch]
常用指令之一,將目前的pointer所在位置切換到指定的branch身上
git checkout [your_branch_name]
常用指令之一,會做兩件事情,先產生一個新的branch,二是將pointer切換到該branch身上
git checkout -b [your_branch_name]
[圖 Checkout-1]
[圖 Checkout-2]
3-6)remote [設定遠端repository]
將遠端的ref資訊顯示出來,在圖示中因為這個repository是從githubclone來的所以會顯示ref來源
git remote -v show
[圖 Remote-1]
3-7)push [將成果交付出去]
將local branch develop 的異動推到 remote branch develop
指令型態:git push
git push origin develop develop
3-8)log [看看歷史過程]
將branch的log以單行印出
git log --oneline
[圖 Log-2]
將branch的log以圖形印出
git log --graph
[圖 Log-2]
使用漂亮的格式印出
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
4)使用GUI介面
基本上到這個連結選一個自己喜歡的使用就好,只要懂Git的指令就不難理解那些介面的操作。
而個人在GUI的推薦上,就推薦 SourceTree與GitKraken這兩套GUI,其他不是不好用事這兩套太威了。
若是公司的流程有Git-flow的話則推薦SourceTree,若不是使用Git-flow的話則推間使用GitKraken這套,這是因為SourceTree本身自帶git flow套件,與Git -Flow流程整合得很好。
訂閱:
文章 (Atom)