AWS CLI でリソースを見つける

AWSBeginner
オンラインで実践に進む

はじめに

レポート作成チームは、本番環境や別のチームの設定を変更せずに、財務部門のテスト用設定をレビューする必要があります。対象のリソースを見つけ、一覧を読みやすくし、エクスポート形式を CSV に更新します。

最初に、作業環境とリージョン別リソースの実験を完了してください。CLI の接続とリソースは新しい環境に準備済みで、前の実験のファイルや認証情報は必要ありません。コマンドには Terminal を使い、隣の AWS View で変化を観察します。

認定試験との関連

このラボでは、次の試験トピックに関連する実践的な演習を行います。

財務部門のテスト用設定を見つける

このステップでは、さまざまなリソースが混在する一覧を、今回のレビュー対象である財務部門の設定に絞り込みます。

前の実験では、Region で場所を選ぶ方法を学びました。今回はデフォルトとして us-east-1 が準備されています。--region を付けないコマンドは、この場所を使います。--region us-east-1 を明示的に指定することもできます。

作業ディレクトリに移動します。

cd /home/labex/project

リソースインベントリとは、リソースの一覧です。準備済みのパラメーターの一覧を表示します。

aws ssm describe-parameters

各項目の Name と Description を見てください。ステージング(Staging)は、通常の業務が行われる本番環境(production)を変更する前に使うテスト環境です。一覧には、財務部門のステージング、財務部門の本番環境、人事部門のステージングの設定があります。今回の三つのリソースは /labex/inventory/finance/staging/ で始まります。

公式 Console はパラメーターのメタデータをリソースの表で表示します。Name と Type の列を、describe-parameters が返すフィールドと比較してください。例の名前は異なります。この実験では String パラメーターを使います。

リソース名と型を表示する公式 Parameter Store の My parameters 表

出典:AWS Blog。

一覧は目で確認できる大きさですが、フィルターを使うと対象範囲が明確になります。--parameter-filters は、一致するレコードを返すようサービスに求めます。Key=Name は名前を選び、Option=BeginsWith は名前の先頭と照合し、Values=... は照合する先頭部分を指定します。

aws ssm describe-parameters --parameter-filters Key=Name,Option=BeginsWith,Values=/labex/inventory/finance/staging/

report-format、report-owner、review-status の三つの名前が表示されるはずです。順序は異なる場合があります。

プレフィックスフィルターで財務部門のステージングを選び、他のリソースを結果から除外する

概念図:フィルターが変えるのは返される一覧であり、リソースではありません。他の設定も存在したままです。

既存のステータスを更新して、設定のレビューを開始したことを記録します。

aws ssm put-parameter --name /labex/inventory/finance/staging/review-status --type String --value in-review --overwrite

put-parameter と --overwrite は最初の実験で学びました。AWS View は財務部門のステージングに in-review を表示します。財務部門の本番環境と人事部門は変更しないでください。

名前を表示し、エクスポート形式を更新する

このステップでは、一致する名前だけを表示してから、財務部門のステージングのエクスポート形式を変更します。

応答には、今必要としている以上のフィールドが含まれています。--query は応答の一部を選び、保存済みのデータは変更しません。'Parameters[].Name' の Parameters[] は返されたレコードを意味し、.Name はその名前を選びます。式はシングルクォートで囲んでください。

既存のフィルターに、この選択を追加します。

aws ssm describe-parameters --parameter-filters Key=Name,Option=BeginsWith,Values=/labex/inventory/finance/staging/ --query 'Parameters[].Name'

三つの名前を含む JSON のリストが返されます。フィルターは引き続きリソースを選び、クエリは表示するフィールドを選ぶことに注目してください。

フィールドの選択でリソース名を表示しても、完全なレコードは変わらない

概念図:Name を選ぶと、この応答では他のフィールドが表示されなくなりますが、削除されるわけではありません。

よりコンパクトに表示するには、--output table を追加します。

aws ssm describe-parameters --parameter-filters Key=Name,Option=BeginsWith,Values=/labex/inventory/finance/staging/ --query 'Parameters[].Name' --output table

同じ三つの名前が表に表示されます。出力形式が変えるのは表示方法だけです。

名前を指定し、ステージングの形式設定を正確に読み取ります。

