Konfiguration für die AWS SDK for PHP Version 3 - AWS SDK for PHP

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Konfiguration für die AWS SDK for PHP Version 3

Client-Konstruktor-Optionen können in einem Client-Konstruktor oder der Aws\SdkKlasse bereitgestellt werden. Die Anzahl der Optionen, die einem bestimmten Clienttyp zur Verfügung stehen, kann variieren, je nachdem, welchen Client Sie anlegen. Diese benutzerdefinierten Client-Konfigurationsoptionen werden in der APIDokumentation der einzelnen Clients beschrieben.

Beachten Sie, dass einige Konfigurationsoptionen Standardwerte überprüfen und verwenden, die auf Umgebungsvariablen oder einer AWS Konfigurationsdatei basieren. Standardmäßig befindet sich die zu überprüfende Konfigurationsdatei .aws/config in Ihrem Stammverzeichnis, in der Regel ~/.aws/config. Sie können jedoch die Umgebungsvariable AWS_CONFIG_FILE verwenden, um den Standardspeicherort der Konfigurationsdatei festzulegen. Dies kann beispielsweise nützlich sein, wenn Sie den Dateizugriff auf bestimmte Verzeichnisse mit open_basedir einschränken.

Weitere Informationen zum Speicherort und zur Formatierung der gemeinsam genutzten AWS config credentials Dateien finden Sie unter Konfiguration im Referenzhandbuch für Tools AWS SDKs und Tools.

Einzelheiten zu allen globalen Konfigurationseinstellungen, die Sie in den AWS Konfigurationsdateien oder als Umgebungsvariablen festlegen können, finden Sie in der Referenz zu den Einstellungen für Konfiguration AWS SDKs und Authentifizierung im Referenzhandbuch für Tools.

Das folgende Beispiel zeigt, wie Optionen an einen Amazon S3 S3-Client-Konstruktor übergeben werden.

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

Weitere Informationen zum Erstellen von Clients finden Sie im grundlegenden Benutzerhandbuch.

api_provider

Typ

callable

Ein PHP Callable, das ein Typ-, Service- und Versionsargument akzeptiert und ein Array mit entsprechenden Konfigurationsdaten zurückgibt. Der Wert für den Typ kann api, waiter oder paginator sein.

Standardmäßig SDK verwendet der eine Instanz vonAws\Api\FileSystemApiProvider, die API Dateien aus dem src/data Ordner von lädt. SDK

Anmeldedaten

Typ

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

Übergeben Sie ein Aws\Credentials\CredentialsInterface-Objekt, um eine spezifische Anmeldeinformationen-Instance zu verwenden. Im Folgenden wird angegeben, dass der IAM Identity Center-Anmeldeinformationsanbieter verwendet werden sollte. Dieser Anbieter wird auch als SSO Anmeldeinformationsanbieter bezeichnet.

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

Wenn Sie ein benanntes Profil verwenden, ersetzen Sie 'default' im vorherigen Beispiel durch den Namen Ihres Profils. Weitere Informationen zum Einrichten benannter Profile finden Sie unter Geteilte Profile config und credentials Dateien im AWS SDKsReferenzhandbuch zu Tools.

Wenn Sie keinen zu verwendenden Anmeldeinformationsanbieter angeben und sich auf die Anmeldeinformationsanbieterkette verlassen, ist die Fehlermeldung aufgrund einer fehlgeschlagenen Authentifizierung in der Regel generisch. Sie wird anhand des letzten Anbieters in der Liste der Quellen generiert, die auf gültige Anmeldeinformationen überprüft werden. Dabei handelt es sich möglicherweise nicht um den Anbieter, den Sie verwenden möchten. Wenn Sie angeben, welcher Anmeldeinformationsanbieter verwendet werden soll, ist jede daraus resultierende Fehlermeldung hilfreicher und relevanter, da sie nur von diesem Anbieter stammt. Weitere Informationen zur Kette von Quellen, die auf Anmeldeinformationen überprüft wurden, finden Sie unter Credential Provider Chain im AWS SDKsTools-Referenzhandbuch.

