Konfigurasi untuk AWS SDK for PHP Versi 3 - AWS SDK for PHP

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Konfigurasi untuk AWS SDK for PHP Versi 3

Pilihan konstruktor klien dapat disediakan dalam konstruktor klien atau disediakan untuk kelas. Aws\Sdk Array opsi yang disediakan untuk jenis klien tertentu dapat bervariasi, berdasarkan klien mana yang Anda buat. Opsi konfigurasi klien kustom ini dijelaskan dalam dokumentasi API setiap klien.

Perhatikan bahwa beberapa opsi konfigurasi akan memeriksa dan menggunakan nilai default berdasarkan variabel lingkungan atau file AWS konfigurasi. Secara default, file konfigurasi yang diperiksa akan berada .aws/config di direktori home Anda, biasanya~/.aws/config. Namun, Anda dapat menggunakan variabel lingkungan AWS_CONFIG_FILE untuk mengatur lokasi file konfigurasi default Anda. Misalnya, ini mungkin berguna jika Anda membatasi akses file ke direktori tertentu dengan. open_basedir

Untuk informasi selengkapnya tentang lokasi dan pemformatan file bersama AWS config dan credentials file, lihat Konfigurasi dalam Panduan Referensi AWS SDK dan Alat.

Untuk detail tentang semua pengaturan konfigurasi global yang dapat Anda atur dalam file AWS konfigurasi atau sebagai variabel lingkungan, lihat Referensi pengaturan konfigurasi dan autentikasi di Panduan Referensi AWS SDK dan Alat.

Contoh berikut menunjukkan cara meneruskan opsi ke konstruktor klien Amazon S3.

use Aws\S3\S3Client; $options = [ 'region' => 'us-west-2', 'version' => '2006-03-01', 'signature_version' => 'v4' ]; $s3Client = new S3Client($options);

Lihat panduan penggunaan dasar untuk informasi lebih lanjut tentang membangun klien.

api_provider

Tipe

callable

PHP callable yang menerima argumen tipe, layanan, dan versi, dan mengembalikan array data konfigurasi yang sesuai. Nilai tipe dapat menjadi salah satu dariapi,waiter, ataupaginator.

Secara default, SDK menggunakan instance Aws\Api\FileSystemApiProvider yang memuat file API dari src/data folder SDK.

credentials

Tipe

array|Aws\CacheInterface|Aws\Credentials\CredentialsInterface|bool|callable

Lulus Aws\Credentials\CredentialsInterface objek untuk menggunakan instance kredensyal tertentu. Berikut ini menentukan bahwa penyedia kredensi IAM Identity Center harus digunakan. Penyedia ini juga dikenal sebagai penyedia kredensi SSO.

$credentials = Aws\Credentials\CredentialProvider::sso('profile default'); $s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'credentials' => $credentials ]);

Jika Anda menggunakan profil bernama, ganti nama profil Anda dengan 'default' pada contoh sebelumnya. Untuk mempelajari selengkapnya tentang menyiapkan profil bernama, lihat Berbagi config dan credentials file di Panduan Referensi AWS SDK dan Alat.

Jika Anda tidak menentukan penyedia kredensi yang akan digunakan, dan mengandalkan rantai penyedia kredensyal, pesan kesalahan yang dihasilkan dari autentikasi gagal biasanya bersifat generik. Ini dihasilkan dari penyedia terakhir dalam daftar sumber yang diperiksa untuk kredensyal yang valid, yang mungkin bukan penyedia yang Anda coba gunakan. Saat Anda menentukan penyedia kredensi mana yang akan digunakan, pesan kesalahan apa pun yang dihasilkan akan lebih bermanfaat dan relevan karena hanya dihasilkan dari penyedia itu. Untuk mempelajari lebih lanjut tentang rantai sumber yang diperiksa kredensialnya, lihat Rantai penyedia kredensyal di Panduan Referensi AWSSDK dan Alat.

Lulus false untuk menggunakan kredensyal null dan bukan menandatangani permintaan.

$s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'credentials' => false ]);

Lulus fungsi penyedia kredensyal yang dapat dipanggil untuk membuat kredensyal menggunakan fungsi.

use Aws\Credentials\CredentialProvider; // Only load credentials from environment variables $provider = CredentialProvider::env(); $s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'credentials' => $provider ]);

Teruskan kredensyal yang di-cache ke instance Aws\CacheInterface untuk menyimpan nilai yang dikembalikan oleh rantai penyedia default di beberapa proses.

