事實上,AWS CLI應該是你最好的工具。時至今日,AWS控制臺的布局已經非常完善。隨著時間的推移,AWS控制臺也越來越易用。就算如此,如果你忽略了AWS CLI(Command Line Interface,命令行界面),那么你很可能錯過了很多實用的功能,以及事半功倍的機會。如果現在你還不太適應使用AWS Command Line Interface,Cloud Academy上有一個很棒AWS CLI入門教程。
然而,即使你已經習慣了使用AWS CLI,我還是建議你看完下面的一些命令,它可以讓你更深刻地認識到AWS CLI的強大,這些命令將幫助你節約大量時間。重要提示:在不同的版本和封裝中,一些命令的語法可能出現些許不同。
1. 只通過一條命令就可以刪除指定的S3 bucket和其中的所有內容
有些時候,你可能需要關閉某個bucket并刪除其儲存的成百上千(或成千上萬)個你不要的文件。如果你有刪除大量存儲在S3中內容的經歷,那么你已經了解這是一個頗費時的操作。下面的命令將幫助你刪除一個bucket,以及其儲存的內容和目錄:
aws s3 rb s3://bucket-name --force
2. 遞歸地復制PC中的一個目錄以及其子文件到Amazon S3
如果你使用過S3控制臺,在某一階段,你可能會需要將PC中大量的文件復制到S3 bucket中。同樣,這是一個體力活,需要耗費一定的時間,特別是你所需要復制的文件在一個多層目錄下。下面的這條命令將簡化這個操作,可以幫助你把PC的一個目錄以及其下所有子文件夾復制到S3中的一個指定region。
aws s3 cp MyFolder s3://bucket-name -- recursive [--region us-west-2]
3. 查詢所有可用ec2鏡像的子集
下面這條命令將根據條件在所有可用的ec2鏡像上做搜索,在這里,我們過濾出所有基于Ubuntu的鏡像(這里假設終端使用的是Linux或者Mac)。
aws ec2 describe-images | grep ubuntu
注意:這個操作可能會需要數分鐘來完成。
4. 在不同格式下列出用戶
有些時候,取決于你選擇的默認輸出格式,當你調用一個長列表時(比如一個大的用戶集),輸出格式的可讀性可能并不理想。使用下面這條命令,在不修改默認設置的情況下,將會輸出一個更易于閱讀的表格。
aws iam list-users --output table
5. 顯示一個S3 bucket和其儲存項目的大小
下面這條命令使用JSON輸出來顯示一個bucket的大小,以及其中儲存項目的大小。在分析S3存儲的使用情況時,你就可能用到這個命令。
aws s3api list-objects --bucket BUCKETNAME --output json --query "[sum(Contents[].Size), length(Contents[])]"
6. 將指定S3 bucket轉移到另一個位置
如果你想快速將一個S3 bucket移至別處,下面這條命令可能幫助你節約大量時間。
aws s3 sync s3://oldbucket s3://newbucket --source-region us-west-1 --region us-west-2
7. 通過ARN列出用戶
“jq”類似于針對JSON數據的sed命令——你可以使用它來分割、過濾、映射及轉換結構化數據,類似sed、awk、grep等在non-JSON文本中的功能。
結合這個功能,我們再列出所有用戶時可以只顯示他們的ARN。
aws iam list-users --output json | jq -r .Users[].Arn
注意:默認情況下,系統可能并不會安裝jq。在基于Debian的系統中(包括Ubuntu),使用sudo apt-get來安裝jq。
8. 列出所有停止實例,及停止原因
這是JSON輸出參數的另一種用法。這次將列出所有停止的實例,并且顯示停止原因:
aws ec2 describe-instances --filters Name=instance-state-name,Values=stopped --region eu-west-1 --output json | jq -r .Reservations[].Instances[].StateReason.Message
9. 檢測你的一個CloudFormation模板
如果你寫了一個Cloud Formation Template,并需要在發布前對其進行驗證,你可以使用如下命令在CLI中處理:
aws cloudformation validate-template --region eu-west-1 --template-url https://s3-eu-west-1.amazonaws.com/ca/ca.cftemplate
10. 另一種使用JSON給AWS CLI傳遞輸入參數的方法
你可以給AWS CLI傳遞任何格式的輸入參數。下面是一個例子:
aws iam put-user-policy --user-name AWS-Cli-Test --policy-name Power-Access --policy-document '{ "Statement": [ { "Effect": "Allow", "NotAction": "iam:*", "Resource": "*" } ] }
學會習慣使用AWS CLI
以上命令只是AWS CLI的非常小的一部分,但卻展示了AWS CLI可以帶來的強大幫助。毫無疑問,使用AWS Console可以讓你輕松解決大部分工作, AWS CLI有時候還可以讓事情處理起來更加簡單,希望此文對大家有所幫助。
原文鏈接:http://cloudacademy.com/blog/aws-cli-10-useful-commands