Übergeben Sie false, um keine Anmeldeinformationen zu verwenden und Anfragen nicht zu signieren.

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

Übergeben Sie eine aufrufbare Anmeldeinformationsanbieter-Funktion, um Anmeldeinformationen unter Verwendung einer Funktion zu erstellen.

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

Übergeben Sie in einer Instance von Aws\CacheInterface zwischengespeicherte Anmeldeinformationen, um die Werte von der Standard-Anbieterkette über mehrere Prozesse zwischenzuspeichern.

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 ]);

Weitere Informationen zur Bereitstellung von Anmeldeinformationen für einen Client finden Sie im Handbuch Anmeldeinformationen für AWS SDK for PHP Version 3.

Anmerkung

Anmeldeinformationen werden langsam geladen und geprüft, wenn sie verwendet werden.

debug

Typ

bool|array

Gibt Debugging-Informationen zu jeder Übertragung aus. Debugging-Informationen enthalten Informationen zu jeder Statusänderung einer Transaktion, wie sie erstellt und gesendet wird. In der Debug-Ausgabe sind auch Informationen über den spezifischen HTTP Handler enthalten, der von einem Client verwendet wird (z. B. die URL Debug-C-Ausgabe).

Auf true setzen, um Debugging-Informationen anzeigen, wenn Anforderungen gesendet werden.

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

Alternativ können Sie eine assoziatives Array mit den folgenden Schlüsseln bereitstellen.

logfn (callable)

Funktion, die mit Protokolleinträgen aufgerufen wird. Standardmäßig wird die PHP echo Funktion verwendet.

stream_size (int)

Wenn die Größe eines Datenstroms größer als diese Zahl ist, werden die Stream-Daten nicht protokolliert. Auf 0 setzen, um nicht alle Stream-Daten zu protokollieren.

scrub_auth (bool)

Stellen Sie diese Option einfalse, um das Löschen von Authentifizierungsdaten aus den protokollierten Nachrichten zu deaktivieren (was bedeutet, dass Ihre AWS Zugriffsschlüssel-ID und Signatur an die logfn weitergegeben werden).

http (bool)

Wird auf gesetztfalse, um die Debug-Funktion von HTTP Handlern auf niedrigerer Ebene (z. B. ausführliche C-Ausgabe) zu deaktivieren. URL

auth_headers (array)

Auf eine Schlüssel-Wert-Zuweisung von Headern setzen, die Sie ersetzten wollen, abgebildet auf den Wert, durch den Sie sie ersetzen möchten. Diese Werte werden nicht verwendet, es sei denn scrub_auth ist auf true gesetzt.

auth_strings (array)

Auf eine Schlüssel-Wert-Zuordnung regulärer Ausdrücke setzen, um eine Abbildung auf ihre Ersatzwerte vorzunehmen. Diese Werte werden vom Authentifizierungsdaten-Scrubber verwendet, wenn scrub_auth auf true gesetzt ist.

$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();
Anmerkung

Diese Option gibt auch die zugrunde liegenden HTTP Handler-Informationen aus, die von der Debug-Option erzeugt wurden. http Die Debugging-Ausgabe ist extrem hilfreich beim Diagnostizieren von Problemen in AWS SDK for PHP. Bitte geben Sie die Debug-Ausgabe für einen isolierten Fehlerfall an, wenn Probleme auf dem geöffnet werden. SDK

stats

Typ

bool|array

Bindet Übertragungsstatistiken an Fehler und Ergebnisse, die von Vorgängen zurückgegeben wurdenSDK.

Auf true setzen, um Übertragungsstatistiken für gesendete Anforderungen zu erfassen.

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

Alternativ können Sie eine assoziatives Array mit den folgenden Schlüsseln bereitstellen.

retries (bool)

Auf true setzen, um Berichte zu versuchten Wiederholungen zu aktivieren. Wiederholungsstatistiken werden standardmäßig erfasst und zurückgegeben.

http (bool)