use Aws\Credentials\CredentialProvider; use Aws\PsrCacheAdapter; use Symfony\Component\Cache\Adapter\FilesystemAdapter; $cache = new PsrCacheAdapter(new FilesystemAdapter); $provider = CredentialProvider::defaultProvider(); $cachedProvider = CredentialProvider::cache($provider, $cache); $s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'credentials' => $cachedProvider ]);

Anda dapat menemukan informasi lebih lanjut tentang memberikan kredensyal kepada klien di panduan Kredensyal untuk Versi 3. AWS SDK for PHP

catatan

Kredensyal dimuat dan divalidasi dengan malas saat digunakan.

debug

Tipe

bool|array

Output informasi debug tentang setiap transfer. Informasi debug berisi informasi tentang setiap perubahan status transaksi saat disiapkan dan dikirim melalui kawat. Juga termasuk dalam output debug adalah informasi tentang handler HTTP tertentu yang digunakan oleh klien (misalnya, output cURL debug).

Setel true untuk menampilkan informasi debug saat mengirim permintaan.

$s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'debug' => true ]); // Perform an operation to see the debug output $s3->listBuckets();

Atau, Anda dapat memberikan array asosiatif dengan kunci berikut.

logfn (dapat dipanggil)

Fungsi yang dipanggil dengan pesan log. Secara default, echo fungsi PHP digunakan.

stream_size (int)

Ketika ukuran aliran lebih besar dari angka ini, data aliran tidak dicatat. Setel 0 untuk tidak mencatat data aliran apa pun.

scrub_auth (bool)

Setel false untuk menonaktifkan penggosokan data autentikasi dari pesan yang dicatat (artinya ID kunci AWS akses dan tanda tangan Anda akan diteruskan ke). logfn

http (bool)

Setel false untuk menonaktifkan fitur “debug” dari penangan HTTP tingkat rendah (misalnya, keluaran cURL verbose).

auth_headers (array)

Setel ke pemetaan nilai kunci header yang ingin Anda ganti dipetakan ke nilai yang ingin Anda ganti. Nilai-nilai ini tidak digunakan kecuali scrub_auth diatur ketrue.

auth_strings (array)

Setel ke pemetaan kunci-nilai ekspresi reguler untuk dipetakan ke penggantinya. Nilai-nilai ini digunakan oleh scrubber data otentikasi jika scrub_auth diatur ke. true

$s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'debug' => [ 'logfn' => function ($msg) { echo $msg . "\n"; }, 'stream_size' => 0, 'scrub_auth' => true, 'http' => true, 'auth_headers' => [ 'X-My-Secret-Header' => '[REDACTED]', ], 'auth_strings' => [ '/SuperSecret=[A-Za-z0-9]{20}/i' => 'SuperSecret=[REDACTED]', ], ] ]); // Perform an operation to see the debug output $s3->listBuckets();
catatan

Opsi ini juga menampilkan informasi handler HTTP yang mendasari yang dihasilkan oleh opsi http debug. Output debug sangat berguna saat mendiagnosis masalah di. AWS SDK for PHP Harap berikan output debug untuk kasus kegagalan terisolasi saat membuka masalah pada SDK.

statistik

Tipe

bool|array

Mengikat statistik transfer ke kesalahan dan hasil yang dikembalikan oleh operasi SDK.

Setel true untuk mengumpulkan statistik transfer pada permintaan yang dikirim.

$s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'stats' => true ]); // Perform an operation $result = $s3->listBuckets(); // Inspect the stats $stats = $result['@metadata']['transferStats'];

Atau, Anda dapat memberikan array asosiatif dengan kunci berikut.

coba lagi (bool)

Setel true untuk mengaktifkan pelaporan percobaan ulang yang dicoba. Statistik coba lagi dikumpulkan secara default dan dikembalikan.

http (bool)

Setel true untuk mengaktifkan pengumpulan statistik dari adaptor HTTP tingkat rendah (misalnya, nilai yang dikembalikan). GuzzleHttpTransferStats Penangan HTTP harus mendukung opsi __on_transfer_stats agar ini memiliki efek. Statistik HTTP dikembalikan sebagai array array asosiatif yang diindeks; setiap array asosiatif berisi statistik transfer yang dikembalikan untuk permintaan oleh handler HTTP klien. Dinonaktifkan secara default.

Jika permintaan dicoba ulang, statistik transfer setiap permintaan dikembalikan, dengan $result['@metadata']['transferStats']['http'][0] berisi statistik untuk permintaan pertama, $result['@metadata']['transferStats']['http'][1] berisi statistik untuk permintaan kedua, dan seterusnya.

