翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
サービス固有のエンドポイント
注記
設定ページのレイアウトの理解、または以下の AWS SDKs「」を参照してくださいこのガイドの設定ページについて。
サービス固有のエンドポイント設定により、API リクエストに任意のエンドポイントを使用するオプションが得られ、この選択は持続します。これらの設定により、ローカルエンドポイント、VPC エンドポイント、およびサードパーティのローカル AWS 開発環境を柔軟にサポートできます。テスト環境と本番環境には異なるエンドポイントを使用できます。エンドポイント URL は個別の AWS のサービスに指定できます。
この機能を設定するには、以下のように使用します。
endpoint_url- 共有 AWSconfigファイル設定AWS_ENDPOINT_URL- 環境変数aws.endpointUrl- JVM システムプロパティ: Java/Kotlin のみ-
プロファイル内で直接指定するか、環境変数として指定した場合、この設定はすべてのサービスリクエストに使用されるエンドポイントを指定します。このエンドポイントは、設定されているサービス固有のエンドポイントによって上書きされます。
共有ファイルの
servicesセクション AWSconfig内でこの設定を使用して、特定のサービスのカスタムエンドポイントを設定することもできます。services内のサブセクションで使用するすべてのサービス識別子キーのリストについては、「サービス固有のエンドポイントの識別子」を参照してください。デフォルト値:
none有効な値: エンドポイントのスキームとホストを含む URL。URL は、必要に応じて 1 つ以上のパスセグメントを含むパスコンポーネントを含めることができます。
AWS_ENDPOINT_URL_<SERVICE>環境変数aws.endpointUrl<ServiceName>- JVM システムプロパティ: Java/Kotlin のみ-
AWS_ENDPOINT_URL_<SERVICE>は識別子<SERVICE>であり AWS のサービス 、特定のサービスのカスタムエンドポイントを設定します。サービス固有の環境変数のリストについては、「サービス固有のエンドポイントの識別子」を参照してください。このサービス固有のエンドポイントは、
AWS_ENDPOINT_URLに設定されているグローバルエンドポイントよりも優先されます。デフォルト値:
none有効な値: エンドポイントのスキームとホストを含む URL。URL は、必要に応じて 1 つ以上のパスセグメントを含むパスコンポーネントを含めることができます。
ignore_configured_endpoint_urls- 共有 AWSconfigファイル設定AWS_IGNORE_CONFIGURED_ENDPOINT_URLS- 環境変数aws.ignoreConfiguredEndpointUrls- JVM システムプロパティ: Java/Kotlin のみ-
この設定は、すべてのカスタムエンドポイント設定を無視するために使用されます。
コードまたはサービスクライアント自体に設定されている明示的なエンドポイントは、この設定に関係なく使用されることに注意してください。たとえば、 AWS CLI コマンドに
--endpoint-urlコマンドラインパラメータを含めたり、エンドポイント URL をクライアントコンストラクタに渡したりすると、常に有効になります。デフォルト値:
false有効な値:
-
true— SDK またはツールは、エンドポイント URL を設定するためのconfig共有ファイルや環境変数からカスタム設定オプションを読み取ることはありません。 -
false— SDK またはツールは、config共有ファイルまたは環境変数からユーザーが提供したエンドポイントをすべて使用します。
-
環境変数を使用したエンドポイントの設定
すべてのサービスのリクエストをカスタムエンドポイント URL にルーティングするには、 AWS_ENDPOINT_URL グローバル環境変数を設定します。
export AWS_ENDPOINT_URL=http://localhost:4567
特定の のリクエストをカスタムエンドポイント URL AWS のサービス にルーティングするには、 AWS_ENDPOINT_URL_<SERVICE>環境変数を使用します。 の Amazon DynamoDB は serviceIdですDynamoDBAWS_ENDPOINT_URL_DYNAMODB です。このエンドポイントは、このサービスのために AWS_ENDPOINT_URL に設定されているグローバルエンドポイントよりも優先されます。
export AWS_ENDPOINT_URL_DYNAMODB=http://localhost:5678
別の例として、 には serviceIdの AWS Elastic Beanstalk がありますElastic BeanstalkserviceIdすることで、API モデルの に基づいています。このサービスにエンドポイントを設定するための、対応する環境変数は AWS_ENDPOINT_URL_ELASTIC_BEANSTALK です。サービス固有の環境変数のリストについては、「サービス固有のエンドポイントの識別子」を参照してください。
export AWS_ENDPOINT_URL_ELASTIC_BEANSTALK=http://localhost:5567
config 共有ファイルを使用してエンドポイントを設定します
config 共有ファイルでは、 endpoint_url がさまざまな場所でさまざまな機能に使用されます。
-
profile内でendpoint_urlを直接指定すると、そのエンドポイントがグローバルエンドポイントになります。 -
servicesセクション内のサービス ID キーの下にendpoint_urlをネストすると、そのエンドポイントはそのサービスに対して行われたリクエストにのみ適用されます。共有configファイル内のservicesセクションの定義について詳しくは、「設定ファイルの形式」を参照してください。
次の例では、services 定義を使用して Amazon S3 に使用されることとなるサービス固有のエンドポイント URL と、他のすべてのサービスに使用されることとなるカスタムグローバルエンドポイントを設定します。
[profiledev-s3-specific-and-global] endpoint_url =http://localhost:1234services =s3-specific[servicess3-specific] s3 = endpoint_url =https://play.min.io:9000
1 つのプロファイルで複数のサービスのエンドポイントを設定できます。この例では、同じプロファイルで Amazon S3 と AWS Elastic Beanstalk のサービス固有のエンドポイント URLs を設定する方法を示します。 には serviceIdの AWS Elastic Beanstalk がありますElastic BeanstalkserviceIdることで、API モデルの に基づいています。したがって、サービス ID キーは elastic_beanstalk になり、このサービスの設定は elastic_beanstalk = の行から開始されます。services セクションで使用するすべてのサービス識別子キーのリストについては、「サービス固有のエンドポイントの識別子」を参照してください。
[servicestesting-s3-and-eb] s3 = endpoint_url =http://localhost:4567elastic_beanstalk = endpoint_url =http://localhost:8000[profiledev] services =testing-s3-and-eb
サービス設定セクションは複数のプロファイルで使用できます。たとえば、2つのプロファイルが同じ定義 services を使用し、他のプロファイルプロパティを変更することができます。
[servicestesting-s3] s3 = endpoint_url =https://localhost:4567[profiletesting-json] output = json services =testing-s3[profiletesting-text] output = text services =testing-s3
ロールベースの認証情報を使用してプロファイル内のエンドポイントを設定します
プロファイルに IAM Assume Role 機能の source_profile パラメータによって設定されたロールベースの認証情報がある場合、SDK は指定されたプロファイルのサービス設定のみを使用します。ロールチェーンされたプロファイルは使用されません。例えば、次の共有 config ファイルを使用します。
[profileA] credential_source =Ec2InstanceMetadataendpoint_url =https://profile-a-endpoint.aws/[profileB] source_profile =Arole_arn =arn:aws:iam::123456789012:role/roleBservices =profileB[servicesprofileB] ec2 = endpoint_url =https://profile-b-ec2-endpoint.aws
プロファイル B を使用してコード内で Amazon EC2 を呼び出すと、エンドポイントは https://profile-b-ec2-endpoint.aws として解決されます。コードが他のサービスにリクエストを送信した場合、エンドポイントの解決はカスタムロジックには従いません。エンドポイントはプロファイル A で定義されたグローバルエンドポイントには解決されません。グローバルエンドポイントを B プロファイルに対して有効にするには、プロファイル B 内で直接 endpoint_url を設定する必要があります。source_profile 設定の詳細については、ロール認証情報プロバイダーを引き受けます を参照してください。
設定の優先順位
この機能の設定は同時に使用できますが、1 つのサービスにつき 1 つの値が優先されます。特定の に対して行われた API コールでは AWS のサービス、次の順序を使用して値を選択します。
-
コードまたはサービスクライアント自体に設定されている明示的な設定は、他の設定よりも優先されます。
-
の場合 AWS CLI、これは
--endpoint-urlコマンドラインパラメータによって提供される値です。SDK の場合、明示的な割り当ては、 AWS のサービス クライアントまたは設定オブジェクトをインスタンス化するときに設定したパラメータの形式になります。
-
-
サービス固有の環境変数 (
AWS_ENDPOINT_URL_DYNAMODBなど) によって提供される値。 -
AWS_ENDPOINT_URLグローバルエンドポイント環境変数によって提供される値。 -
endpoint_url設定によって得られる値は、config共有ファイルのservicesセクション内のサービス ID キーの下にネストされます。 -
共有
configファイルのprofile内で直接指定されたendpoint_url設定によって得られる値。 -
それぞれの のデフォルトのエンドポイント URL AWS のサービス が最後に使用されます。
AWS SDKsとツールによるサポート
以下の SDK は、このトピックで説明する機能と設定をサポートします。部分的な例外があれば、すべて記載されています。JVM システムプロパティ設定は、 AWS SDK for Java と AWS SDK for Kotlin でのみサポートされます。
| SDK | サポート | 注意または詳細情報 |
|---|---|---|
| AWS CLI v2 | はい | |
| SDK for C++ | はい | |
| SDK for Go V2 (1.x) |
はい | |
| SDK for Go 1.x (V1) | いいえ | |
| SDK for Java 2.x | はい | |
| SDK for Java 1.x | いいえ | |
| SDK for JavaScript 3.x | はい | |
| SDK for JavaScript 2.x | いいえ | |
| SDK for Kotlin | はい | |
| SDK for .NET 4.x | はい | |
| SDK for .NET 3.x | はい | |
| SDK for PHP 3.x | はい | |
| SDK for Python (Boto3) |
はい | |
| SDK for Ruby 3.x | はい | |
| SDK for Rust | はい | |
| SDK for Swift | はい | |
| PowerShell V5 用のツール | はい | |
| PowerShell V4 のツール | はい |