Wird auf gesetzt, true um das Sammeln von Statistiken von HTTP Adaptern auf niedrigerer Ebene zu ermöglichen (z. B. zurückgegebene Werte). GuzzleHttpTransferStats HTTPHandler müssen die Option __on_transfer_stats unterstützen, damit dies wirksam wird. HTTPStatistiken werden als indiziertes Array assoziativer Arrays zurückgegeben; jedes assoziative Array enthält die Übertragungsstatistiken, die vom Handler des Clients für eine Anfrage zurückgegeben wurden. HTTP Standardmäßig deaktiviert.

Falls eine Anforderung wiederholt wurde, werden die Übertragungsstatistiken für jede Anforderung zurückgegeben, wobei $result['@metadata']['transferStats']['http'][0] die Statistiken für die erste Anforderung, $result['@metadata']['transferStats']['http'][1] die Statistiken für die zweite Anforderung und so weiter enthält.

timer (bool)

Auf true setzen, um einen Befehlstimer zu aktivieren, der die gesamte für eine Operation aufgewendete Zeit in Sekunden anzeigt. Standardmäßig deaktiviert.

$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'];

Endpunkt

Typ

string

Der gesamte WebserviceURI. Dies ist beispielsweise für Dienste erforderlich AWS Elemental MediaConvert, die kontospezifische Endpunkte verwenden. Für diese Dienste fordern Sie diesen Endpunkt mit der Methode an. describeEndpoints

Dies ist nur erforderlich, wenn Sie eine Verbindung zu einem benutzerdefinierten Endpunkt herstellen (z. B. eine lokale Version von Amazon S3 oder Amazon DynamoDB Local).

Hier ist ein Beispiel für eine Verbindung zu Amazon DynamoDB Local:

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

Eine Liste der verfügbaren AWS Regionen und Endpunkte finden Sie unter AWS Regionen und Endpunkte.

endpoint_provider

Typ

Aws\EndpointV2\EndpointProviderV2|callable

Eine optionale Instanz von EndpointProvider V2 oder PHP Callable, die einen Hash von Optionen akzeptiert, einschließlich eines „Service“ - und „Region“ -Schlüssels. Sie gibt NULL oder einen Hash für Endpunktdaten zurück, von denen der „Endpunktschlüssel“ benötigt wird.

Hier folgt ein Beispiel dafür, wie ein minimaler Endpunktanbieter eingerichtet wird.

$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

Typ

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

Endpoint Discovery identifiziert den richtigen Endpunkt für einen Dienst, der Endpoint Discovery unterstütztAPI, und stellt eine Verbindung zu diesem her. Aktivieren Sie während der Client-Erstellung endpoint_discovery für Services, die die Endpunkterkennung zwar unterstützen, aber nicht erfordern. Wenn ein Service die Endpunkterkennung nicht unterstützt, wird diese Konfiguration ignoriert.

Aws\EndpointDiscovery\ConfigurationInterface

Ein optionaler Konfigurationsanbieter, der die automatische Verbindung zum entsprechenden Endpunkt eines Dienstes API für vom Dienst angegebene Operationen ermöglicht.

Das Objekt Aws\EndpointDiscovery\Configuration akzeptiert zwei Optionen, darunter ein Boolescher Wert („enabled“), der angibt, ob die Endpunkterkennung aktiviert ist, und eine Ganzzahl („cache_limit“), die die maximale Anzahl von Schlüsseln im Endpunkt-Cache angibt.

Für jeden erstellten Client übergeben Sie ein Objekt Aws\EndpointDiscovery\Configuration, um eine bestimmte Konfiguration für die Endpunkterstellung zu nutzen.

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, ]);

Übergeben Sie eine Instance von Aws\CacheInterface, um die Werte von der Endpunkterkennung über mehrere Prozesse im Cache zu speichern.

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), ]);

Übergeben Sie der Endpunkterkennung ein Array.

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

handler

Typ

callable