pengatur waktu (bool)

Setel true untuk mengaktifkan pengatur waktu perintah yang melaporkan total waktu jam dinding yang dihabiskan untuk operasi dalam hitungan detik. Dinonaktifkan secara default.

$s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'stats' => [ 'retries' => true, 'timer' => false, 'http' => true, ] ]); // Perform an operation $result = $s3->listBuckets(); // Inspect the HTTP transfer stats $stats = $result['@metadata']['transferStats']['http']; // Inspect the number of retries attempted $stats = $result['@metadata']['transferStats']['retries_attempted']; // Inspect the total backoff delay inserted between retries $stats = $result['@metadata']['transferStats']['total_retry_delay'];

titik akhir

Tipe

string

URI lengkap dari layanan web. Ini diperlukan untuk layanan, seperti AWS Elemental MediaConvert, yang menggunakan titik akhir khusus akun. Untuk layanan ini, minta titik akhir ini menggunakan describeEndpoints metode.

Ini hanya diperlukan saat menghubungkan ke titik akhir kustom (misalnya, versi lokal Amazon S3 atau Amazon DynamoDB Lokal).

Berikut adalah contoh menghubungkan ke Amazon DynamoDB Local:

$client = new Aws\DynamoDb\DynamoDbClient([ 'version' => '2012-08-10', 'region' => 'us-east-1', 'endpoint' => 'http://localhost:8000' ]);

Lihat AWSWilayah dan Titik Akhir untuk daftar AWS Wilayah dan titik akhir yang tersedia.

endpoint_provider

Tipe

Aws\EndpointV2\EndpointProviderV2|callable

Contoh opsional dari EndpointProvider V2 atau PHP callable yang menerima hash opsi, termasuk kunci “layanan” dan “wilayah”. Ini mengembalikan NULL atau hash data endpoint, yang kunci “endpoint” diperlukan.

Berikut adalah contoh cara membuat penyedia endpoint minimal.

