Slide 17
Slide 17 text
© DMM.com
AWS SDKではCLIと同じような情報が取れる
17
# AWS CLI で インスタンス情報取得したとき
$ aws ec2 describe-instances
{
"Reservations": [
{
"Groups": [],
"Instances": [
{
"AmiLaunchIndex": 0,
"ImageId": "ami-xxxxxxxxxx",
"InstanceId": "i-xxxxxxxxxxxxxx",
"InstanceType": "t2.large",
"KeyName": "hogehoge.pem",
"LaunchTime": "2022-04-11T07:08:47+00:00",
"Monitoring": {
"State": "disabled"
},
// EC2情報の取得
ec2Input := &ec2.DescribeInstancesInput{}
ec2Output, err := client.DescribeInstances(context.TODO(),
ec2Input)
ec2InfoMap := map[string]*Ec2Info{}
for _, reservation := range ec2Output.Reservations {
// インスタンスごとの情報取得
if reservation.Instances != nil {
for _, ec2 := range reservation.Instances {
ec2InfoMap[*ec2.InstanceId] = &Ec2Info{}
・CLIだとJSONで返却されてくるような値が、 SDKだとオブジェクトとして返却
・リストやオブジェクトで階層構造になってるので、ループ処理で欲しい値を掘り出してくる
・取得した情報を元に、 if文で設定内容をチェックして OK/NGを返す