バッチ(cmd)でEC2のAMIを取得

 


PowerShellの方が簡単なのに・・と思いつつ、

男には.batでやらねばならぬ時もあるのです。

 
Windowsのコマンドライン(create-image.bat)でEC2のAMIを取得してみましょう。

第1引数にNameタグを設定し、当該タグのつけられたインスタンスのAMIを取得する。
※いろいろ端折ってるのでコピペして使う時注意。

[text]
@echo off
setlocal

set TAG_NAME=%1
set AMI_ID=

@REM タグ名を元にインスタンスIDを取得する
set CMD=aws ec2 describe-tags –filters “Name=tag:Name, Values=%TAG_NAME%” “Name=resource-type, Values=instance” –query Tags[].ResourceId –output text
set INSTANCE_ID=
for /f “usebackq delims=” %%a in (`%CMD%`) do set INSTANCE_ID=%%a
echo %INSTANCE_ID%

@REM インスタンスIDを元にAMIを取得する
set CMD=aws ec2 create-image –instance-id %INSTANCE_ID% –name %TAG_NAME%_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2% –description %TAG_NAME%_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2% –output text
for /f “usebackq delims=” %%a in (`%CMD%`) do set AMI_ID=%%a
echo %AMI_ID%
endlocal
exit /b 0
[/text]

 
取得したAMIのAMI IDも取れるので、それを元に別のタグをCreateTagsするもよし。

 

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく
NRIネットコム株式会社 佐々木 拓郎 佐藤 瞬 石川 修 高柳 怜士 佐藤 雄也 岸本 勇貴
SBクリエイティブ
売り上げランキング: 49,995