$provider = function (array $params) { if ($params['service'] == 'foo') { return ['endpoint' => $params['region'] . '.example.com']; } // Return null when the provider cannot handle the parameters return null; });

endpoint_discovery

Tipe

array|Aws\CacheInterface|Aws\EndpointDiscovery\ConfigurationInterface|callable

Penemuan titik akhir mengidentifikasi dan menghubungkan ke titik akhir yang benar untuk API layanan yang mendukung penemuan titik akhir. Untuk layanan yang mendukung tetapi tidak memerlukan penemuan titik akhir, aktifkan endpoint_discovery selama pembuatan klien. Jika layanan tidak mendukung penemuan titik akhir, konfigurasi ini diabaikan.

Aws\EndpointDiscovery\ConfigurationInterface

Penyedia konfigurasi opsional yang memungkinkan koneksi otomatis ke titik akhir yang sesuai dari API layanan untuk operasi yang ditentukan oleh layanan.

Aws\EndpointDiscovery\ConfigurationObjek menerima dua opsi, termasuk nilai Boolean, “diaktifkan”, yang menunjukkan apakah penemuan titik akhir diaktifkan, dan bilangan bulat “cache_limit” yang menunjukkan jumlah maksimum kunci dalam cache titik akhir.

Untuk setiap klien yang dibuat, berikan Aws\EndpointDiscovery\Configuration objek untuk menggunakan konfigurasi khusus untuk penemuan titik akhir.

use Aws\EndpointDiscovery\Configuration; use Aws\S3\S3Client; $enabled = true; $cache_limit = 1000; $config = new Aws\EndpointDiscovery\Configuration ( $enabled, $cache_limit ); $s3 = new Aws\S3\S3Client([ 'region' => 'us-east-2', 'endpoint_discovery' => $config, ]);

Berikan instance Aws\CacheInterface untuk menyimpan nilai yang dikembalikan oleh penemuan titik akhir di beberapa proses.

use Aws\DoctrineCacheAdapter; use Aws\S3\S3Client; use Doctrine\Common\Cache\ApcuCache; $s3 = new S3Client([ 'region' => 'us-west-2', 'endpoint_discovery' => new DoctrineCacheAdapter(new ApcuCache), ]);

Lewati array ke penemuan titik akhir.

use Aws\S3\S3Client; $s3 = new S3Client([ 'region' => 'us-west-2', 'endpoint_discovery' => [ 'enabled' => true, 'cache_limit' => 1000 ], ]);

pengurus

Tipe

callable

Handler yang menerima objek perintah dan objek permintaan, dan yang mengembalikan promise (GuzzleHttp\Promise\PromiseInterface) yang dipenuhi dengan Aws\ResultInterface objek atau ditolak dengan. Aws\Exception\AwsException Handler tidak menerima handler berikutnya karena terminal dan diharapkan untuk memenuhi perintah. Jika tidak ada handler yang disediakan, handler Guzzle default digunakan.

Anda dapat menggunakan Aws\MockHandler untuk mengembalikan hasil yang diejek atau melempar pengecualian tiruan. Anda mengantrekan hasil atau pengecualian, dan MockHandler akan mendeantrekannya dalam urutan FIFO.

use Aws\Result; use Aws\MockHandler; use Aws\DynamoDb\DynamoDbClient; use Aws\CommandInterface; use Psr\Http\Message\RequestInterface; use Aws\Exception\AwsException; $mock = new MockHandler(); // Return a mocked result $mock->append(new Result(['foo' => 'bar'])); // You can provide a function to invoke; here we throw a mock exception $mock->append(function (CommandInterface $cmd, RequestInterface $req) { return new AwsException('Mock exception', $cmd); }); // Create a client with the mock handler $client = new DynamoDbClient([ 'region' => 'us-east-1', 'handler' => $mock ]); // Result object response will contain ['foo' => 'bar'] $result = $client->listTables(); // This will throw the exception that was enqueued $client->listTables();

http

Tipe

array

Setel ke array opsi HTTP yang diterapkan ke permintaan HTTP dan transfer yang dibuat oleh SDK.

SDK mendukung opsi konfigurasi berikut:

sertifikat

Tipe

string|array

Tentukan sertifikat sisi klien yang diformat PEM.

  • Tetapkan sebagai string untuk jalur ke hanya file sertifikat.

use Aws\S3\S3Client; $client = new S3Client([ 'region' => 'us-west-2', 'http' => ['cert' => '/path/to/cert.pem'] ]);
  • Tetapkan sebagai array yang berisi jalur dan kata sandi.

use Aws\S3\S3Client; $client = new S3Client([ 'region' => 'us-west-2', 'http' => [ 'cert' => ['/path/to/cert.pem', 'password'] ] ]);

connect_timeout

Float yang menjelaskan jumlah detik untuk menunggu saat mencoba terhubung ke server. Gunakan 0 untuk menunggu tanpa batas (perilaku default).

use Aws\DynamoDb\DynamoDbClient; // Timeout after attempting to connect for 5 seconds $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'connect_timeout' => 5 ] ]);

debug

Tipe

bool|resource

Menginstruksikan penangan HTTP yang mendasari untuk menampilkan informasi debug. Informasi debug yang disediakan oleh penangan HTTP yang berbeda akan bervariasi.

  • Lulus true untuk menulis output debug ke STDOUT.

  • Teruskan resource as yang dikembalikan oleh fopen untuk menulis output debug ke sumber daya aliran PHP tertentu.

decode_content

Tipe

bool

Menginstruksikan penangan HTTP yang mendasarinya untuk mengembang tubuh respons terkompresi. Saat tidak diaktifkan, badan respons terkompresi mungkin dipompa dengan a. GuzzleHttp\Psr7\InflateStream

catatan

Penguraian kode konten diaktifkan secara default di handler HTTP default SDK. Untuk alasan kompatibilitas mundur, default ini tidak dapat diubah. Jika Anda menyimpan file terkompresi di Amazon S3, kami sarankan Anda menonaktifkan decoding konten di tingkat klien S3.

use Aws\S3\S3Client; use GuzzleHttp\Psr7\InflateStream; $client = new S3Client([ 'region' => 'us-west-2', 'http' => ['decode_content' => false], ]); $result = $client->getObject([ 'Bucket' => 'my-bucket', 'Key' => 'massize_gzipped_file.tgz' ]); $compressedBody = $result['Body']; // This content is still gzipped $inflatedBody = new InflateStream($result['Body']); // This is now readable

delay

Tipe

int

Jumlah milidetik yang harus ditunda sebelum mengirim permintaan. Ini sering digunakan untuk menunda sebelum mencoba kembali permintaan.

mengharapkan

Tipe

bool|string

Opsi ini diteruskan ke handler HTTP yang mendasarinya. Secara default, header Expect: 100-Continue diatur ketika isi permintaan melebihi 1 MB. trueatau false mengaktifkan atau menonaktifkan header pada semua permintaan. Jika bilangan bulat digunakan, hanya permintaan dengan badan yang melebihi pengaturan ini yang akan menggunakan header. Ketika digunakan sebagai integer, jika ukuran tubuh tidak diketahui header Expect akan dikirim.

Awas

Menonaktifkan header Expect dapat mencegah layanan mengembalikan otentikasi atau kesalahan lainnya. Opsi ini harus dikonfigurasi dengan hati-hati.

kemajuan

Tipe

callable

Mendefinisikan fungsi untuk dipanggil ketika kemajuan transfer dibuat. Fungsi menerima argumen berikut:

  1. Jumlah total byte yang diharapkan akan diunduh.

  2. Jumlah byte yang diunduh sejauh ini.

  3. Jumlah byte yang diharapkan akan diunggah.

  4. Jumlah byte yang diunggah sejauh ini.

use Aws\S3\S3Client; $client = new S3Client([ 'region' => 'us-west-2' ]); // Apply the http option to a specific command using the "@http" // command parameter $result = $client->getObject([ 'Bucket' => 'my-bucket', 'Key' => 'large.mov', '@http' => [ 'progress' => function ($expectedDl, $dl, $expectedUl, $ul) { printf( "%s of %s downloaded, %s of %s uploaded.\n", $expectedDl, $dl, $expectedUl, $ul ); } ] ]);

proxy

Tipe

string|array

Anda dapat terhubung ke AWS layanan melalui proxy dengan menggunakan proxy opsi.

  • Berikan nilai string untuk terhubung ke proxy untuk semua jenis URI. Nilai string proxy dapat berisi skema, nama pengguna, dan kata sandi. Misalnya, "http://username:password@192.168.16.1:10".

  • Berikan array asosiatif pengaturan proxy di mana kuncinya adalah skema URI, dan nilainya adalah proxy untuk URI yang diberikan (yaitu, Anda dapat memberikan proxy yang berbeda untuk titik akhir “http” dan “https”).

use Aws\DynamoDb\DynamoDbClient; // Send requests through a single proxy $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'proxy' => 'http://192.168.16.1:10' ] ]); // Send requests through a different proxy per scheme $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'proxy' => [ 'http' => 'tcp://192.168.16.1:10', 'https' => 'tcp://192.168.16.1:11', ] ] ]);

Anda dapat menggunakan variabel HTTP_PROXY lingkungan untuk mengonfigurasi proxy khusus protokol “http”, dan variabel HTTPS_PROXY lingkungan untuk mengonfigurasi proxy spesifik “https”.

tenggelam

Tipe

resource|string|Psr\Http\Message\StreamInterface

sinkOpsi mengontrol tempat data respons operasi diunduh.

  • Berikan resource as return by fopen untuk mengunduh badan respons ke aliran PHP.

  • Berikan jalur ke file pada disk sebagai string nilai untuk mengunduh badan respons ke file tertentu pada disk.

  • Berikan a Psr\Http\Message\StreamInterface untuk mengunduh badan respons ke objek aliran PSR tertentu.

catatan

SDK mengunduh badan respons ke aliran temp PHP secara default. Ini berarti bahwa data tetap dalam memori sampai ukuran tubuh mencapai 2 MB, di mana data ditulis ke file sementara pada disk.

sinkron

Tipe

bool

synchronousOpsi menginformasikan penangan HTTP yang mendasari bahwa Anda bermaksud untuk memblokir hasilnya.

aliran

Tipe

bool

Setel true untuk memberi tahu penangan HTTP yang mendasarinya bahwa Anda ingin mengalirkan badan respons respons dari layanan web, daripada mengunduh semuanya di muka. Misalnya, opsi ini diandalkan di kelas pembungkus aliran Amazon S3 untuk memastikan bahwa data dialirkan.

batas waktu

Tipe

float

Sebuah float yang menjelaskan batas waktu permintaan dalam hitungan detik. Gunakan 0 untuk menunggu tanpa batas (perilaku default).

use Aws\DynamoDb\DynamoDbClient; // Timeout after 5 seconds $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'timeout' => 5 ] ]);

verifikasi

Tipe

bool|string

Anda dapat menyesuaikan perilaku verifikasi sertifikat SSL/TLS peer SDK menggunakan opsi. verify http

  • Setel true untuk mengaktifkan verifikasi sertifikat rekan SSL/TLS dan gunakan bundel CA default yang disediakan oleh sistem operasi.

  • Setel false untuk menonaktifkan verifikasi sertifikat rekan. (Ini tidak aman!)

  • Setel ke string untuk menyediakan jalur ke bundel sertifikat CA untuk mengaktifkan verifikasi menggunakan bundel CA kustom.

Jika bundel CA tidak dapat ditemukan untuk sistem Anda dan Anda menerima kesalahan, berikan jalur ke bundel CA ke SDK. Jika Anda tidak memerlukan bundel CA tertentu, Mozilla menyediakan bundel CA yang umum digunakan yang dapat Anda unduh di sini (ini dikelola oleh pengelola cURL). Setelah Anda memiliki bundel CA yang tersedia di disk, Anda dapat mengatur pengaturan openssl.cafile PHP .ini untuk menunjuk ke jalur ke file, memungkinkan Anda untuk menghilangkan opsi verify permintaan. Anda dapat menemukan lebih banyak detail tentang sertifikat SSL di situs web cURL.

use Aws\DynamoDb\DynamoDbClient; // Use a custom CA bundle $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'verify' => '/path/to/my/cert.pem' ] ]); // Disable SSL/TLS verification $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'verify' => false ] ]);

http_handler

Tipe

callable

http_handlerOpsi ini digunakan untuk mengintegrasikan SDK dengan klien HTTP lainnya. http_handlerOpsi adalah fungsi yang menerima Psr\Http\Message\RequestInterface objek dan array http opsi yang diterapkan pada perintah, dan mengembalikan GuzzleHttp\Promise\PromiseInterface objek yang dipenuhi dengan Psr\Http\Message\ResponseInterface objek atau ditolak dengan array data pengecualian berikut:

  • exception- (\Exception) pengecualian yang ditemui.

  • response- (Psr\Http\Message\ResponseInterface) tanggapan yang diterima (jika ada).

  • connection_error- (bool) diatur true untuk menandai kesalahan sebagai kesalahan koneksi. Menyetel nilai ini true juga memungkinkan SDK untuk mencoba kembali operasi secara otomatis, jika diperlukan.

SDK secara otomatis mengubah yang diberikan http_handler menjadi handler opsi normal dengan membungkus yang disediakan http_handler dengan objek. Aws\WrappedHttpHandler

Secara default, SDK menggunakan Guzzle sebagai handler HTTP-nya. Anda dapat menyediakan handler HTTP yang berbeda di sini, atau menyediakan klien Guzzle dengan opsi yang ditentukan khusus Anda sendiri.

Mengatur versi TLS

Salah satu kasus penggunaan adalah mengatur versi TLS yang digunakan oleh Guzzle dengan Curl, dengan asumsi Curl diinstal di lingkungan Anda. Perhatikan batasan versi Curl untuk versi TLS apa yang didukung. Secara default, versi terbaru digunakan. Jika versi TLS ditetapkan secara eksplisit, dan server jarak jauh tidak mendukung versi ini, itu akan menghasilkan kesalahan alih-alih menggunakan versi TLS sebelumnya.

Anda dapat menentukan versi TLS yang digunakan untuk operasi klien tertentu dengan mengatur opsi debug klien ke true dan memeriksa output koneksi SSL. Baris itu mungkin terlihat seperti: SSL connection using TLSv1.2

Contoh pengaturan TLS 1.2 dengan Guzzle 6:

use Aws\DynamoDb\DynamoDbClient; use Aws\Handler\GuzzleV6\GuzzleHandler; use GuzzleHttp\Client; $handler = new GuzzleHandler( new Client([ 'curl' => [ CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_2 ] ]) ); $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http_handler' => $handler ]);
catatan

http_handlerOpsi ini menggantikan opsi apa pun yang disediakanhandler.

profile

Tipe

string

Opsi “profil” menentukan profil mana yang akan digunakan saat kredensyal dibuat dari file AWS kredensyal di direktori HOME Anda (biasanya). ~/.aws/credentials Pengaturan ini mengesampingkan variabel AWS_PROFILE lingkungan.

catatan

Saat Anda menentukan opsi “profil”, "credentials" opsi diabaikan dan pengaturan terkait kredensyal dalam file AWS konfigurasi (biasanya~/.aws/config) diabaikan.

// Use the "production" profile from your credentials file $ec2 = new Aws\Ec2\Ec2Client([ 'version' => '2014-10-01', 'region' => 'us-west-2', 'profile' => 'production' ]);

Lihat Kredensyal untuk AWS SDK for PHP Versi 3 untuk informasi selengkapnya tentang mengonfigurasi kredensyal dan format file.ini.

region

Tipe

string

Diperlukan

true

AWSWilayah untuk terhubung ke. Lihat AWSWilayah dan Titik Akhir untuk daftar Wilayah yang tersedia.

// Set the Region to the EU (Frankfurt) Region $s3 = new Aws\S3\S3Client([ 'region' => 'eu-central-1', 'version' => '2006-03-01' ]);

mencoba lagi

Tipe

int|array|Aws\CacheInterface|Aws\Retry\ConfigurationInterface|callable

Default

int(3)

Mengkonfigurasi mode coba lagi dan jumlah maksimum percobaan ulang yang diizinkan untuk klien. Lulus 0 untuk menonaktifkan percobaan ulang.

Tiga mode coba lagi adalah:

  • legacy- implementasi coba lagi warisan default

  • standard- menambahkan sistem kuota coba lagi untuk mencegah percobaan ulang yang tidak mungkin berhasil

  • adaptive- dibangun pada mode standar, menambahkan pembatas tingkat sisi klien. Perhatikan mode ini dianggap eksperimental.

Konfigurasi untuk percobaan ulang terdiri dari mode dan upaya maksimal yang akan digunakan untuk setiap permintaan. Konfigurasi dapat diatur di beberapa lokasi yang berbeda, dalam urutan prioritas berikut.

Urutan Prioritas

Urutan prioritas untuk konfigurasi coba lagi adalah sebagai berikut (1 mengesampingkan 2-3, dll.):

  1. Opsi konfigurasi klien

  2. Variabel-variabel lingkungan

  3. AWSFile konfigurasi bersama

Variabel lingkungan

  • AWS_RETRY_MODE- diatur kelegacy,standard, atauadaptive.

  • AWS_MAX_ATTEMPTS- diatur ke nilai integer untuk upaya maksimal per permintaan

Kunci file konfigurasi bersama

  • retry_mode- diatur kelegacy,standard, atauadaptive.

  • max_attempts- diatur ke nilai integer untuk upaya maksimal per permintaan

Konfigurasi klien

Contoh berikut menonaktifkan percobaan ulang untuk klien Amazon DynamoDB.

// Disable retries by setting "retries" to 0 $client = new Aws\DynamoDb\DynamoDbClient([ 'version' => '2012-08-10', 'region' => 'us-west-2', 'retries' => 0 ]);

Contoh berikut melewati integer, yang akan default ke legacy mode dengan diteruskan dalam jumlah percobaan ulang

// Disable retries by setting "retries" to 0 $client = new Aws\DynamoDb\DynamoDbClient([ 'version' => '2012-08-10', 'region' => 'us-west-2', 'retries' => 6 ]);
Aws\Retry\ConfigurationObjek menerima dua parameter, mode coba lagi

dan bilangan bulat untuk upaya maksimum per permintaan. Contoh ini diteruskan dalam sebuah

Aws\Retry\Configurationobjek untuk konfigurasi coba lagi.

use Aws\EndpointDiscovery\Configuration; use Aws\S3\S3Client; $enabled = true; $cache_limit = 1000; $config = new Aws\Retry\Configuration('adaptive', 10); $s3 = new Aws\S3\S3Client([ 'region' => 'us-east-2', 'retries' => $config, ]);

Contoh ini masuk dalam array untuk konfigurasi coba lagi.

use Aws\S3\S3Client; $s3 = new S3Client([ 'region' => 'us-west-2', 'retries' => [ 'mode' => 'standard', 'max_attempts' => 7 ], ]);

Contoh ini meneruskan instance Aws\CacheInterface untuk menyimpan nilai yang dikembalikan oleh penyedia konfigurasi coba lagi default.

use Aws\DoctrineCacheAdapter; use Aws\S3\S3Client; use Doctrine\Common\Cache\ApcuCache; $s3 = new S3Client([ 'region' => 'us-west-2', 'endpoint_discovery' => new DoctrineCacheAdapter(new ApcuCache), ]);

skema

Tipe

string

Default

string(5) "https"

Skema URI untuk digunakan saat menghubungkan. SDK menggunakan titik akhir “https” (yaitu, menggunakan koneksi SSL/TLS) secara default. Anda dapat mencoba menghubungkan ke layanan melalui titik akhir “http” yang tidak terenkripsi dengan menyetel scheme ke “http”.

$s3 = new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'us-west-2', 'scheme' => 'http' ]);

