AWS CLI のスケルトンと入力ファイル AWS CLI - AWS Command Line Interface

このドキュメントは、 のバージョン 1 AWS CLI 専用です。のバージョン 2 に関連するドキュメントについては AWS CLI、バージョン 2 ユーザーガイド を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS CLI のスケルトンと入力ファイル AWS CLI

ほとんどの AWS CLI コマンドは、ファイルからのすべてのパラメータ入力を受け入れます。これらのテンプレートは、generate-cli-skeletonオプションを使用して生成できます。

AWS CLI スケルトンと入力ファイルについて

ほとんどの AWS Command Line Interface (AWS CLI) コマンドは、 --cli-input-json パラメータ を使用して、ファイルからのすべてのパラメータ入力を受け入れる機能をサポートしています。

これらの同じコマンドは、編集して入力できるすべての--generate-cli-skeletonパラメータを含む JSON形式のファイルを生成する パラメータを提供します。その後、関連する --cli-input-json パラメータを使用してコマンドを実行し、入力済みのファイルを指定できます。

重要

AWS CLI コマンドコマンド など、いくつかのaws s3コマンドは個々の AWS APIオペレーションに直接マッピングされません。このようなコマンドは、このトピックで説明している --generate-cli-skeleton または --cli-input-json パラメータもサポートしていません。特定のコマンドがこれらのパラメータをサポートしているかどうかわからない場合は、次のコマンドを実行して、service また、command 関心のある名前。

$ aws service command help

出力に、指定されたコマンドがサポートするパラメータを示す Synopsis セクションが含まれています。

$ aws iam list-users help ... SYNOPSIS list-users ... [--cli-input-json] ... [--generate-cli-skeleton <value>] ...

--generate-cli-skeleton パラメータを指定すると、コマンドは実行せず、パラメータテンプレートを生成して表示します。これをカスタマイズして、後でコマンドに対する入力として使用することができます。生成されるテンプレートには、そのコマンドによってサポートされているすべてのパラメータが含まれています。

--generate-cli-skeleton パラメータには、次のいずれかの値を指定できます。

  • input – 生成されたテンプレートには、 としてフォーマットされたすべての入力パラメータが含まれますJSON。これは、デフォルト値です。

  • output – 生成されたテンプレートには、 としてフォーマットされたすべての出力パラメータが含まれますJSON。

AWS CLI は基本的にサービスの を囲む「ラッパー」であるためAPI、スケルトンファイルでは、すべてのパラメータを基盤となるAPIパラメータ名で参照することが期待されます。これはパラメータ AWS CLI 名とは異なる可能性があります。例えば、 という名前の AWS CLI パラメータは、 という名前の AWS サービスのAPIパラメータにマッピングuser-nameされる場合があります UserName (大文字と小文字が変更されたこととダッシュが欠落していることに注意)。エラーを回避するために、--generate-cli-skeleton オプションを使用して「正しい」パラメータ名でテンプレートを生成することをお勧めします。サービスのAPIリファレンスガイドを参照して、予想されるパラメータ名を確認することもできます。テンプレートから、値を指定しない必須でないパラメータを削除できます。

例えば、次のコマンドを実行すると、Amazon Elastic Compute Cloud (Amazon EC2) コマンド のパラメータテンプレートが生成されますrun-instances

JSON

次の例は、 --generate-cli-skeletonパラメータのデフォルト値 (input) JSON を使用して でフォーマットされたテンプレートを生成する方法を示しています。