Ein Handler, der ein Befehlsobjekt und ein Anfrageobjekt akzeptiert und ein Versprechen zurückgibt (GuzzleHttp\Promise\PromiseInterface), das mit einem -Objekt erfüllt oder mit einer Aws\ResultInterface abgelehnt wird.Aws\Exception\AwsException Ein Handler akzeptiert keinen weiteren Handler, da er ein Terminal ist und einen Befehl ausführen soll. Wenn kein Handler bereitgestellt wird, wird eine Standard-Guzzle-Handler verwendet.

Du kannst den Aws\MockHandler benutzen, um modellhafte Ergebnisse zurückzugeben oder modellhafte Ausnahmen aufzuwerfen. Sie stellen Ergebnisse oder Ausnahmen in die Warteschlange, und sie MockHandler werden sie der Reihe nach aus der Warteschlange entfernen. 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

Typ

array

Legt eine Reihe von HTTP Optionen fest, die auf HTTP Anfragen und Übertragungen angewendet werden, die von der erstellt wurden. SDK

Das SDK unterstützt die folgenden Konfigurationsoptionen:

cert

Typ

string|array

Geben Sie das PEM formatierte clientseitige Zertifikat an.

  • Als Zeichenfolge für den Pfad nur zur Zertifikatdatei festlegen.

use Aws\S3\S3Client; $client = new S3Client([ 'region' => 'us-west-2', 'http' => ['cert' => '/path/to/cert.pem'] ]);
  • Legen Sie dies als Array fest, das Pfad und Passwort enthält.

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

connect_timeout

Ein Fließkommawert, der die Anzahl der Sekunden angibt, die man warten muss, während man versucht, eine Verbindung zu einem Server herzustellen. Verwenden Sie 0 für unbestimmtes Warten (das Standardverhalten).

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

debug

Typ

bool|resource

Weist den zugrunde liegenden HTTP Handler an, Debug-Informationen auszugeben. Die von den verschiedenen HTTP Handlern bereitgestellten Debug-Informationen variieren.

  • Übergabetrue, in die die Debug-Ausgabe geschrieben werden soll. STDOUT

  • Übergibt a, resource wie es von zurückgegeben wurdefopen, um die Debug-Ausgabe in eine bestimmte PHP Stream-Ressource zu schreiben.

decode_content

Typ

bool

Weist den zugrunde liegenden HTTP Handler an, den Hauptteil der komprimierten Antworten aufzublasen. Wenn dies nicht aktiviert ist, werden komprimierte Antwortrümpfe möglicherweise mit einem GuzzleHttp\Psr7\InflateStream erweitert.

Anmerkung

Die Inhaltsdekodierung ist im Standard-Handler von standardmäßig aktiviert. SDK HTTP Aus Gründen der Abwärtskompatibilität kann diese Voreinstellung nicht geändert werden. Wenn Sie komprimierte Dateien in Amazon S3 speichern, empfehlen wir, die Inhaltsdekodierung auf S3-Client-Ebene zu deaktivieren.

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

Verzögerung

Typ

int

Die Anzahl der Millisekunden für die Verzögerung vor dem Senden der Anfrage. Dies wird oft verwendet, um eine Anfrage zu verzögern, bevor sie erneut versucht wird.

expect

Typ

bool|string

Diese Option wird an den zugrunde liegenden HTTP Handler weitergegeben. Standardmäßig werden Kopfzeilen mit „Expect: 100 Continue“ festgelegt, wenn der Textteil der Anforderung 1 MB überschreitet. true oder false aktiviert oder deaktiviert die Kopfzeile auf allen Anforderungen. Wenn eine Ganzzahl verwendet wird, verwenden nur Anforderungen diese Kopfzeile, deren Textteil diese Einstellung überschreitet. Bei Verwendung als Ganzzahl wird die expect-Kopfzeile mitgesendet, wenn die Textgröße nicht bekannt ist.

Warnung

Die Deaktivierung der expect-Kopfzeile kann Fehler hervorrufen, z. B. kann es sein, dass der Service keine Authentifizierung mehr zurückgibt. Diese sollte mit Vorsicht konfiguriert werden.

progress

Typ

callable

