기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS SDK for PHP 버전 3용 코드로 서비스 클라이언트 구성
서비스 클라이언트를 외부에서 구성하는 대신 코드로 프로그래밍 방식으로 구성할 수 있습니다.
코드로 서비스 클라이언트를 구성하면 사용 가능한 여러 옵션을 세밀하게 제어할 수 있습니다. 외부에서 설정할 수 있는 대부분의 구성도 코드에서 설정할 수 있습니다.
코드의 기본 구성
연결 옵션 배열을 클라이언트의 생성자에 전달하여 코드로 서비스 클라이언트를 생성하고 구성할 수 있습니다. 다음 예제에서 연결 배열에는 클라이언트가 사용하는 "리전" 옵션만 포함됩니다.
require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException; //Create an S3Client $s3 = new S3Client([ 'region' => 'eu-south-2' ]);
선택적 ‘version’ 파라미터에 대한 정보는 구성 옵션 항목에서 확인할 수 있습니다.
보안 인증을 클라이언트에 명시적으로 제공하지 않았다는 점에 주의하세요. 이는 SDK가 기본 자격 증명 공급자 체인을 사용하여 자격 증명 정보를 찾기 때문입니다.
모든 일반 클라이언트 구성 옵션에 대해서는 AWS SDK for PHP 버전 3의 클라이언트 생성자 옵션에서 자세히 설명합니다. 클라이언트에 제공되는 옵션의 배열은 어떤 클라이언트를 생성하고 있는지에 따라 다를 수 있습니다. 이러한 사용자 지정 클라이언트 구성 옵션에 대해서는 각 클라이언트의 API 설명서에서 설명합니다.
Sdk
클래스 사용
Aws\Sdk
클래스는 클라이언트 팩토리 역할을 하며 여러 클라이언트 간의 공유 구성 옵션을 관리하는 데 사용됩니다. 특정 클라이언트 생성자에 제공할 수 있는 동일한 옵션을 Aws\Sdk
클래스에도 제공할 수 있습니다. 그러면 이러한 옵션은 각 클라이언트 생성자에 적용됩니다.
가져오기
require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException;
샘플 코드
// The same options that can be provided to a specific client constructor can also be supplied to the Aws\Sdk class. // Use the us-west-2 region and latest version of each client. $sharedConfig = [ 'region' => 'us-west-2' ]; // Create an SDK class used to share configuration across clients. $sdk = new Aws\Sdk($sharedConfig); // Create an Amazon S3 client using the shared configuration data. $client = $sdk->createS3();
모든 클라이언트 간에 공유되는 옵션은 루트 수준 키-값 페어에 배치됩니다. 서비스별 구성 데이터는 서비스의 네임스페이스와 동일한 키(예: “S3”, “DynamoDb” 등)가 있는 연결 배열로 제공될 수 있습니다.
$sdk = new Aws\Sdk([ 'region' => 'us-west-2', 'DynamoDb' => [ 'region' => 'eu-central-1' ] ]); // Creating an Amazon DynamoDb client will use the "eu-central-1" AWS Region. $client = $sdk->createDynamoDb();
서비스별 구성 값은 서비스별 값과 루트 수준 값의 결합입니다(즉, 서비스별 값은 루트 수준 값에 얕게 병합됨).
참고
애플리케이션에서 여러 클라이언트 인스턴스를 사용하는 경우 Sdk
클래스를 사용하여 클라이언트를 생성하는 것이 좋습니다. Sdk
클래스는 각 SDK 클라이언트에 동일한 HTTP 클라이언트를 자동으로 사용하여 다른 서비스에 대한 SDK 클라이언트가 비차단 HTTP 요청을 수행할 수 있도록 허용합니다. SDK 클라이언트가 동일한 HTTP 클라이언트를 사용하지 않으면 SDK에서 전송된 HTTP 요청이 서비스 간의 promise 오케스트레이션을 차단할 수 있습니다.