1,IAM
---------------------------------------
AWSサービス:Amazon EC2
アクション :DescribeImages
Amazonリソースネーム(ARN):*
---------------------------------------
2,プログラム仕様
●入力パラメータ
・IAMユーザの”アクセスキーID”と”・シークレットアクセスキー”
●処理内容
自己所有のAMIをすべて取得し、DataGridViewへ表示する
●エラー処理
特になし
3,画面構成
4,プログラム
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 | Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim _AWSID As String = TextBox1.Text
Dim _AWSPass As String = TextBox2.Text
'EC2クライアント作成
Dim cred As Amazon.Runtime.BasicAWSCredentials
cred = New Amazon.Runtime.BasicAWSCredentials(_AWSID, _AWSPass)
Dim ec2client As Amazon.EC2.AmazonEC2Client
ec2client = New Amazon.EC2.AmazonEC2Client(cred, Amazon.RegionEndpoint.APNortheast1)
'リクエストオブジェクトを定義
Dim reQ = New Amazon.EC2.Model.DescribeImagesRequest
'特定のインスタンスIDのみを調べたい場合はここでパラメータ設定する
'reQ.ImageIds.Add(AMI ID)
'自己所有のみ表示します
reQ.Owners.Add("self")
'レスポンスオブジェクトを定義して、実行。
Dim Res As Amazon.EC2.Model.DescribeImagesResponse
Res = ec2client.DescribeImages(reQ)
'表示用のデータテーブルを作成する。
Dim Dt As New Data.DataTable
Dt.Columns.Add("ImageId") ' AMI ID
Dt.Columns.Add("Name") ' AMI名
Dt.Columns.Add("Description") ' AMI説明
Dt.Columns.Add("ImageState") ' 状態"available"など
Dt.Columns.Add("Architecture") ' "x86_64" or "i386"
Dt.Columns.Add("Platform") ' "windows"など
Dt.Columns.Add("OwnerId") ' オーナーAWSアカウント
Dt.Columns.Add("Public") ' Public公開されているかどうか
'ほかにも取得できます。デバッグして見て。
'データテーブルに取得値を格納する。
Dim Dr As Data.DataRow
For Each wImg As Amazon.EC2.Model.Image In Res.Images
Dr = Dt.NewRow()
Dr("ImageId") = wImg.ImageId
Dr("Name") = wImg.Name
Dr("Description") = wImg.Description
Dr("ImageState") = wImg.State
Dr("Architecture") = wImg.Architecture
Dr("Platform") = wImg.Platform
Dr("OwnerId") = wImg.OwnerId
If wImg.Public Then
Dr("Public") = "Public"
Else
Dr("Public") = "Private"
End If
'最後にDataRowをDataTableに入れる
Dt.Rows.Add(Dr)
Next
'画面表示する。
DataGridView1.DataSource = Dt
End Sub
|
5,解説16行目:reQ.Owners.Add("self") としておくことで、自己所有のみが選択されます。 これを入れないと、全部抽出対象になるので・・・。 37行目あたりでブレークポイント設定して、wImgの中身を見ると、取得できるもの全てがわかります。
参考:Imagesオブジェクトのプロパティはこちら
|
|