Definiert eine Funktion, die aufgerufen wird, wenn Übertragungsfortschritt gemacht wird. Die Funktion akzeptiert die folgenden Argumente:

  1. Die Gesamtanzahl der Bytes, die voraussichtlich heruntergeladen werden.

  2. Die Anzahl der Bytes, die bisher heruntergeladen wurden.

  3. Die Gesamtanzahl der Bytes, die voraussichtlich hochgeladen werden.

  4. Die Anzahl der Bytes, die bisher hochgeladen wurden.

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' => 'amzn-s3-demo-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

Typ

string|array

Mithilfe der proxy Option können Sie über einen Proxy eine Verbindung zu einem AWS Dienst herstellen.

  • Geben Sie einen Zeichenfolgenwert an, um eine Verbindung zu einem Proxy für alle Typen von herzustellenURIs. Der Proxy-Zeichenfolgenwert kann ein Schema, einen Benutzernamen und ein Passwort enthalten. Beispiel, "http://username:password@192.168.16.1:10".

  • Geben Sie ein assoziatives Array von Proxyeinstellungen anURI, wobei der Schlüssel das Schema von und der Wert der Proxy für den angegebenen Wert ist URI (d. h. Sie können verschiedene Proxys für die Endpunkte „http“ und „https“ angeben).

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', ] ] ]);

Sie können die HTTP_PROXY-Umgebungsvariable verwenden, sodass ein „http“-Protokoll-spezifischer Proxy konfiguriert wird, und die HTTPS_PROXY-Umgebungsvariable, sodass ein „https“-spezifischer Proxy konfiguriert wird.

sink

Typ

resource|string|Psr\Http\Message\StreamInterface

Die sink-Option steuert, wohin die Antwortdaten einer Operation heruntergeladen werden.

  • Geben Sie a anresource, wie zurückgegeben vonfopen, um den Antworttext in einen Stream herunterzuladen. PHP

  • Geben Sie den Pfad zu einer Datei auf der Festplatte als string-Wert an, um den Antwortrumpf in eine bestimmte Datei auf der Festplatte herunterzuladen.

  • Geben Sie a Psr\Http\Message\StreamInterface an, um den Antworttext in ein bestimmtes PSR Stream-Objekt herunterzuladen.

Anmerkung

Der SDK lädt den Antworttext standardmäßig in einen PHP temporären Stream herunter. Das bedeutet, dass die Daten im Speicher bleiben, bis die Größe des Rumpfs 2 MB erreicht. Zu diesem Zeitpunkt werden die Daten in eine temporäre Datei auf der Festplatte geschrieben.

synchronous

Typ

bool

Die synchronous Option informiert den zugrunde liegenden HTTP Handler darüber, dass Sie beabsichtigen, das Ergebnis zu blockieren.

stream

Typ

bool

Wird auf gesetzt, true um dem zugrunde liegenden HTTP Handler mitzuteilen, dass Sie den Antworttext einer Antwort vom Webservice streamen möchten, anstatt alles im Voraus herunterzuladen. Diese Option wird beispielsweise in der Amazon S3 S3-Stream-Wrapper-Klasse verwendet, um sicherzustellen, dass die Daten gestreamt werden.

timeout

Typ

float

Eine Fließkommazahl, die das Timeout der Anfrage in Sekunden beschreibt. Verwenden Sie 0 für unbestimmtes Warten (das Standardverhalten).

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

verify

Typ

bool|string

Sie können das Verhalten bei der SSL TLS Peer-/Zertifikatsverifizierung SDK mithilfe der verify http Option anpassen.

  • Stellen Sie diese true Option ein, um die Überprüfung von SSL TLS /peer-Zertifikaten zu aktivieren und das vom Betriebssystem bereitgestellte Standard-CA-Paket zu verwenden.

  • Auf false setzen, um die Peer-Zertifikatsverifizierung zu deaktivieren. (Das ist nicht sicher!)

  • Auf eine Zeichenfolge setzen, um den Pfad zu einem CA-Zertifikat-Bundle bereitzustellen, um die Verifizierung mit einem benutzerdefinierten CA-Bundle zu ermöglichen.

