Amazon Managed Service für Apache Flink war zuvor als Amazon Kinesis Data Analytics für Apache Flink bekannt.
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.
Erstellen und Ausführen der Anwendung (CLI)
In diesem Abschnitt verwenden Sie die, AWS Command Line Interface um die Anwendung Managed Service for Apache Flink zu erstellen und auszuführen. Verwenden Sie den AWS CLI Befehl kinesisanalyticsv2, um Managed Service für Apache Flink-Anwendungen zu erstellen und mit ihnen zu interagieren.
Erstellen einer Berechtigungsrichtlinie
Anmerkung
Sie müssen eine Berechtigungsrichtlinie und eine Rolle für Ihre Anwendung erstellen. Wenn Sie diese IAM-Ressourcen nicht erstellen, kann Ihre Anwendung nicht auf ihre Daten und Protokollstreams zugreifen.
Zuerst erstellen Sie eine Berechtigungsrichtlinie mit zwei Anweisungen: eine, die Berechtigungen für die Lese-Aktion auf den Quell-Stream zulässt, und eine andere, die Berechtigungen für die Schreib-Aktionen auf den Senken-Stream zulässt. Anschließend fügen Sie die Richtlinie an eine IAM-Rolle (die Sie im nächsten Abschnitt erstellen) an. Wenn Managed Service für Apache Flink also die Rolle übernimmt, verfügt der Service über die erforderlichen Berechtigungen zum Lesen aus dem Quell-Stream und zum Schreiben in den Senken-Stream.
Verwenden Sie den folgenden Code zum Erstellen der AKReadSourceStreamWriteSinkStream
-Berechtigungsrichtlinie. Ersetzen Sie username
durch den Benutzernamen, den Sie verwendet haben, um den Amazon-S3-Bucket zum Speichern des Anwendungscodes zu erstellen. Ersetzen Sie die Konto-ID in den Amazon-Ressourcennamen (ARNs) (012345678901)
durch Ihre Konto-ID.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadCode", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ka-app-code-
username
/getting-started-scala-1.0.jar" ] }, { "Sid": "DescribeLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:*" ] }, { "Sid": "DescribeLogStreams", "Effect": "Allow", "Action": [ "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:*" ] }, { "Sid": "PutLogEvents", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:kinesis-analytics-log-stream" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteOutputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleOutputStream" } ] }
step-by-stepAnweisungen zum Erstellen einer Berechtigungsrichtlinie finden Sie unter Tutorial: Erstellen und Anhängen Ihrer ersten vom Kunden verwalteten Richtlinie im IAM-Benutzerhandbuch.
Eine IAM-Richtlinie erstellen
In diesem Abschnitt erstellen Sie eine IAM-Rolle, die die Anwendung von Managed Service für Apache Flink annehmen kann, um einen Quell-Stream zu lesen und in den Senken-Stream zu schreiben.
Managed Service für Apache Flink kann ohne Berechtigungen nicht auf Ihren Stream zugreifen. Sie erteilen diese Berechtigungen über eine IAM-Rolle. Jeder IAM-Rolle sind zwei Richtlinien angefügt. Die Vertrauensrichtlinie erteilt Managed Service für Apache Flink die Berechtigung zum Übernehmen der Rolle und die Berechtigungsrichtlinie bestimmt, was Managed Service für Apache Flink nach Annahme der Rolle tun kann.
Sie können die Berechtigungsrichtlinie, die Sie im vorherigen Abschnitt erstellt haben, dieser Rolle anfügen.
So erstellen Sie eine IAM-Rolle
Öffnen Sie unter https://console.aws.amazon.com/iam/
die IAM-Konsole. Wählen Sie im Navigationsbereich Rollen und dann Rolle erstellen.
Wählen Sie unter Typ der vertrauenswürdigen Entität auswählen die Option AWS -Service aus
Wählen Sie unter Choose the service that will use this role (Wählen Sie den Service aus, der diese Rolle verwendet) die Option Kinesis aus.
Wählen Sie unter Wählen Sie Ihren Anwendungsfall aus die Option Managed Service für Apache Flink aus.
Wählen Sie Weiter: Berechtigungen aus.
Wählen Sie auf der Seite Attach permissions policies (Berechtigungsrichtlinien hinzufügen) Next: Review (Weiter: Überprüfen) aus. Sie fügen Berechtigungsrichtlinien an, nachdem Sie die Rolle erstellt haben.
Geben Sie auf der Seite Create role (Rolle erstellen) den Text
MF-stream-rw-role
für Role name (Rollenname) ein. Wählen Sie Rolle erstellen.Jetzt haben Sie eine neue IAM-Rolle mit dem Namen
MF-stream-rw-role
erstellt. Im nächsten Schritt aktualisieren Sie die Vertrauens- und Berechtigungsrichtlinien für die RolleFügen Sie die Berechtigungsrichtlinie der Rolle an.
Anmerkung
Für diese Übung übernimmt Managed Service für Apache Flink diese Rolle sowohl für das Lesen von Daten aus einem Kinesis-Datenstrom (Quelle) als auch zum Schreiben der Ausgabedaten in einen anderen Kinesis-Datenstrom. Daher fügen Sie die Richtlinie an, die Sie im vorherigen Schritt, Erstellen einer Berechtigungsrichtlinie, erstellt haben.
Wählen Sie auf der Seite Summary (Übersicht) die Registerkarte Permissions (Berechtigungen) aus.
Wählen Sie Attach Policies (Richtlinien anfügen) aus.
Geben Sie im Suchfeld
AKReadSourceStreamWriteSinkStream
(die Richtlinie, die Sie im vorhergehenden Abschnitt erstellt haben) ein.Wählen Sie die
AKReadSourceStreamWriteSinkStream
-Richtlinie und wählen Sie Richtlinie anhängen aus.
Sie haben nun die Service-Ausführungsrolle erstellt, die Ihre Anwendung für den Zugriff auf Ressourcen verwendet. Notieren Sie sich den ARN der neuen Rolle.
step-by-stepAnweisungen zum Erstellen einer Rolle finden Sie unter Erstellen einer IAM-Rolle (Konsole) im IAM-Benutzerhandbuch.
Erstellen der Anwendung
Speichern Sie den folgenden JSON-Code in eine Datei mit dem Namen create_request.json
. Ersetzen Sie den Beispiel-Rollen-ARN durch den ARN für die Rolle, die Sie zuvor erstellt haben. Ersetzen Sie das Bucket-ARN-Suffix (username) mit dem Suffix, das Sie im vorherigen Abschnitt gewählt haben. Ersetzen Sie die beispielhafte Konto-ID (012345678901) in der Service-Ausführungsrolle mit Ihrer Konto-ID.
{ "ApplicationName": "getting_started", "ApplicationDescription": "Scala getting started application", "RuntimeEnvironment": "FLINK-1_19", "ServiceExecutionRole": "arn:aws:iam::012345678901:role/MF-stream-rw-role", "ApplicationConfiguration": { "ApplicationCodeConfiguration": { "CodeContent": { "S3ContentLocation": { "BucketARN": "arn:aws:s3:::ka-app-code-
username
", "FileKey": "getting-started-scala-1.0.jar" } }, "CodeContentType": "ZIPFILE" }, "EnvironmentProperties": { "PropertyGroups": [ { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleInputStream", "flink.stream.initpos" : "LATEST" } }, { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleOutputStream" } } ] } }, "CloudWatchLoggingOptions": [ { "LogStreamARN": "arn:aws:logs:us-west-2:012345678901
:log-group:MyApplication:log-stream:kinesis-analytics-log-stream" } ] }
Führen Sie den CreateApplicationmit der folgenden Anforderung aus, um die Anwendung zu erstellen:
aws kinesisanalyticsv2 create-application --cli-input-json file://create_request.json
Die Anwendung wird nun erstellt. Sie starten die Anwendung im nächsten Schritt.
Starten Sie die Anwendung
In diesem Abschnitt verwenden Sie die StartApplication-Aktion, um die Anwendung zu starten.
So starten Sie die Anwendung
Speichern Sie den folgenden JSON-Code in eine Datei mit dem Namen
start_request.json
.{ "ApplicationName": "getting_started", "RunConfiguration": { "ApplicationRestoreConfiguration": { "ApplicationRestoreType": "RESTORE_FROM_LATEST_SNAPSHOT" } } }
Führen Sie die
StartApplication
-Aktion mit der vorherigen Anforderung zum Starten der Anwendung aus:aws kinesisanalyticsv2 start-application --cli-input-json file://start_request.json
Die Anwendung wird jetzt ausgeführt. Sie können die Kennzahlen Managed Service for Apache Flink auf der CloudWatch Amazon-Konsole überprüfen, um sicherzustellen, dass die Anwendung funktioniert.
Stoppen Sie die Anwendung
In diesem Abschnitt verwenden Sie die StopApplication-Aktion, um die Anwendung zu stoppen.
So stoppen Sie die Anwendung
Speichern Sie den folgenden JSON-Code in eine Datei mit dem Namen
stop_request.json
.{ "ApplicationName": "s3_sink" }
Führen Sie die
StopApplication
-Aktion mit der vorherigen Anforderung zum Stoppen der Anwendung aus:aws kinesisanalyticsv2 stop-application --cli-input-json file://stop_request.json
Die Anwendung wird nun gestoppt.
Fügen Sie eine CloudWatch Protokollierungsoption hinzu
Sie können den verwenden AWS CLI , um Ihrer Anwendung einen CloudWatch Amazon-Protokollstream hinzuzufügen. Informationen zur Verwendung von CloudWatch Logs mit Ihrer Anwendung finden Sie unter Anwendungsprotokollierung einrichten.
Aktualisieren Sie die Umgebungseigenschaften
In diesem Abschnitt verwenden Sie die UpdateApplication-Aktion, um die Umgebungseigenschaften für die Anwendung zu ändern, ohne den Anwendungscode neu kompilieren zu müssen. In diesem Beispiel ändern Sie die Region der Quell- und Ziel-Streams.
So aktualisieren Sie die Umgebungseigenschaften für die Anwendung
Speichern Sie den folgenden JSON-Code in eine Datei mit dem Namen
update_properties_request.json
.{ "ApplicationName": "getting_started", "CurrentApplicationVersionId": 1, "ApplicationConfigurationUpdate": { "EnvironmentPropertyUpdates": { "PropertyGroups": [ { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleInputStream", "flink.stream.initpos" : "LATEST" } }, { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleOutputStream" } } ] } }
Führen Sie die
UpdateApplication
-Aktion mit der vorherigen Anforderung aus, um die Umgebungseigenschaften zu aktualisieren:aws kinesisanalyticsv2 update-application --cli-input-json file://update_properties_request.json
Den Anwendungscode aktualisieren
Wenn Sie Ihren Anwendungscode mit einer neuen Version Ihres Codepakets aktualisieren müssen, verwenden Sie die UpdateApplicationCLI-Aktion.
Anmerkung
Um eine neue Version des Anwendungscodes mit demselben Dateinamen zu laden, müssen Sie die neue Objektversion angeben. Weitere Informationen zur Verwendung von Amazon S3-Objektversionen finden Sie unter Versionsverwaltung aktivieren oder deaktivieren.
Um das zu verwenden AWS CLI, löschen Sie Ihr vorheriges Codepaket aus Ihrem Amazon S3 S3-Bucket, laden Sie die neue Version hoch und rufen Sie UpdateApplication
auf. Geben Sie dabei denselben Amazon S3 S3-Bucket und Objektnamen sowie die neue Objektversion an. Die Anwendung wird mit dem neuen Codepaket neu gestartet.
Die folgende Beispielanforderung für die UpdateApplication
-Aktion lädt den Anwendungscode neu und startet die Anwendung neu. Aktualisieren Sie die CurrentApplicationVersionId
auf die aktuelle Anwendungsversion. Sie können die aktuelle Anwendungsversion mithilfe der Aktionen ListApplications
oder DescribeApplication
überprüfen. Aktualisieren Sie das Bucket-Namenssuffix (<username>) mit dem Suffix, das Sie im Abschnitt Erstellen Sie abhängige Ressourcen ausgewählt haben.
{{ "ApplicationName": "getting_started", "CurrentApplicationVersionId": 1, "ApplicationConfigurationUpdate": { "ApplicationCodeConfigurationUpdate": { "CodeContentUpdate": { "S3ContentLocationUpdate": { "BucketARNUpdate": "arn:aws:s3:::ka-app-code-<username>", "FileKeyUpdate": "getting-started-scala-1.0.jar", "ObjectVersionUpdate": "SAMPLEUehYngP87ex1nzYIGYgfhypvDU" } } } } }