aws ssm get-parameter --name /labex/inventory/finance/staging/report-format

Value を見つけてください。値は json です。これはアプリケーションのエクスポート形式であり、CLI の JSON 応答形式とは別のものです。後続のレポートインポーターには CSV が必要なので、設定を更新します。

aws ssm put-parameter --name /labex/inventory/finance/staging/report-format --type String --value csv --overwrite

もう一度読み取ります。

aws ssm get-parameter --name /labex/inventory/finance/staging/report-format

値は csv になりました。AWS View で、財務部門のステージングを本番環境や人事部門と比較します。

財務部門のステージングのエクスポート形式だけが csv に変わる

結果の例:財務部門のステージングは csv を使い、本番環境は json、人事部門は xlsx のままです。レビューのステータスは引き続き in-review です。

設定を確認し、レビューを終える

このステップでは、レビューした二つの値を読み取り、財務部門のステージングの設定を準備完了として記録します。

一つのリソースから一つのフィールドを選ぶこともできます。'Parameter.Value' は Parameter 内の値を読み取り、--output text は JSON の引用符を付けずに表示します。

aws ssm get-parameter --name /labex/inventory/finance/staging/report-format --query 'Parameter.Value' --output text

csv が返されます。このレポート設定の所有者を確認します。

aws ssm get-parameter --name /labex/inventory/finance/staging/report-owner --query 'Parameter.Value' --output text

finance が返されます。これらは保存済みの値です。先ほどのメタデータの一覧では、代わりに名前と説明が表示されていました。

次に、完了したレビューを準備完了として記録します。

aws ssm put-parameter --name /labex/inventory/finance/staging/review-status --type String --value ready --overwrite

結果を読み取ります。

aws ssm get-parameter --name /labex/inventory/finance/staging/review-status --query 'Parameter.Value' --output text

ready が返されます。AWS View は財務部門のステージングに、形式 csv、所有者 finance、ステータス ready を表示します。設定をレビューしたのであり、レポートアプリケーションをデプロイしたわけではありません。

選択した名前空間を削除する

このステップでは、レビューのチェックが合格した後、財務部門のステージングのリソースだけを削除します。

CLI のクエリが整えるのは応答だけであり、後の削除を継続的に保護する仕組みではありません。削除する範囲は明示してください。delete-parameters は --names で正確な名前のリストを受け取ります。次の三つが、この演習の対象リソースです。

aws ssm delete-parameters --names /labex/inventory/finance/staging/report-format /labex/inventory/finance/staging/report-owner /labex/inventory/finance/staging/review-status

応答の DeletedParameters には削除された名前が表示され、InvalidParameters は空になるはずです。正常に完了するサービスリクエストで、ステージングのプレフィックスを確認します。

aws ssm describe-parameters --parameter-filters Key=Name,Option=BeginsWith,Values=/labex/inventory/finance/staging/ --query 'Parameters[].Name' --output json

結果は [] です。接続エラーや認証エラーは観察の失敗であり、削除の証拠ではありません。

残ったリソース一覧の名前を読み取ります。

aws ssm describe-parameters --query 'Parameters[].Name' --output table

残るリソースは三つです。財務部門の本番環境の形式とレビューのステータス、人事部門のステージングの形式です。変更せずに値を確認します。

aws ssm get-parameter --name /labex/inventory/finance/production/report-format --query 'Parameter.Value' --output text
aws ssm get-parameter --name /labex/inventory/finance/production/review-status --query 'Parameter.Value' --output text
aws ssm get-parameter --name /labex/inventory/hr/staging/report-format --query 'Parameter.Value' --output text

値は json、ready、xlsx のままです。AWS View は財務部門のステージングを No parameters と表示し、他のグループには引き続きリソースが表示されます。独立した削除チェックは、それらの元のバージョンと説明が保持されていることも確認します。

まとめ

名前のプレフィックスフィルターで財務部門のステージングを見つけ、--query で名前や一つの値を選び、表形式やテキスト形式の出力で読みやすくしました。指定された設定だけを更新し、他のチームのリソースを残しながら削除しました。

次の「タグでリソースを整理する」では、チームと環境のラベルを追加します。名前のパターンが異なるリソースもグループ化できるようになります。