Wenn das CA-Bundle für Ihr System nicht gefunden werden kann und Sie eine Fehlermeldung erhalten, geben Sie den Pfad zu einem CA-Bundle anSDK. Falls Sie kein bestimmtes CA-Bundle benötigen, stellt Mozilla ein häufig verwendetes CA-Bundle zur Verfügung, das Sie hier herunterladen können (dieses wird vom Maintainer von c verwaltetURL). Sobald Sie ein CA-Bundle auf der Festplatte verfügbar haben, können Sie die openssl.cafile PHP .ini-Einstellung so einstellen, dass sie auf den Pfad zur Datei verweist, sodass Sie die Anforderungsoption weglassen können. verify Weitere Informationen zu SSL Zertifikaten finden Sie auf der URLC-Website.

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

Typ

callable

Die http_handler Option wird verwendet, um sie SDK mit anderen HTTP Clients zu integrieren. Eine http_handler-Option ist eine Funktion, die ein Psr\Http\Message\RequestInterface-Objekt akzeptiert, und ein Array mit http-Optionen, die auf den Befehl angewendet werden, und die ein GuzzleHttp\Promise\PromiseInterface-Objekt zurückgibt, das mit einem Psr\Http\Message\ResponseInterface-Objekt erfüllt oder mit einem Array mit den folgenden Ausnahmedaten abgelehnt wird:

  • exception – (\Exception) die Ausnahme, die festgestellt wurde.

  • response – (Psr\Http\Message\ResponseInterface) die (gegebenenfalls) erhaltene Antwort.

  • connection_error – (bool) gleich true, um den Fehler als Verbindungsfehler zu kennzeichnen. Wenn Sie diesen Wert auf setzenSDK, kann der Vorgang bei Bedarf true auch automatisch wiederholt werden.

Das konvertiert die angegebene Option SDK automatisch http_handler in eine normale handler Option, indem sie das Bereitgestellte http_handler mit einem Aws\WrappedHttpHandler Objekt umschließt.

Standardmäßig SDK verwendet der Guzzle als seinen HTTP Handler. Sie können hier einen anderen HTTP Handler angeben oder einem Guzzle-Client Ihre eigenen benutzerdefinierten Optionen zur Verfügung stellen.

Version einstellen TLS

Ein Anwendungsfall besteht darin, die von Guzzle verwendete TLS Version mit Curl festzulegen, vorausgesetzt, Curl ist in Ihrer Umgebung installiert. Beachten Sie die Curl-Versionsbeschränkungen für die Version von, die unterstützt wird. TLS Standardmäßig wird die neueste Version verwendet. Wenn die TLS Version explizit festgelegt ist und der Remoteserver diese Version nicht unterstützt, wird ein Fehler ausgegeben, anstatt eine frühere TLS Version zu verwenden.

Sie können die TLS Version ermitteln, die für einen bestimmten Client-Vorgang verwendet wird, indem Sie die debug Client-Option auf true setzen und die SSL Verbindungsausgabe untersuchen. Diese Zeile könnte etwa so aussehen: SSL connection using TLSv1.2

Beispieleinstellung TLS 1.2 mit 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 ]);
Anmerkung

Die http_handler-Option ersetzt alle angegebenen handler-Optionen.

Profil

Typ

string

Die Option „Profil“ gibt an, welches Profil verwendet werden soll, wenn Anmeldeinformationen aus der AWS Anmeldeinformationsdatei in Ihrem HOME Verzeichnis erstellt werden (normalerweise~/.aws/credentials). Diese Einstellung überschreibt die AWS_PROFILE-Umgebungsvariable.

Anmerkung

Wenn Sie die Option „Profil“ angeben, wird die "credentials" Option ignoriert und die Einstellungen für Anmeldeinformationen in der AWS Konfigurationsdatei werden (normalerweise~/.aws/config) ignoriert.

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

Weitere Informationen zur Konfiguration von Anmeldeinformationen und zum .ini-Dateiformat finden Sie unter Anmeldeinformationen für AWS SDK for PHP Version 3.

Region

Typ

string

Erforderlich

true