$ aws ec2 run-instances --generate-cli-skeleton
{ "DryRun": true, "ImageId": "", "MinCount": 0, "MaxCount": 0, "KeyName": "", "SecurityGroups": [ "" ], "SecurityGroupIds": [ "" ], "UserData": "", "InstanceType": "", "Placement": { "AvailabilityZone": "", "GroupName": "", "Tenancy": "" }, "KernelId": "", "RamdiskId": "", "BlockDeviceMappings": [ { "VirtualName": "", "DeviceName": "", "Ebs": { "SnapshotId": "", "VolumeSize": 0, "DeleteOnTermination": true, "VolumeType": "", "Iops": 0, "Encrypted": true }, "NoDevice": "" } ], "Monitoring": { "Enabled": true }, "SubnetId": "", "DisableApiTermination": true, "InstanceInitiatedShutdownBehavior": "", "PrivateIpAddress": "", "ClientToken": "", "AdditionalInfo": "", "NetworkInterfaces": [ { "NetworkInterfaceId": "", "DeviceIndex": 0, "SubnetId": "", "Description": "", "PrivateIpAddress": "", "Groups": [ "" ], "DeleteOnTermination": true, "PrivateIpAddresses": [ { "PrivateIpAddress": "", "Primary": true } ], "SecondaryPrivateIpAddressCount": 0, "AssociatePublicIpAddress": true } ], "IamInstanceProfile": { "Arn": "", "Name": "" }, "EbsOptimized": true }

コマンドスケルトンを生成生成する

パラメータスケルトンファイルを生成して使用するには
  1. --generate-cli-skeleton パラメータを使用して コマンドを実行してJSON を生成し、出力をファイルに転送して保存します。

    JSON
    $ aws ec2 run-instances --generate-cli-skeleton input > ec2runinst.json
  2. テキストエディタでパラメータスケルトンファイルを開き、不要なパラメータを削除します。例えば、テンプレートを次のように削除できます。不要な要素を削除した後JSON、ファイルがまだ有効であることを確認してください。

    JSON
    { "DryRun": true, "ImageId": "", "KeyName": "", "SecurityGroups": [ "" ], "InstanceType": "", "Monitoring": { "Enabled": true } }

    この例では、Amazon EC2ドライラン機能を使用するtrueように DryRunパラメータを に設定します。この機能を使用すると、実際にリソースを作成または変更することなく、コマンドを安全にテストできます。

  3. 残りの値には、シナリオに適した値を入力します。この例では、使用する Amazon マシンイメージ (AMI) のインスタンスタイプ、キー名、セキュリティグループ、識別子を指定します。この例では、デフォルトの AWS リージョンを前提としています。AMI ami-dfc39aef は、us-west-2リージョンでホストされている 64 ビットの Amazon Linux イメージです。別のリージョンを使用する場合は、 を使用するための正しい AMI ID を見つける必要があります。

    JSON
    { "DryRun": true, "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }
  4. file:// プレフィックスを使用して、完了したテンプレートファイルを --cli-input-json パラメータに渡すことによって、入力済みパラメータでコマンドを実行します。はパスを現在の作業ディレクトリに相対していると AWS CLI 解釈するため、パスのないファイル名のみを表示する次の例では、現在の作業ディレクトリでファイルを直接検索します。

    JSON
    $ aws ec2 run-instances --cli-input-json file://ec2runinst.json
    A client error (DryRunOperation) occurred when calling the RunInstances operation: Request would have succeeded, but DryRun flag is set.

    ドライランエラーは、 JSONが正しく形成され、パラメータ値が有効であることを示します。出力でその他の問題が報告された場合は、それを修正し、「Request would have succeeded」というメッセージが表示されるまで前のステップを繰り返します。

  5. これで、DryRun パラメータを false に設定して、dry run を無効にできます。

    JSON
    { "DryRun": false, "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }
  6. コマンドを実行し、run-instances実際に Amazon EC2インスタンスを起動して、正常に起動したときに生成された詳細を表示します。出力の形式は、入力パラメータテンプレートの形式とは別に、--output パラメータによって制御されます。

    JSON
    $ aws ec2 run-instances --cli-input-json file://ec2runinst.json --output json
    { "OwnerId": "123456789012", "ReservationId": "r-d94a2b1", "Groups": [], "Instances": [ ...