Lihat AWSWilayah dan Titik Akhir untuk daftar titik akhir dan apakah layanan mendukung skema. http

layanan

Tipe

string

Diperlukan

true

Nama layanan yang akan digunakan. Nilai ini diberikan secara default saat menggunakan klien yang disediakan oleh SDK (yaitu,Aws\S3\S3Client). Opsi ini berguna saat menguji layanan yang belum dipublikasikan di SDK tetapi Anda telah tersedia di disk.

signature_provider

Tipe

callable

Callable yang menerima nama versi tanda tangan (misalnya,v4), nama layanan, dan AWS Wilayah dan menampilkan Aws\Signature\SignatureInterface objek atau NULL jika penyedia dapat membuat tanda tangan untuk parameter yang diberikan. Penyedia ini digunakan untuk membuat penandatangan yang digunakan oleh klien.

Ada berbagai fungsi yang disediakan oleh SDK di Aws\Signature\SignatureProvider kelas yang dapat digunakan untuk membuat penyedia tanda tangan yang disesuaikan.

signature_version

Tipe

string

String yang mewakili versi tanda tangan khusus untuk digunakan dengan layanan (misalnya,v4, dll.). Versi tanda tangan per operasi MUNGKIN mengganti versi tanda tangan yang diminta ini, jika diperlukan.