AWS Region, zu der eine Verbindung hergestellt werden soll. Eine Liste der verfügbaren AWS Regionen finden Sie unter Regionen und Endpunkte.

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

retries

Typ

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

Standard

int(3)

Konfiguriert den Wiederholungsmodus und die maximal zulässige Anzahl von Wiederholungen für einen Client. Übergeben Sie 0, um Wiederholungen zu deaktivieren.

Die drei Wiederholungsmodi sind:

  • legacy- die standardmäßige Legacy-Wiederholungsimplementierung

  • standard- fügt ein Quotensystem für Wiederholungsversuche hinzu, um Wiederholungsversuche zu verhindern, bei denen es unwahrscheinlich ist, dass sie erfolgreich sind

  • adaptive – baut auf dem Standardmodus auf und fügt eine clientseitige Ratenbegrenzung hinzu. Beachten Sie, dass dieser Modus als experimentell betrachtet wird.

Die Konfiguration für Wiederholungen besteht aus dem Modus und den maximal zulässigen Versuchen für die einzelnen Anforderungen. Die Konfiguration kann an mehreren verschiedenen Orten in der folgenden Rangfolge festgelegt werden.

Rangfolge

Die Rangfolge für die Wiederholungskonfiguration lautet wie folgt (1 überschreibt 2-3 usw.):

  1. Client-Konfigurationsoption

  2. Umgebungsvariablen

  3. AWS Gemeinsam genutzte Konfigurationsdatei

Umgebungsvariablen

  • AWS_RETRY_MODE – festgelegt auf legacy, standard oder adaptive

  • AWS_MAX_ATTEMPTS – festgelegt auf einen ganzzahligen Wert für die maximal zulässigen Versuche pro Anforderung

Schlüssel für Datei mit gemeinsam verwendeter Konfiguration

  • retry_mode – festgelegt auf legacy, standard oder adaptive

  • max_attempts – festgelegt auf einen ganzzahligen Wert für die maximal zulässigen Versuche pro Anforderung

Client-Konfiguration

Das folgende Beispiel deaktiviert Wiederholungen für den Amazon DynamoDB-Client.

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

Im folgenden Beispiel wird ein ganzzahliger Wert übergeben, der standardmäßig den legacy-Modus mit der übergebenen Anzahl von Wiederholungen aufweist

// Disable retries by setting "retries" to 0 $client = new Aws\DynamoDb\DynamoDbClient([ 'version' => '2012-08-10', 'region' => 'us-west-2', 'retries' => 6 ]);
Das Objekt Aws\Retry\Configuration akzeptiert zwei Parameter, den Wiederholungsmodus

und einen ganze Wert für die maximal zulässigen Versuche pro Anforderung. In diesem Beispiel wird ein

Aws\Retry\Configuration-Objekt für die Wiederholungskonfiguration übergeben.

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, ]);

In diesem Beispiel wird ein Array für die Wiederholungskonfiguration übergeben.

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

In diesem Beispiel wird eine Instance von Aws\CacheInterface übergeben, um die vom Standardanbieter für Wiederholungskonfigurationen zurückgegebenen Werte zwischenzuspeichern.

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), ]);

scheme

Typ

string

Standard

string(5) "https"

URISchema, das beim Herstellen einer Verbindung verwendet werden soll. Das SDK verwendet standardmäßig „https“ -Endpunkte (d. h. verwendet SSL TLS /-Verbindungen). Sie können versuchen, eine Verbindung zu einem Service über einen unverschlüsselten „http“-Endpunkt herzustellen, indem Sie scheme auf „http“ setzen.

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

Unter AWS Regionen und Endpunkte finden Sie eine Liste der Endpunkte und ob ein Dienst das Schema unterstützt. http

Service nicht zulässig

Typ

string

Erforderlich

true

Name des zu verwendenden Service. Dieser Wert wird standardmäßig bereitgestellt, wenn ein von SDK (d. h.,Aws\S3\S3Client) bereitgestellter Client verwendet wird. Diese Option ist nützlich, wenn Sie einen Service testen, der noch nicht in der veröffentlicht wurde, der SDK aber auf der Festplatte verfügbar ist.

