

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

# AWS SDKsとツールをグローバルに設定する
<a name="creds-config-files"></a>

 AWS SDKs や AWS Command Line Interface (AWS CLI) などのその他のデ AWS ベロッパーツールを使用すると、 AWS サービス APIsを操作できます。ただし、その前に、要求された操作を実行するために必要な情報を SDK またはツールに設定する必要があります。

この情報には以下のアイテムが含まれます。
+ API の呼び出し元を識別する**認証情報**。認証情報は、 AWS サーバーへのリクエストを暗号化するために使用されます。この情報を使用して、 はアイデンティティ AWS を確認し、それに関連付けられたアクセス許可ポリシーを取得できます。次に、どのようなアクションを実行できるかを判断できます。
+ リクエストの処理方法、リクエストの送信先 ( AWS サービスエンドポイント）、レスポンスの解釈または表示方法を AWS CLI または SDK に指示するために使用する**その他の設定の詳細**。

各 SDK またはツールは、必要な認証情報と設定情報を供給するために使用できる複数のソースをサポートしています。ソースの中には SDK やツールに独自のものもあるため、その方法の使用方法の詳細については、そのツールまたは SDK のドキュメントを参照する必要があります。

ただし、 AWS SDKsとツールは、コード自体以外のプライマリソースからの一般的な設定をサポートしています。このセクションでは、次のトピックについて説明します。

**Topics**
+ [共有ファイル`config`と `credentials` ファイルを使用して AWS SDKs とツールをグローバルに設定する](file-format.md)
+ [AWS SDKs とツールの共有`config`ファイルと`credentials`ファイルの場所の検索と変更](file-location.md)
+ [環境変数を使用して AWS SDKsとツールをグローバルに設定する](environment-variables.md)
+ [JVM システムプロパティを使用して AWS SDK for Java と をグローバルに設定する AWS SDK for Kotlin](jvm-system-properties.md)

# 共有ファイル`config`と `credentials` ファイルを使用して AWS SDKs とツールをグローバルに設定する
<a name="file-format"></a>

共有 AWS `config` ファイルと `credentials`ファイルは、 AWS SDK またはツールへの認証と設定を指定できる最も一般的な方法です。

共有 `credentials` および `config` ファイルには一連のプロファイルが含まれています。プロファイルは、 AWS SDKs、 AWS Command Line Interface (AWS CLI)、およびその他のツールで使用されるキーと値のペアの一連の設定です。プロファイルを使用するときに SDK／ツールの一部を設定するために、設定値がプロファイルに添付されます。これらのファイルは、値がユーザーのローカル環境にあるすべてのアプリケーション、プロセス、または SDK に影響するという点で「共有」されます。

共有 `config` ファイルと `credentials` ファイルはどちらも ASCII 文字（UTF-8 でエンコードされた）のみを含むプレーンテキストファイルです。これらは一般に [INI ファイル](https://wikipedia.org/wiki/INI_file)と呼ばれる形式をとります。

## プロファイル
<a name="file-format-profile"></a>

共有 `config` ファイルと `credentials` ファイル内の設定は特定のプロファイルに関連付けられます。ファイル内で複数のプロファイルを定義し、異なる設定を作成して異なる開発環境に適用することができます。

 `[default]` プロファイルには、特定の名前付きプロファイルが指定されていない場合に SDK またはツールオペレーションで使用される値が含まれます。名前で明示的に参照できる個別のプロファイルを作成することもできます。各プロファイルは、アプリケーションやシナリオに応じて異なる設定と値を使用できます。

**注記**  
`[default]` は単に名前のないプロファイルです。このプロファイルは、ユーザーがプロファイルを指定しない場合に SDK が使用するデフォルトのプロファイルであるため、`default` の名前が付けられています。継承されたデフォルト値を他のプロファイルに使用することはありません。`[default]` プロファイルに何かを設定し、それを名前付きプロファイルでは設定しなかった場合、名前付きプロファイルを使用してもその値は設定されません。

### 名前付きプロファイルの設定
<a name="set-named-profile"></a>

`[default]` プロファイルと複数の名前付きプロファイルは、同じファイル内に存在できます。次の設定を使用して、コードの実行時に SDK またはツールがどのプロファイルの設定を使用するかを選択します。プロファイルはコード内で選択することも、 AWS CLIを使用する場合はコマンドごとに選択することもできます。

この機能を設定するには、以下のいずれかの設定を使用します。

**`AWS_PROFILE` - 環境変数**  
この環境変数を名前付きプロファイルまたは「デフォルト」に設定すると、すべての SDK コードと AWS CLI コマンドはそのプロファイルの設定を使用します。  
Linux/macOS のコマンドラインによる環境変数の設定の例を以下に示します。  

```
export AWS_PROFILE="my_default_profile_name";
```
Windows のコマンドラインによる環境変数の設定の例を以下に示します。  

```
setx AWS_PROFILE "my_default_profile_name"
```

**`aws.profile` - JVM システムプロパティ**  
JVM の SDK for Kotlin と SDK for Java 2.x では、[`aws.profile` システムプロパティを設定できます](jvm-system-properties.md#jvm-sys-props-set)。SDK はサービスクライアントを作成するときに、コードで設定が上書きされない限り、名前付きプロファイルの設定を使用します。SDK for Java 1.x は、このシステムプロパティをサポートしていません。

**注記**  
アプリケーションが複数のアプリケーションを実行しているサーバー上にある場合は、デフォルトのプロファイルではなく、常に名前付きプロファイルを使用することをお勧めします。デフォルトのプロファイルは、環境内の任意の AWS アプリケーションによって自動的に取得され、それらの間で共有されます。したがって、他のユーザーがアプリケーションのデフォルトプロファイルを更新すると、意図せず他のユーザーに影響を与える可能性があります。これを防ぐには、共有 `config` ファイルで名前付きプロファイルを定義し、コードに名前付きプロファイルを設定して、アプリケーションでその名前付きプロファイルを使用します。名前付きプロファイルのスコープがアプリケーションにのみ影響することがわかっている場合は、環境変数または JVM システムプロパティを使用して名前付きプロファイルを設定できます。

## 設定ファイルの形式
<a name="file-format-config"></a>

`config` ファイルは、セクションにまとめられています。セクションは、設定の名前付きコレクションであり、別のセクション定義の行が検出されるまで続きます。

`config` ファイルは、次の形式を使用するプレーンテキストファイルです。
+ セクション内のすべてのエントリは、`setting-name=value` の一般的な形式になります。
+ 行の先頭にハッシュタグ (`#`) を付けると、行をコメントアウトできます。

### セクションタイプ
<a name="section-types"></a>

セクション定義は、設定のコレクションに名前を付ける行です。セクション定義行の先頭と末尾は角括弧 (`[` `]`) です。括弧内には、セクションタイプ識別子とセクションのカスタム名があります。英文字、数字、ハイフン (`-`)、アンダースコア (`_`) は使用できますが、スペースは使用できません。

#### セクションタイプ: `default`
<a name="section-default"></a>

セクション定義行の例：`[default]`

 `[default]` は、`profile` セクション識別子を必要としない唯一のプロファイルです。

`[default]` プロファイルのある基本 `config` ファイルの例を以下に示します。[`region`](feature-region.md) を設定します。別のセクション定義が見つかるまで、この行に続くすべての設定は、このプロファイルの一部になります。

```
[default]
#Full line comment, this text is ignored.
region = us-east-2
```

#### セクションタイプ: `profile`
<a name="section-profile"></a>

セクション定義行の例：`[profile dev]`

`profile` セクション定義行は、さまざまな開発シナリオに適用できる名前付き設定グループです。名前付きプロファイルについての理解を深めるには、前のセクションの「プロファイル」を参照してください。

次の例は、`profile` セクション定義行と `foo` という名前付きプロファイルを含む `config` ファイルを示しています。別のセクション定義が見つかるまで、この行に続くすべての設定は、この名前付きプロファイルの一部になります。

```
[profile foo]
...settings...
```

次の例の `s3` 設定やサブ設定など、一部の設定には独自のサブ設定グループがネストされています。サブ設定を 1 つまたは複数のスペースでインデントしてグループに関連付けます。

```
[profile test]
region = us-west-2
s3 =
    max_concurrent_requests=10
    max_queue_size=1000
```

#### セクションタイプ: `sso-session`
<a name="section-session"></a>

セクション定義行の例：`[sso-session my-sso]`

`sso-session` セクション定義行には、 を使用して AWS 認証情報を解決するようにプロファイルを設定するために使用される設定のグループの名前が付けられます AWS IAM アイデンティティセンター。シングルサインオン認証の設定の詳細については、「[IAM Identity Center を使用して AWS SDK とツールを認証する](access-sso.md)」を参照してください。プロファイルは、キーと値のペアによって `sso-session` セクションにリンクされます。ここで、`sso-session` はキー、`sso-session` セクションの名前は値です（`sso-session = <name-of-sso-session-section>` など）。

次の例では、「my-sso」のトークンを使用して「111122223333」アカウントの「SampleRole」IAM ロールの短期 AWS 認証情報を取得するプロファイルを設定しています。「my-sso」`sso-session` セクションは、`profile` セクションの中で `sso-session` キーを使用して名前で参照されます。

```
[profile dev]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
```

#### セクションタイプ: `services`
<a name="section-services"></a>

セクション定義行の例：`[services dev]`

**注記**  
`services` セクションはサービス固有のエンドポイントのカスタマイズをサポートしており、この機能を含む SDK とツールでのみ使用できます。お使いの SDK でこの機能が使用できるかどうかを確認するには、「サービス固有のエンドポイント」の [AWS SDKsとツールによるサポート](feature-ss-endpoints.md#ss-endpoints-sdk-compat) を参照してください。

`services` セクション定義行は、 AWS のサービス リクエストのカスタムエンドポイントを設定する設定のグループに名前を付けます。プロファイルは、キーと値のペアによって `services` セクションにリンクされます。ここで、`services` はキー、`services` セクションの名前は値です（`services = <name-of-services-section>` など）。

 `services` セクションはさらに`<SERVICE> = `、行ごとにサブセクションに分割されます。ここで、 `<SERVICE>`は AWS のサービス 識別子キーです。 AWS のサービス 識別子は、すべてのスペースをアンダースコアに置き換え、すべての文字を小文字に置き換え`serviceId`ることで、API モデルの に基づいています。`services` セクションで使用するすべてのサービス識別子キーのリストについては、「[サービス固有のエンドポイントの識別子](ss-endpoints-table.md)」を参照してください。サービス識別子キーの後には、ネストされた設定 (それぞれが 1 行にあり、2 つのスペースでインデントされている) が続きます。

 次の例では、`services` 定義を使用して、 Amazon DynamoDB サービスに対して行われたリクエストにのみ使用するようにエンドポイントを設定しています。`"local-dynamodb"` `services` セクションは、`profile` セクションの中で `services` キーを使用して名前で参照されます。 AWS のサービス 識別子キーは です`dynamodb`。 Amazon DynamoDB サービスサブセクションは行 で始まります`dynamodb = `。直後のインデントされた行はすべてそのサブセクションに含まれ、そのサービスに適用されます。

```
[profile dev]
services = local-dynamodb

[services local-dynamodb]
dynamodb = 
  endpoint_url = http://localhost:8000
```

カスタムエンドポイントの設定の詳細については、「[サービス固有のエンドポイント](feature-ss-endpoints.md)」を参照してください。

## 認証情報ファイルの形式
<a name="file-format-creds"></a>

プロファイルセクションが単語 `profile` で始まらないことを除けば、`credentials` ファイルのルールは一般的に `config` ファイルのルールと同じです。角括弧内にはプロファイル名だけを使用してください。次の例は、`foo` という名前付きプロファイルセクションを含む `credentials` ファイルを示しています。

```
[foo]
...credential settings...
```

`credentials` ファイルに保存できるのは、「シークレット」または機密と見なされる次の設定のみです。`aws_access_key_id`、`aws_secret_access_key`、および `aws_session_token`。これらの設定は共有 `config` ファイルに配置することもできますが、これらの機密の値は別の `credentials` ファイルに保持することをお勧めします。これにより、必要に応じてファイルごとに個別のアクセス許可を与えることができます。

`[default]` プロファイルのある基本 `credentials` ファイルの例を以下に示します。[`aws_access_key_id`、`aws_secret_access_key`、および `aws_session_token`](feature-static-credentials.md) グローバル設定を設定します。

```
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
```

`credentials` ファイルで名前付きプロファイルを使用するか「`default`」を使用するかにかかわらず、ここでの設定は、同じプロファイル名を使用する `config` ファイルの設定と組み合わせられます。同じ名前を共有するプロファイルの両方のファイルに認証情報がある場合、認証情報ファイルのキーが優先されます。

# AWS SDKs とツールの共有`config`ファイルと`credentials`ファイルの場所の検索と変更
<a name="file-location"></a>

共有 AWS `config` ファイルと `credentials`ファイルは、 AWS SDKsとツールの設定情報を保持するプレーンテキストファイルです。ファイルは環境内にローカルに存在し、SDK コードまたはその環境で実行する AWS CLI コマンドによって自動的に使用されます。例えば、独自のコンピュータや Amazon Elastic Compute Cloud インスタンスで開発する場合などです。

SDK またはツールは実行時にこれらのファイルをチェックし、使用可能な設定をロードします。ファイルがまだ存在しない場合は、SDK またはツールによって基本ファイルが自動的に作成されます。

デフォルトでは、ファイルは `home` またはユーザーフォルダに配置された `.aws` という名前のフォルダにあります。


| オペレーティングシステム | ファイルのデフォルトの場所と名前 | 
| --- | --- | 
| Linux および macOS |  `~/.aws/config` `~/.aws/credentials`  | 
| Server  |  `%USERPROFILE%\.aws\config` `%USERPROFILE%\.aws\credentials`  | 

## ホームディレクトリ解決
<a name="homeDirRes"></a>

`~` は、次の場合にホームディレクトリの解決にのみ使用されます。
+ パスの開始
+ 直後に `/` またはプラットフォーム固有の区切り文字が続く場合。Windows では、`~/` と `~\` の両方がホームディレクトリに解決されます。

ホームディレクトリを決定するときに、次の変数がチェックされます。
+ （全プラットフォーム）`HOME` 環境変数
+ （Windows プラットフォーム）`USERPROFILE` 環境変数
+ (Windows プラットフォーム) `HOMEDRIVE` と `HOMEPATH` 環境変数の連結 (`$HOMEDRIVE$HOMEPATH`)
+ （SDK またはツールごとのオプション）SDK またはツール固有のホームパス解決関数または変数

可能な場合は、パスの先頭にユーザーのホームディレクトリが指定されている場合（例：`~username/`）、要求されたユーザー名のホームディレクトリ（例：`/home/username/.aws/config`）に解決されます。

## これらのファイルのデフォルトロケーションの変更
<a name="file-location-change"></a>

次のいずれかを使用して、これらのファイルが SDK またはツールによってどこからロードされるかを上書きできます。

### 環境変数を使用します。
<a name="file-location-change-envar"></a>

以下の環境変数を設定して、これらのファイルの場所または名前をデフォルト値からカスタム値に変更できます。
+ `config` ファイルの環境変数：**`AWS_CONFIG_FILE`**
+ `credentials` ファイルの環境変数：**`AWS_SHARED_CREDENTIALS_FILE`**

------
#### [ Linux/macOS ]

Linux または macOS で次の[[エクスポート]](https://linuxconfig.org/learning-linux-commands-export)コマンドを実行して、別の場所を指定できます。

```
$ export AWS_CONFIG_FILE=/some/file/path/on/the/system/config-file-name
$ export AWS_SHARED_CREDENTIALS_FILE=/some/other/file/path/on/the/system/credentials-file-name
```

------
#### [ Windows ]

Windows で次の [[setx]](https://docs.microsoft.com/windows-server/administration/windows-commands/setx) コマンドを実行して、別の場所を指定できます。

```
C:\> setx AWS_CONFIG_FILE c:\some\file\path\on\the\system\config-file-name
C:\> setx AWS_SHARED_CREDENTIALS_FILE c:\some\other\file\path\on\the\system\credentials-file-name
```

------

環境変数を使用したシステムの設定の詳細については、「[環境変数を使用して AWS SDKsとツールをグローバルに設定する](environment-variables.md)」を参照してください。

### JVM システムプロパティの使用
<a name="file-location-change-jvmSysProp"></a>

JVM で実行されている SDK for Kotlin および SDK for Java 2.x では、次の JVM システムプロパティを設定して、これらのファイルの場所または名前をデフォルトからカスタム値に変更できます。
+ `config` ファイルの JVM システムプロパティ: **`aws.configFile`**
+ `credentials` ファイルの環境変数：**`aws.sharedCredentialsFile`**

JVM システムプロパティを設定する方法については、「[JVM システムプロパティを設定する方法](jvm-system-properties.md#jvm-sys-props-set)」を参照してください。SDK for Java 1.x は、これらのシステムプロパティをサポートしていません。

# 環境変数を使用して AWS SDKsとツールをグローバルに設定する
<a name="environment-variables"></a>

環境変数は、 AWS SDKs とツールを使用するときに設定オプションと認証情報を指定する別の方法を提供します。環境変数はスクリプト処理や、名前付きプロファイルを一時的にデフォルトとして設定する場合に活用できます。ほとんどの SDK でサポートされている環境変数のリストについては、「[環境変数の一覧](settings-reference.md#EVarSettings)」を参照してください。

**オプションの優先順位**
+ 環境変数を使用して設定を指定すると、共有 AWS `config` ファイルと `credentials` ファイル内のプロファイルからロードされたすべての値が上書きされます。
+  AWS CLI コマンドラインで パラメータを使用して設定を指定すると、対応する環境変数または設定ファイルのプロファイルのいずれかの値が上書きされます。

## 環境変数の設定方法
<a name="envvars-set"></a>

次の例では、デフォルトのユーザーの環境変数を設定する方法を示します。

------
#### [ Linux, macOS, or Unix ]

```
$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
$ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
$ export AWS_SESSION_TOKEN=AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
$ export AWS_REGION=us-west-2
```

環境変数を設定すると、シェルセッションの終了時まで、または変数に別の値を設定するまで、使用する値が変更されます。変数をシェルのスタートアップスクリプトで設定することで、変数をこれからのセッションで永続的にすることができます。

------
#### [ Windows Command Prompt ]

```
C:\> setx AWS_ACCESS_KEY_ID AKIAIOSFODNN7EXAMPLE
C:\> setx AWS_SECRET_ACCESS_KEY wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
C:\> setx AWS_SESSION_TOKEN AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
C:\> setx AWS_REGION us-west-2
```

`[set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)` を使用して環境変数を設定すると、現在のコマンドプロンプトセッションの終了時まで、または変数を別の値に設定するまで、使用する値が変更されます。[https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx) を使用して環境変数を設定すると、現在のコマンドプロンプトセッションおよびコマンド実行後に作成するすべてのコマンドプロンプトセッションで使用する値が変更されます。これは、コマンド実行時にすでに実行されている他のコマンドシェルには影響を及ぼし***ません***。

------
#### [ PowerShell ]

```
PS C:\> $Env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
PS C:\> $Env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
PS C:\> $Env:AWS_SESSION_TOKEN="AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk"
PS C:\> $Env:AWS_REGION="us-west-2"
```

前の例に示すように PowerShell プロンプトで環境変数を設定した場合は、現在のセッションの期間だけ値が保存されます。PowerShell およびコマンドプロンプトセッション間で環境変数を永続的に設定するには、[**コントロールパネル**] の [**システム**] アプリケーションを使用して変数を保存します。または、変数を PowerShell プロファイルに追加すると、その変数を今後のすべての PowerShell セッションに設定できます。環境変数の保存やそれをセッション間で永続的に維持する詳細については、[「PowerShell documentation」](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_environment_variables)(PowerShell ドキュメント) を参照してください。

------

## サーバーレス環境変数設定
<a name="serverless"></a>

 開発にサーバーレスアーキテクチャを使用する場合、環境変数を設定するための他のオプションもあります。コンテナによっては、非クラウド環境と同様に、そのコンテナで実行されるコードに対して異なる方法を使用して環境変数を表示したりアクセスしたりすることができます。

たとえば、 を使用すると AWS Lambda、環境変数を直接設定できます。詳細については、「 *AWS Lambda デベロッパーガイド*」の[AWS Lambda 「環境変数の使用](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html)」を参照してください。

サーバーレスフレームワークでは、環境設定の下のプロバイダーキーの下の `serverless.yml` ファイルに SDK 環境変数を設定できることがよくあります。この `serverless.yml` ファイルについて詳しくは、「サーバーレスフレームワーク」ドキュメントの 「[一般関数設定](https://www.serverless.com/framework/docs/providers/aws/guide/serverless.yml#general-function-settings)」 を参照してください。

コンテナ環境変数の設定にどのメカニズムを使用するかにかかわらず、コンテナによって予約されているものもあります。たとえば、Lambdaの 「[定義済みランタイム環境変数](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime)」 で説明されているものなどです。環境変数の処理方法や制限の有無については、使用しているコンテナの公式ドキュメントを必ず確認してください。

# JVM システムプロパティを使用して AWS SDK for Java と をグローバルに設定する AWS SDK for Kotlin
<a name="jvm-system-properties"></a>

[JVM システムプロパティ](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html)は、 や などの JVM で実行される SDKs の設定オプション AWS SDK for Java と認証情報を指定する別の方法を提供します AWS SDK for Kotlin。SDK がサポートする JVM システムプロパティのリストについては、「[Settings reference](settings-reference.md#JVMSettings)」を参照してください。

**オプションの優先順位**
+ JVM システムプロパティを使用して設定を指定した場合、環境変数で見つかった値や共有 AWS `config` および `credentials` ファイル内のプロファイルからロードされた値は上書きされます。
+ 環境変数を使用して設定を指定した場合、共有 AWS `config` および `credentials` ファイル内のプロファイルからロードされた値は上書きされます。

## JVM システムプロパティを設定する方法
<a name="jvm-sys-props-set"></a>

さまざまな方法で JVM システムプロパティを設定できます。

### コマンドラインでの設定
<a name="jvm-sys-props-set-cl"></a>

`-D` スイッチを使用して `java` コマンドを呼び出すときに、コマンドラインに JVM システムプロパティを設定します。次のコマンドは、コード内の値を明示的に上書きしない限り、すべてのサービスクライアントに対して AWS リージョン をグローバルに設定します。

```
java -Daws.region=us-east-1 -jar <your_application.jar> <other_arguments>
```

複数の JVM システムプロパティを設定する必要がある場合は、`-D` スイッチを複数回指定します。

### 環境変数の使用
<a name="jvm-sys-props-set-evar"></a>

アプリケーションを実行するために JVM を呼び出すコマンドラインにアクセスできない場合は、`JAVA_TOOL_OPTIONS` 環境変数を使用してコマンドラインオプションを設定できます。このアプローチは、Java ランタイムで AWS Lambda 関数を実行したり、埋め込み JVM でコードを実行したりする状況で役立ちます。

次の例では、コード内の値を明示的に上書きしない限り、すべてのサービスクライアントに対して を AWS リージョン グローバルに設定します。

------
#### [ Linux, macOS, or Unix ]

```
$ export JAVA_TOOL_OPTIONS="-Daws.region=us-east-1"
```

環境変数を設定すると使用する値が変更され、その値はシェルセッションが終了するか、または変数に別の値が設定されるまで有効です。変数をシェルのスタートアップスクリプトで設定することで、変数をこれからのセッションで永続的にすることができます。

------
#### [ Windows Command Prompt ]

```
C:\> setx JAVA_TOOL_OPTIONS -Daws.region=us-east-1
```

`[set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)` を使用して環境変数を設定すると、現在のコマンドプロンプトセッションの終了時まで、または変数を別の値に設定するまで、使用する値が変更されます。[https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx) を使用して環境変数を設定すると、現在のコマンドプロンプトセッションおよびコマンド実行後に作成するすべてのコマンドプロンプトセッションで使用する値が変更されます。これは、コマンド実行時にすでに実行されている他のコマンドシェルには影響を及ぼし***ません***。

------

### 実行時
<a name="jvm-sys-props-set-runtime"></a>

次の例に示すように、`System.setProperty` メソッドを使用して実行時にコードで JVM システムプロパティを設定することもできます。

```
System.setProperty("aws.region", "us-east-1");
```

**重要**  
SDK サービスクライアントを初期化する*前に* JVM システムプロパティを設定してください。そうしないと、サービスクライアントが他の値を使用することがあります。