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.
Verwenden der clientseitigen Auswertung – unterstützt von AWS AppConfig
Wichtig
Hinweis zum Ende des Supports: Am 16. Oktober 2025 AWS wird der Support für Evidently eingestellt. CloudWatch Nach dem 16. Oktober 2025 werden Sie nicht mehr auf die Ressourcen der Evidenty-Konsole oder von Eviently zugreifen können.
Sie können die clientseitige Evaluierung — powered by AWS AppConfig (clientseitige Evaluierung) in einem Projekt verwenden, sodass Ihre Anwendung Benutzersitzungen lokal Varianten zuweisen kann, anstatt Varianten zuzuweisen, indem Sie den Vorgang aufrufen. EvaluateFeature Das mindert die Latenz- und Verfügbarkeitsrisiken, die mit einem API-Aufruf einhergehen.
Um die clientseitige Auswertung zu verwenden, fügen Sie die AWS AppConfig Lambda-Erweiterung als Ebene zu Ihren Lambda-Funktionen hinzu und konfigurieren Sie die Umgebungsvariablen. Die clientseitige Auswertung wird als Nebenprozess auf dem lokalen Host ausgeführt. Anschließend können Sie die Operationen und gegen aufrufen. EvaluationFeaturePutProjectEventlocalhost
Der clientseitige Auswertungsprozess behandelt die Variantenzuweisung, das Caching und die Datensynchronisierung. Weitere Informationen zu finden Sie AWS AppConfig unter So AWS AppConfig funktioniert es.
Bei der Integration mit AWS AppConfig geben Sie eine AWS AppConfig Anwendungs-ID und eine AWS AppConfig Umgebungs-ID für Evidently an. Sie können dieselbe Anwendungs-ID und Umgebungs-ID in allen Evidently-Projekten verwenden.
Wenn Sie ein Projekt mit aktivierter clientseitiger Evaluierung erstellen, erstellt Evidently ein AWS AppConfig Konfigurationsprofil für dieses Projekt. Das Konfigurationsprofil unterscheidet sich für jedes Projekt.
Zugriffskontrolle für clientseitige Auswertung
Die clientseitige Auswertung von Evidently verwendet einen anderen Zugriffskontrollmechanismus als der Rest von Evidently. Wir empfehlen Ihnen dringend, das zu beachten, damit Sie die richtigen Sicherheitsmaßnahmen implementieren können.
Mit Evidently können Sie IAM-Richtlinien erstellen, die Aktionen begrenzen, die ein Benutzer mit individuellen Ressourcen durchführen kann. Sie können beispielsweise eine Benutzerrolle erstellen, die es einem Benutzer verbietet, diese Aktion auszuführen. EvaluateFeature Weitere Informationen zu den Evidently-Aktionen, die mit IAM-Richtlinien gesteuert werden können, finden Sie unter Von Amazon CloudWatch Evidently definierte Aktionen.
Das clientseitige Auswertungsmodell ermöglicht lokale Auswertungen von Evidently-Funktionen, die Projektmetadaten verwenden. Ein Benutzer eines Projekts mit aktivierter clientseitiger Evaluierung kann die EvaluateFeatureAPI für einen lokalen Host-Endpunkt aufrufen, und dieser API-Aufruf erreicht Evidenly nicht und wird auch nicht durch die IAM-Richtlinien des Evidenly-Service authentifiziert. Dieser Aufruf ist auch dann erfolgreich, wenn der Benutzer nicht über die IAM-Berechtigung verfügt, die Aktion zu verwenden. EvaluateFeature Ein Benutzer benötigt jedoch weiterhin die PutProjectEventsErlaubnis, dass der Agent die Evaluierungsereignisse oder benutzerdefinierten Ereignisse zwischenspeichert und Daten asynchron nach Eviently auslagert.
Zusätzlich muss ein Benutzer die Berechtigung evidently:ExportProjectAsConfiguration
haben, um ein Projekt erstellen zu können, das eine clientseitige Auswertung verwendet. Auf diese Weise können Sie den Zugriff auf EvaluateFeatureAktionen kontrollieren, die während der clientseitigen Auswertung aufgerufen werden.
Wenn Sie nicht vorsichtig sind, kann das Sicherheitsmodell der clientseitigen Auswertung die Richtlinien untergraben, die Sie für den Rest von Evidently festgelegt haben. Ein Benutzer mit der entsprechenden evidently:ExportProjectAsConfiguration
Berechtigung kann ein Projekt mit aktivierter clientseitiger Evaluierung erstellen und dann die EvaluateFeatureAktion für die clientseitige Bewertung mit diesem Projekt verwenden, auch wenn ihm die Aktion in einer IAM-Richtlinie ausdrücklich verweigert wurde. EvaluateFeature
Erste Schritte mit Lambda
Evidently unterstützt derzeit die clientseitige Auswertung durch die Verwendung einer AWS Lambda -Umgebung. Entscheiden Sie zunächst, welche AWS AppConfig Anwendung und Umgebung Sie verwenden möchten. Wählen Sie eine vorhandene Anwendung und Umgebung aus oder erstellen Sie neue.
Die folgenden AWS AppConfig AWS CLI Beispielbefehle erstellen eine Anwendung und eine Umgebung.
aws appconfig create-application --name
YOUR_APP_NAME
aws appconfig create-environment --application-id
YOUR_APP_ID
--nameYOUR_ENVIRONMENT_NAME
Erstellen Sie als Nächstes mithilfe dieser AWS AppConfig Ressourcen ein Evidently-Projekt. Weitere Informationen finden Sie unter Erstellen eines neuen Projekts.
Die clientseitige Auswertung wird in Lambda durch die Verwendung einer Lambda-Ebene unterstützt. Dies ist eine öffentliche Ebene, die Teil einer öffentlichen AWS AppConfig
Erweiterung istAWS-AppConfig-Extension
, die vom AWS AppConfig Service erstellt wurde. Weitere Informationen zu Lambda-Ebenen finden Sie unter Ebene.
Um die clientseitige Auswertung zu verwenden, müssen Sie diese Ebene zu Ihrer Lambda-Funktion hinzufügen sowie Berechtigungen und die Umgebungsvariablen konfigurieren.
So fügen Sie Ihrer Lambda-Funktion die Lambda-Ebene für die clientseitige Auswertung in Evidently hinzu und konfigurieren sie:
Erstellen Sie eine Lambda-Funktion, wenn das noch nicht geschehen ist.
Fügen Sie die clientseitige Auswertungsebene zu Ihrer Funktion hinzu. Sie können entweder seinen ARN angeben oder ihn aus der AWS Layer-Liste auswählen, falls Sie dies noch nicht getan haben. Weitere Informationen finden Sie unter Konfiguration von Funktionen für die Verwendung von Layern und Verfügbare Versionen der AWS AppConfig Lambda-Erweiterung.
Erstellen Sie eine IAM-Richtlinie EvidentlyAppConfigCachingAgentPolicymit dem folgenden Inhalt und fügen Sie sie der Ausführungsrolle der Funktion hinzu. Weitere Informationen finden Sie unter Lambda-Ausführungsrolle.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "appconfig:GetLatestConfiguration", "appconfig:StartConfigurationSession", "evidently:PutProjectEvents" ], "Resource": "*" } ] }
Fügen Sie die erforderliche Umgebungsvariable
AWS_APPCONFIG_EXTENSION_EVIDENTLY_CONFIGURATIONS
zu Ihrer Lambda-Funktion hinzu. Diese Umgebungsvariable spezifiziert die Zuordnung zwischen dem Evidencly-Projekt und den AWS AppConfig Ressourcen.Wenn Sie diese Funktion für ein Evidently-Projekt verwenden, setzen Sie den Wert der Umgebungsvariablen auf:
applications/
APP_ID
/environments/ENVIRONMENT_ID
/configurations/PROJECT_NAME
Wenn Sie diese Funktion für mehrere Evidently-Projekte verwenden, trennen Sie die Werte durch ein Komma, wie im folgenden Beispiel gezeigt:
applications/
APP_ID_1
/environments/ENVIRONMENT_ID_1
/configurations/PROJECT_NAME_1
, applications/APP_ID_2
/environments/ENVIRONMENT_ID_2
/configurations/PROJECT_NAME_2
(Optional) Legen Sie andere Umgebungsvariablen fest. Weitere Informationen finden Sie unter Konfiguration der AWS AppConfig Lambda-Erweiterung.
In Ihrer Anwendung erhalten Sie Evidently-Auswertungen lokal, indem Sie
EvaluateFeature
anlocalhost
senden.Python-Beispiel:
import boto3 from botocore.config import Config def lambda_handler(event, context): local_client = boto3.client( 'evidently', endpoint_url="http://localhost:2772", config=Config(inject_host_prefix=False) ) response = local_client.evaluate_feature( project=event['project'], feature=event['feature'], entityId=event['entityId'] ) print(response)
Node.js-Beispiel:
const AWS = require('aws-sdk'); const evidently = new AWS.Evidently({ region: "us-west-2", endpoint: "http://localhost:2772", hostPrefixEnabled: false }); exports.handler = async (event) => { const evaluation = await evidently.evaluateFeature({ project: 'John_ETCProject_Aug2022', feature: 'Feature_IceCreamFlavors', entityId: 'John' }).promise() console.log(evaluation) const response = { statusCode: 200, body: evaluation, }; return response; };
Kotlin-Beispiel:
String localhostEndpoint = "http://localhost:2772/" public AmazonCloudWatchEvidentlyClient getEvidentlyLocalClient() { return AmazonCloudWatchEvidentlyClientBuilder.standard() .withEndpointConfiguration(AwsClientBuilder.EndpointConfiguration(localhostEndpoint, region)) .withClientConfiguration(ClientConfiguration().withDisableHostPrefixInjection(true)) .withCredentials(credentialsProvider) .build(); } AmazonCloudWatchEvidentlyClient evidently = getEvidentlyLocalClient(); // EvaluateFeature via local client. EvaluateFeatureRequest evaluateFeatureRequest = new EvaluateFeatureRequest().builder() .withProject(${YOUR_PROJECT}) //Required. .withFeature(${YOUR_FEATURE}) //Required. .withEntityId(${YOUR_ENTITY_ID}) //Required. .withEvaluationContext(${YOUR_EVAL_CONTEXT}) //Optional: a JSON object of attributes that you can optionally pass in as part of the evaluation event sent to Evidently. .build(); EvaluateFeatureResponse evaluateFeatureResponse = evidently.evaluateFeature(evaluateFeatureRequest); // PutProjectEvents via local client. PutProjectEventsRequest putProjectEventsRequest = new PutProjectEventsRequest().builder() .withData(${YOUR_DATA}) .withTimeStamp(${YOUR_TIMESTAMP}) .withType(${YOUR_TYPE}) .build(); PutProjectEvents putProjectEventsResponse = evidently.putProjectEvents(putProjectEventsRequest);
Konfigurieren, wie oft der Client Daten an Evidently sendet
Um festzulegen, wie oft die clientseitige Auswertung Daten an Evidently sendet, können Sie optional zwei Umgebungsvariablen konfigurieren.
AWS_APPCONFIG_EXTENSION_EVIDENTLY_EVENT_BATCH_SIZE
gibt die Anzahl der Ereignisse pro Projekt an, die gebündelt werden, bevor sie an Evidently gesendet werden. Gültig sind Ganzzahlwerte zwischen 1 und 50, und der Standardwert ist 40.AWS_APPCONFIG_EXTENSION_EVIDENTLY_BATCH_COLLECTION_DURATION
gibt die Dauer in Sekunden an, die auf Ereignisse gewartet werden soll, bevor sie an Evidently gesendet werden. Der Standardwert ist 30.
Fehlerbehebung
Verwenden Sie die folgenden Informationen, um Probleme bei der Verwendung von CloudWatch Evidently mit clientseitiger Evaluierung — powered by zu beheben. AWS AppConfig
Beim Aufrufen des EvaluateFeature Vorgangs ist ein Fehler aufgetreten (BadRequestException): Die HTTP-Methode wird für den angegebenen Pfad nicht unterstützt
Ihre Umgebungsvariablen sind möglicherweise falsch konfiguriert. Beispiel: Sie haben vielleicht EVIDENTLY_CONFIGURATIONS
als Umgebungsvariablenname anstatt AWS_APPCONFIG_EXTENSION_EVIDENTLY_CONFIGURATIONS
verwendet.
ResourceNotFoundException: Die Bereitstellung wurde nicht gefunden
Ihre Aktualisierung der Projektmetadaten wurde nicht für AWS AppConfig bereitgestellt. Suchen Sie nach einer aktiven Bereitstellung in der AWS AppConfig Umgebung, die Sie für die clientseitige Evaluierung verwendet haben.
ValidationException: Offensichtlich keine Konfiguration für das Projekt
Ihre AWS_APPCONFIG_EXTENSION_EVIDENTLY_CONFIGURATIONS
-Umgebungsvariable ist möglicherweise mit dem falschen Projektnamen konfiguriert.