signature_provider

Typ

callable

Ein Callable, das einen Signaturversionsnamen (z. B.v4), einen Dienstnamen und eine AWS Region akzeptiert und ein Aws\Signature\SignatureInterface Objekt zurückgibt oder NULL ob der Anbieter in der Lage ist, einen Unterzeichner für die angegebenen Parameter zu erstellen. Dieser Anbieter wird verwendet, um vom Client verwendete Signaturgeber zu erstellen.

In der SDK Aws\Signature\SignatureProvider Klasse werden verschiedene Funktionen bereitgestellt, mit denen benutzerdefinierte Signaturanbieter erstellt werden können.

signature_version

Typ

string

Eine Zeichenfolge, die eine benutzerdefinierte Signaturversion darstellt, die für einen Service verwendet wird (z. B. v4 usw.). Je nach Vorgang MAY überschreibt die Signaturversion diese angeforderte Signaturversion, falls erforderlich.

Die folgenden Beispiele zeigen, wie ein Amazon S3 S3-Client für die Verwendung der Signaturversion 4 konfiguriert wird:

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

Sie signature_provider werden von Ihrem Kunden MUST verwendet, um die von Ihnen signature_version bereitgestellte Option zu erstellen. Die Standardeinstellung, die von der signature_provider verwendet wird, SDK kann Signaturobjekte für „v4“ und „anonyme“ Signaturversionen erstellen.

ua_append

Typ

string|string[]

Standard

[]

Eine Zeichenfolge oder ein Array von Zeichenketten, die zu der an den HTTP Handler übergebenen User-Agent-Zeichenfolge hinzugefügt werden.

use_aws_shared_config_files

Typ

bool|array

Standard

bool(true)

Auf false setzen, um die Suche nach einer gemeinsam genutzten Konfigurationsdatei in '~/ zu deaktivieren. aws/config’ and ‘~/.aws/credentials'. Dadurch wird die FILE Umgebungsvariable AWS_CONFIG _ überschrieben.

validieren

Typ

bool|array

Standard

bool(true)

Auf false setzen, um die clientseitige Parametervalidierung zu deaktivieren. Sie werden vielleicht feststellen, dass die Deaktivierung der Validierung die Leistung des Clients etwas verbessert, aber der Unterschied ist vernachlässigbar.

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

Auf ein assoziatives Array von Validierungsoptionen setzen, um spezifische Validierungsbedingungen zu aktivieren:

  • required – Validieren, ob die erforderlichen Parameter vorhanden sind (standardmäßig aktiviert).

  • min – Validieren der Mindestlänge eines Werts (standardmäßig aktiviert).

  • max – Validieren der maximalen Länge eines Werts.

  • pattern – Validieren, ob der Wert mit einem regulären Ausdruck übereinstimmt.

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

version

Typ

string

Erforderlich

false

Diese Option gibt die Version des Webdienstes an, der verwendet werden soll (z. B.2006-03-01).

Ab Version 3.277.10 von ist die SDK Option „Version“ nicht erforderlich. Wenn Sie die Option „Version“ nicht angeben, SDK verwendet der die neueste Version des Service-Clients.

In zwei Situationen ist ein „Version“ -Parameter erforderlich, wenn Sie einen Service-Client erstellen.

  • Sie verwenden eine PHP SDK ältere Version als 3.277.10.

  • Sie verwenden Version 3.277.10 oder höher und möchten eine andere Version als die „neueste“ für einen Service-Client verwenden.

Das folgende Snippet verwendet beispielsweise Version 3.279.7 vonSDK, aber nicht die neueste Version für. Ec2Client

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

Die Angabe einer Versionsbeschränkung stellt sicher, dass Ihr Code nicht durch eine Unterbrechung des Service beeinträchtigt wird.

Eine Liste der verfügbaren API Versionen finden Sie auf der Dokumentationsseite der einzelnen Kunden. API Wenn Sie eine bestimmte API Version nicht laden können, müssen Sie möglicherweise Ihre Kopie von aktualisierenSDK.