Contoh berikut menunjukkan cara mengonfigurasi klien Amazon S3 untuk menggunakan tanda tangan versi 4:

// Set a preferred signature version $s3 = new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'us-west-2', 'signature_version' => 'v4' ]);
catatan

Yang signature_provider digunakan oleh klien Anda HARUS dapat membuat signature_version opsi yang Anda berikan. Default yang signature_provider digunakan oleh SDK dapat membuat objek tanda tangan untuk versi tanda tangan “v4" dan “anonim”.

ua_append

Tipe

string|string[]

Default

[]

Sebuah string atau array string yang ditambahkan ke string user-agent diteruskan ke handler HTTP.

gunakan_aws_shared_config_files

Tipe

bool|array

Default

bool(true)

Setel ke false untuk menonaktifkan pemeriksaan file konfigurasi bersama di '~/.aws/config' dan '~/.aws/credentials'. Ini akan mengganti variabel lingkungan AWS_CONFIG_FILE.

validasi

Tipe

bool|array

Default

bool(true)

Setel false untuk menonaktifkan validasi parameter sisi klien. Anda mungkin menemukan bahwa mematikan validasi akan sedikit meningkatkan kinerja klien, tetapi perbedaannya dapat diabaikan.

// Disable client-side validation $s3 = new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'eu-west-1', 'validate' => false ]);

