Amazon AWS EC2インスタンスをs3と通信するようにセットアップしようとしています。基本的なコマンドは
aws configure
次に、プロンプトに従って入力します
AWS Access Key ID [None]: my-20-digit-id
AWS Secret Access Key [None]: my-40-digit-secret-key
Default region name [None]: us-east-1
Default output format [None]: text
しかし、私が本当に望んでいるのは、コマンドを持つことです
aws configure
対話なしで自動的に、つまりプロンプトなしで入力を待機
にファイルがあることを知っています
~.aws/credentials
~.aws/config
ここで、4つのkey = valueペアを配置します。 「クレデンシャル」ファイルは次のようになります
[default]
aws_secret_access_key = my-40-digit-secret-key
aws_access_key_id = my-20-digit-id
「config」ファイルは次のようになります
[default]
region = us-east-1
output = text
ただし、これらのファイルを〜/ .aws /に置いて、〜/ .aws /に移動し、コマンドラインでコマンドを入力してコマンドを入力します。
aws configure
私はまだ私に尋ねるプロンプトを得ました
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]:
Default output format [None]:
プロンプトで有効な値を入力しないと、たとえばコマンドを使用してs3に接続できません
aws s3 ls s3://mybucket
ヘルプをAmazon awsのドキュメントページに向けました。このページでは、このオプションについて言及しています
「コマンドラインオプション-地域、出力形式、プロファイルをコマンドオプションとして指定して、デフォルト設定を上書きできます。」
aws configureの最初のオプションとして
https://docs.aws.Amazon.com/cli/latest/userguide/cli-chap-getting-started.html
ただし、コマンドラインオプションの使用方法については触れられていません。私はこのようなものを試しました
aws configure --region us-east-1
しかし、私はまだ持っています
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]:
Default output format [None]:
「--region us-east-1」のオプションがないのとまったく同じです
私がしようとすると
aws configure --aws_access_key_id my-20-digit-id --aws_secret_access_key my-40-digit-secret-key --region us-east-1
私はこれを手に入れます
usage: aws [options] <command> <subcommand> [parameters]
aws: error: argument subcommand: Invalid choice, valid choices are:
コマンドを実行する方法
aws configure
自動的、プロンプトなし、対話なし。
助けてください! TIA
メインの投稿の形式はコメントよりも明確であるため、helloVを編集して応答します。上記のコマンドhelloVを試しましたが、エラーが発生しました
aws configure set aws_access_key_id my-20-digit-id
usage: aws [options] <command> <subcommand> [parameters]
aws: error: argument subcommand: Invalid choice, valid choices are:
ありがとう。 「aws configure set」に進みます。接続をすでにs3に設定している別のEC2インスタンスで、次のように入力します。
aws configure set region us-east-1
実行してコマンドプロンプト ">"に戻る
aws configure set aws_access_key_id my-20-digit-id
実行してコマンドプロンプト ">"に戻る
aws configure set aws_secret_access_key my-40-digit-secret-key
実行してコマンドプロンプト ">"に戻る
aws configure
実行されますが、プロンプトが表示され、操作を待機します
AWS Access Key ID [****************ABCD]:
AWS Secret Access Key [****************1234]:
Default region name [us-east-1]:
Default output format [text]:
helloV:画面は次のようになります
ubuntu@ip-11111:~/.aws$ more config
[default]
region = us-east-1
output = text
ubuntu@ip-11111:~/.aws$ more credentials
[default]
aws_secret_access_key = my-40-digit-secret-key
aws_access_key_id = my-20-digit-id
ubuntu@ip-11111:~/.aws$ aws s3 ls s3://
私はこれを得た
Unable to locate credentials. You can configure credentials by running "aws configure".
この後、走る
aws configure list
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key <not set> None None
secret_key <not set> None None
region us-east-1 config_file ~/.aws/config
〜/ .aws/credentialsファイルをチェックしないようですが、〜/ .aws/configファイルがリストにあります。
ようやくわかりました。次のようなエクスポートを使用します
export AWS_ACCESS_KEY_ID=my-20-digit-id
export AWS_SECRET_ACCESS_KEY=my-40-digit-secret-key
export AWS_DEFAULT_REGION=us-east-1
次に実行します
aws s3 ls s3://
うまくいくでしょう。他の人が述べたように「aws configure」を実行しないでください。
皆さん、ありがとうございました。
あなたはファイルを非常によく説明します。ファイルを作成して適切な場所に配置しないのはなぜですか?試したところ... aws configure
を実行するのとまったく同じです
[〜#〜] update [〜#〜]:EC2インスタンスからS3にアクセスしたいということです。この場合、資格情報をまったく使用しないでください。代わりにRolesを使用する必要があります
これらのコマンドは私のために働いた。これでうまくいかない場合。インタラクションモードaws configure
aws --profile default configure set aws_access_key_id "my-20-digit-id"
aws --profile default configure set aws_secret_access_key "my-40-digit-secret-key"