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

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

はじめに

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

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

認定試験との関連

認定試験 試験タスク このラボの演習
Cloud Practitioner (CLF-C02) タスク 3.1 CLI によるリソース検索と範囲を限定した運用インベントリ。

ラボの概要

概念図: 名前の接頭辞で財務部門のテスト設定を絞り込み、別の更新操作でエクスポート形式を CSV に変更します。

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

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

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

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

aws ssm describe-parameters

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

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

リソース名と型を表示する公式 Parameter Store の My parameters 表 — 出典:AWS Blog — https://aws.amazon.com/blogs/mt/implement-operations-observability-in-landing-zone-environments/。

一覧は目で確認できる大きさですが、フィルターを使うと対象範囲が明確になります。--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 の 2 つの名前が表示されます。順序は変わる場合があります。フィルターは今回のリソースを選択するだけで設定を変更しません。

プレフィックスフィルターで財務部門のステージングを選び、他のリソースを結果から除外する — 概念図:フィルターが変えるのは返される一覧であり、リソースではありません。他の設定も存在したままです。

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

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

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

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

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

応答には一致する 2 つの名前が表示されます。フィルターはリソース、クエリは表示するフィールドを選びます。

フィールドの選択でリソース名を表示しても、完全なレコードは変わらない — 概念図:Name を選ぶと、この応答では他のフィールドが表示されなくなりますが、削除されるわけではありません。

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

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

同じ 2 つの名前が表で表示されます。変わるのは表示形式だけです。

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

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 で finance staging、production、HR を比較してください。変更したのは staging のレポート形式だけで、production は json、HR は xlsx のままです。

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

このステップでは、対象の出力形式と担当チームを確認します。

一つのリソースから一つのフィールドを選ぶこともできます。'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 が返されます。これらは保存済みの値です。先ほどのメタデータの一覧では、代わりに名前と説明が表示されていました。

保存値から、対象設定の形式は csv、チームは finance と確認できます。他のグループは変更されていません。次は共通の名前の接頭辞がないリソースをタグでまとめます。

まとめ

finance staging の設定を探し、必要なフィールドを選び、対象の形式だけを変更しました。次はチームと環境のタグでリソースを整理します。

詳しくは、AWS 公式ドキュメントを参照してください:CLI のサーバー側フィルターとクライアント側クエリ.