Setel ke array asosiatif opsi validasi untuk mengaktifkan kendala validasi tertentu:

  • required- Validasi bahwa parameter yang diperlukan ada (aktif secara default).

  • min- Validasi panjang minimum nilai (aktif secara default).

  • max- Validasi panjang maksimum suatu nilai.

  • pattern- Validasi bahwa nilai cocok dengan ekspresi reguler.

// Validate only that required values are present $s3 = new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'eu-west-1', 'validate' => ['required' => true] ]);

versi

Tipe

string

Diperlukan

false

Opsi ini menentukan versi layanan web yang akan digunakan (misalnya,2006-03-01).

Dimulai dengan versi 3.277.10 SDK, opsi “versi” tidak diperlukan. Jika Anda tidak menentukan opsi “versi”, SDK menggunakan versi terbaru klien layanan.

Dua situasi memerlukan parameter “versi” saat Anda membuat klien layanan.

  • Anda menggunakan versi PHP SDK lebih awal dari 3.277.10.

  • Anda menggunakan versi 3.277.10 atau yang lebih baru dan ingin menggunakan versi selain 'terbaru' untuk klien layanan.

Misalnya, cuplikan berikut menggunakan SDK versi 3.279.7, tetapi bukan versi terbaru untuk versi. Ec2Client

$ec2Client = new \Aws\Ec2\Ec2Client([ 'version' => '2015-10-01', 'region' => 'us-west-2' ]);

Menentukan batasan versi memastikan bahwa kode Anda tidak akan terpengaruh oleh perubahan yang melanggar yang dibuat pada layanan.

Daftar versi API yang tersedia dapat ditemukan di halaman dokumentasi API setiap klien. Jika Anda tidak dapat memuat versi API tertentu, Anda mungkin perlu memperbarui salinan SDK.