はじめに
ResourcesIDやARNは再作成すると変わってしまうため、
Nameタグ等の名前をキーにして個を特定したい事ってあると思います。
備忘録も兼ねていろいろなResourcesを名前で検索するときの書き方を載せておきます。
コード
リソース名は適宜変更してください。
Get-IAMRole
名前指定のパラメータがある
Get-IAMUser -UserName "UserX"
Get-IAMRole
名前指定のパラメータがある
Get-IAMRole -RoleName "RoleX"
Get-EC2Vpc
FilterでNameタグを指定する
Get-EC2Vpc -Filter @{Name = "tag:Name"; Value = "VpcX";}
Get-EC2Subnet
FilterでNameタグを指定する
Get-EC2Subnet -Filter @{Name = "tag:Name"; Value = "SubnetX";}
Get-EC2Instance
FilterでNameタグを指定する
Get-EC2Instance -Filter @{Name = "tag:Name"; Value = "instanceX";}
Get-RDSDBInstance
DBInstanceIdentifierパラメータがあるので迷わないかも
$Param = @{
DBInstanceIdentifier = "instanceX";
Region = "ap-northeast-1";
}
Get-RDSDBInstance @Param
Get-EC2TagでName指定
全パラメータsplat
事前にハッシュテーブルを作成するので縦に長い。
resource-typeのValueを変更すればAMIやEBSもNameからResourcesIDを取得できるのが特徴。
使用できるresource-typeについては後述。
$Param = @{
Filter = @(
@{
Name = "key";
Values = "Name";
},
@{
Name = "value";
Values = "instanceX";
},
@{
Name = "resource-type";
Values = "instance";
}
);
Region = "ap-northeast-1";
}
$ResourceId = (Get-EC2Tag @Param).ResourceId
Filterだけsplat
Filterにハッシュテーブルを直書きすればワンライナーでいけます。
ただし横に長い。
resource-typeのValueを変更すればAMIやEBSもNameからResourcesIDを取得できるのが特徴。
使用できるresource-typeについては後述。
$ResourceId = (Get-EC2Tag -Filter @{Name = "key"; Values = "Name";}, @{Name = "value"; Values = "instanceX";}, @{Name = "resource-type"; Values = "instance";}).ResourceId
使用できるresource-typeの調べ方
ここのFields - Nameに記載されている
https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/EC2/TResourceType.html
もしくは
Get-Help Get-EC2Tag -Full
コマンドで表示されるパラメーター - Filterにあります。