Dies ist eine Aufzeichnung, die ich als Referenz für ein Memorandum ausprobiert habe. Ich denke, der Referenzartikel ist für jeden einfach, der weiß, dass er ordentlich geschrieben ist, aber für AWS-Anfänger war er schwierig. Ich möchte diesen Bereich schlammig erklären. Was ich also getan habe, ist endlich der Referenzartikel. 【Referenz】 ・ S3 → Lambda → Transkribieren → Erstellen einer Transkriptionspipeline mit S3
・ Erstellen Sie einen Bucket für (Eingabe) in 1 S3 ・ 2 Öffnen Sie Lambda ・ 3 Definition und Bedeutung der Lambda-Funktion ・ 4 Lesen von CloudWatch-Protokollen ・ Erstellen Sie einen Bucket für (Ausgabe) in 5 S3 ・ 6 Lambda-Korrektur ・ 7 So ändern Sie die Ausführungsrolle ・ 8 Lambda-Funktion bearbeiten ・ 9 So überprüfen Sie die Transkription
Wenn Sie auf den Dienst oben links in AWS klicken, werden alle Dienste angezeigt, und Sie können hier verschiedene Menüs auswählen. Wenn Sie s3 als Speicher auswählen, können Sie zu der Seite springen, auf der Sie einen Bucket für s3 erstellen können. Erstellen Sie ihn dort. Ich denke, es funktioniert auch, wenn alle Sicherheitsvorkehrungen verboten sind (Objekte werden veröffentlicht). Erstellen Sie Ein- und Ausgaben mit den entsprechenden Bucket-Namen.
Zeigen Sie alle Dienste wie oben an. Öffnen Sie diesmal Lambda für die Berechnung. Die Seite zur Funktionserstellung wird geöffnet Wenn es nicht geöffnet wird, klicken Sie auf Funktion erstellen. Dann springt die Seite des Referenzbildes ①. Hier können Sie zum nächsten Bildschirm wechseln, indem Sie [Design verwenden] - [s3-get-object-python] - [Einstellungen] auswählen.
Erstens ist die Lambda-Funktion eine wichtige Methode zum Definieren einer Funktion, bei der ein Trigger ohne Server abgerufen wird, und es handelt sich um einen Umlage-Service, der eine Gebühr für den vollständigen Umzug kostet. ** ** ** Wir definieren also eine Funktion mit fast einer einzigen Funktion.
Lassen Sie uns abschließend das Verhalten der Funktion definieren. Funktionsname, alles, was einzigartig ist, sieht gut aus Rollenname, dies muss eindeutig sein. Selbst wenn die Funktion gelöscht wird, wird sie nicht gelöscht. Daher muss sie separat gelöscht werden. S3-Trigger; Name des Eingabe-Buckets für die Eingabe Trigger aktivieren, prüfen Das folgende Skelett wird ausgespuckt, aber es stellt sich heraus, dass diese Funktion bereits funktioniert. Das heißt, es ist ersichtlich, dass ein Protokoll aufgezeichnet wird, wenn etwas in den Eingabebereich gelegt (übertragen) wird. Mit Blick auf den Inhalt ist es wie folgt Erstens ist Lib wie folgt
import json
import urllib.parse
import boto3
Holen Sie sich s3 Objekt
print('Loading function')
s3 = boto3.client('s3')
Die Funktion lambda_handler führt die in # beschriebene Operation aus. Das heißt, es erhält ein Objekt vom Ereignis und zeigt seinen Inhalt an. Bucket gibt den oben definierten s3-Bucket-Namen zurück. Schlüssel gibt den Dateinamen zurück. Holen Sie sich den Dateinamen usw. als Antwort in den Bucket. Dieser Inhaltstyp wird zurückgegeben. Unter Ausnahme ist die Fehlerroutine.
def lambda_handler(event, context):
#print("Received event: " + json.dumps(event, indent=2))
# Get the object from the event and show its content type
bucket = event['Records'][0]['s3']['bucket']['name']
key = urllib.parse.unquote_plus(event['Records'][0]['s3']['object']['key'], encoding='utf-8')
try:
response = s3.get_object(Bucket=bucket, Key=key)
print("CONTENT TYPE: " + response['ContentType'])
return response['ContentType']
except Exception as e:
print(e)
print('Error getting object {} from bucket {}. Make sure they exist and your bucket is in the same region as this function.'.format(key, bucket))
raise e
Wenn Sie eine Funktion erstellen, können Sie eine Funktionsseite erstellen. Wenn Sie dort eingeben, ist dies [Einstellungen] [Zugriffsrechte] [Überwachung], und der Code ist unten geschrieben. Wählen Sie die [Überwachung]. Und es gibt einige Grafiken, unter denen Sie CloudWatch Logs Insights sehen können. Versuchen Sie hier, etwas von ec2 usw. in den obigen Eingabebereich zu ordnen (zu übertragen). Dann funktioniert die obige Lambda-Funktion, und diese CloudWatch-Protokolle zeigen die Aufzeichnung der Bewegung von Moment zu Moment. Fehler werden ebenfalls ausgelöst. So können Sie zumindest überprüfen, ob es funktioniert.
Schließlich machen Sie die Lambda-Funktion real. Dieses Mal können Sie die Anwendung einfach kopieren und in Referenz paste einfügen und die Bucket-Namen für Eingabe und Ausgabe ändern. Mal sehen, was passiert, wenn der Auslöser tatsächlich beim Versuch kommt. Am besten ist es, wenn der TranscriptionJobName jedes Mal generiert wird, wenn der Trigger angewendet wird, um ihn eindeutig zu halten. Daher kennt der erzeugte JSON auch die Zeit. Sie können den folgenden Code verstehen, da Bucket der Eingabe-Bucket und der Dateiname der Schlüssel ist. Anschließend wird die Ausgabedatei in den durch OutputBucketName definierten Bucket ausgegeben.
transcribe.start_transcription_job(
TranscriptionJobName= datetime.datetime.now().strftime('%Y%m%d%H%M%S') + '_Transcription',
LanguageCode='ja-JP',
Media={
'MediaFileUri': 'https://s3.ap-northeast-1.amazonaws.com/' + bucket + '/' + key
},
OutputBucketName='lamoutput'
)
Wählen Sie [Zugriffsrechte]. Die Ausführungsrolle wird angezeigt. Wenn Sie darauf klicken, werden die Berechtigungen der Ausführungsrolle und die Berechtigungsrichtlinie angezeigt. Hier, AmazonS3FullAccess AmazonTranscribeFullAccess Hinzufügen. Um es hinzuzufügen, klicken Sie auf [Richtlinie anhängen] und geben Sie das Obige in die Suche ein. Aktivieren Sie also das linke und hängen Sie es an, um es hinzuzufügen.
Wie 6, jedoch den folgenden Code direkt auf der Funktionsseite ändern und speichern.
Wenn Sie in diesem Zustand eine MP3-Datei in die Eingabe einfügen, ist das Ergebnis der Übertragung meiner Meinung nach die JSON-Datei in der Ausgabe. Ich denke, es wird einige Zeit dauern, aber es wird schneller ausgegeben als mein eigenes Programm. Sie können die aktuelle Situation anhand der obigen CloudWatch-Protokolle anzeigen. Übrigens können Sie es im Ausgabe-Bucket möglicherweise nur sehen, wenn Sie es neu laden. Seien Sie also vorsichtig. Wenn Sie die JSON-Datei veröffentlichen, können Sie sie problemlos herunterladen. Als ich es einfach öffnete, waren die Charaktere verstümmelt. Als ich es mit Notepad öffnete, konnte ich den Inhalt wunderschön sehen. Außerdem finde ich es schön, die heruntergeladene JSON-Datei mit Pandas zu lesen und den transkribierten Text zu überprüfen. Ich habe bisher darüber nachgedacht, die obige Funktion zu verwenden, aber ich habe heute Abend aufgegeben, weil es schwierig zu sein scheint.
・ Lambda-Funktionsdebüt
・ Da die Konvertierung schnell ist, möchte ich Polly implementieren und auf Konversations-Apps anwenden. ・ Polly wird versuchen, es auf die gleiche Weise zu schaffen
Recommended Posts