Laden Sie das, was Sie angefordert haben, mit AWS Lambda Python in S3 hoch

Im Mokumokukai der Dots. Women's Club habe ich beschlossen, mit AWS Lambda einen Crawler zu bauen, also habe ich mein Gewicht angehoben. Die Taille ist sehr schwer.

Lambda ist 1 Million Mal im Monat kostenlos, ich denke, Sie können es 23 Mal pro Minute ausführen.

Crawler / Scraping mit Lambda scheint hilfreich zu sein, daher habe ich es zuerst mit "Anfrage" an S3 erhalten, während ich mir das anschaue Ich habe beschlossen, vorerst etwas hochzuladen. Die Sprache ist natürlich Python!

python


import boto3
import requests

BUCKET = 'test_requests'
s3 = boto3.client('s3')

def lambda_handler(event, context):
    key = 'corp.camon.tokyo'
    target_url = 'http://corp.camon.tokyo'
    target_html = requests.get(target_url).text
    s3.put_object(Bucket=BUCKET, Key=key, Body=target_html)

Wie erwartet ist AWS Lambda ein einfacher Gewinn! Wenn ich beim Nachdenken die Test-Taste drücke ...

python


"errorMessage": "Unable to import module 'lambda_function'"

Fehler \ (^ o ^) / weil Anfragen nicht gelesen werden können Als ich mich fragte, wie man Pip auf AWS Lambda installiert, stieß ich auf diesen Artikel.

AWS Lambda Python mit Lambda-Uploader bereitstellen

python


pip install lambda-uploader

Ich habe ein Verzeichnis erstellt, die zuvor geschriebene Quelle kopiert und lambda.json und require.txt vorbereitet.

test_requests.py


import boto3
import requests

BUCKET = 'test_requests'
s3 = boto3.client('s3')

def lambda_handler(event, context):
    key = 'corp.camon.tokyo'
    target_url = 'http://corp.camon.tokyo'
    target_html = requests.get(target_url).text
    s3.put_object(Bucket=BUCKET, Key=key, Body=target_html)

lambda.json


  {
    "name": "test_requests",
    "description": "test requests",
    "region": "ap-northeast-1",
    "handler": "test_requests.lambda_handler",
    "role": "arn:aws:iam::????????????:role/lambda_s3_exec_role",
    "timeout": 300,
    "memory": 128
  }

requirements.txt


requests

Die Komposition ist so.

python


$ tree
.
├── lambda.json
├── requirements.txt
└── test_requests.py

0 directories, 3 files

Führen Sie den Befehl aus, sobald er fertig ist.

python


lambda-uploader

python


λ Building Package
λ Uploading Package
⁉️ Unexpected error. Please report this traceback.
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/lambda_uploader/shell.py", line 151, in main
    _execute(args)
  File "/usr/local/lib/python2.7/site-packages/lambda_uploader/shell.py", line 82, in _execute
    upldr.upload(pkg)
  File "/usr/local/lib/python2.7/site-packages/lambda_uploader/uploader.py", line 112, in upload
    self.version = self.upload_new(pkg)
  File "/usr/local/lib/python2.7/site-packages/lambda_uploader/uploader.py", line 89, in upload_new
    Publish=self._config.publish,
  File "/usr/local/lib/python2.7/site-packages/botocore/client.py", line 301, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/usr/local/lib/python2.7/site-packages/botocore/client.py", line 398, in _make_api_call
    raise ClientError(parsed_response, operation_name)
ClientError: An error occurred (AccessDeniedException) when calling the CreateFunction operation: User: arn:aws:iam::????????????:user/WakanaYoshizawa is not authorized to perform: lambda:CreateFunction

Wenn Sie keine Autorität haben

スクリーンショット 2016-04-17 22.59.59.png

Fügen Sie AWSLambdaFullAccess hinzu und führen Sie es erneut aus

Error··

Zu diesem Zeitpunkt wurde der Mokumokukai des Frauenclubs am Ende des Spiels unmittelbar mit Bier versorgt, sodass ich krank war und trank. Ich öffnete ungefähr die Hälfte des Bieres und betrank mich, also versuchte ich es mit einem Slapstick ...

$ lambda-uploader
λ Building Package
λ Uploading Package
λ Fin

Es schien, dass es einige Zeit dauerte, um den politischen Anhang zu reflektieren. Es ist wichtig, sich mit einem Spielraum zu entwickeln.

Ich denke, ich kann mit Lambda verschiedene Dinge machen, also spiele ich mit mehr \ (^ o ^) /

Recommended Posts

Laden Sie das, was Sie angefordert haben, mit AWS Lambda Python in S3 hoch
Stellen Sie mit AWS Lambda Python eine Verbindung zu s3 her
[AWS] Was tun, wenn Sie mit Lambda pfeifen möchten?
Laden Sie Dateien mit Lambda (Python) auf Google Drive hoch.
[AWS lambda] Stellen Sie mit lambda verschiedene Bibliotheken bereit (generieren Sie eine Zip-Datei mit einem Kennwort und laden Sie sie auf s3 hoch) @ Python
Ich möchte Lambda mit Python auf Mac AWS!
[Python] Scraping in AWS Lambda
Was tun, wenn Sie Python auf IntelliJ ausführen und mit einem Fehler beenden?
[AWS] Versuchen Sie, die Python-Bibliothek mit SAM + Lambda (Python) zur Ebene hinzuzufügen.
Schön dich mit Python zu treffen
Benachrichtigen Sie HipChat mit AWS Lambda (Python)
Python | Was Sie mit Python machen können
Beachten Sie, was Sie getan haben, um Flycheck mit Python zu verwenden
Was tun, wenn Sie pyaudio nicht mit pip #Python installieren können?
Was tun, wenn in Python minus Null angezeigt wird?
Senden Sie mit ESP32-WROOM-32 aufgenommene Bilder an AWS (API Gateway → Lambda → S3).
Was ich mit json.dumps in Pythons base64-Codierung süchtig gemacht habe
[Python / AWS Lambda-Ebenen] Ich möchte nur Module in AWS Lambda-Ebenen wiederverwenden
[Für Python] Erstellen Sie schnell eine Upload-Datei in AWS Lambda Layer
Verarbeiten Sie die mit Redshift entladene gzip-Datei mit Python of Lambda, gzipen Sie sie erneut und laden Sie sie in S3 hoch
Wenn Sie Probleme mit Zeitüberschreitungen bei der Implementierung von Slacks SlashCommand in AWS Lambdas Python haben
[AWS] Verwenden von INI-Dateien mit Lambda [Python]
Versuchen Sie, sich mit Python bei qiita anzumelden
PUT gzip direkt in S3 in Python
So arbeiten Sie mit BigQuery in Python
[AWS] Verknüpfen Sie Lambda und S3 mit boto3
So betreiben Sie die Zeitstempelstation in Python
[AWS] Machen Sie SSI-ähnliche Dinge mit S3 / Lambda
Laden Sie Bilder mit Python auf Google Drive hoch
ImportError beim Versuch, das gcloud-Paket mit der AWS Lambda Python-Version zu verwenden
Was tun, wenn Sie mit Python keine E-Mail an Yahoo senden konnten?
Einfache Serverüberwachung mit AWS Lambda (Python) und Ergebnisbenachrichtigung mit Slack
Was tun, wenn Sie sich mit FileNotFoundError in der Dateireferenz verlieren?
Was tun, wenn Sie nicht mit pip in einer Babun-Umgebung installieren können?
Bewegen Sie die Schildkröte an die Stelle, an der Sie mit der Maus mit der Schildkröte in Python klicken
Was tun, wenn Sie sich über "Wertefehler: unbekannt lokal: UTF-8" in python manage.py syncdb ärgern?
Hochladen mit Heroku, Flask, Python, Git (4)
Laden Sie die abgekratzten Artefakte in Scrapy Cloud auf S3 hoch
So finden Sie heraus, welche Art von Datei in S3 in Python gespeichert ist
Python: Ich konnte in Lambda rekursieren
Sie werden in 100 Tagen Ingenieur - Tag 35 - Python - Was Sie mit Python tun können
LINE BOT mit Python + AWS Lambda + API Gateway
Serverlose Anwendung mit AWS SAM! (APIGATEWAY + Lambda (Python))
Melden Sie sich einfach mit mehreren Konten bei AWS an
Beispiel für eine Slack-Benachrichtigung mit Python Lambda
Was vergleichst du mit Python und ==?
Wie man tkinter mit Python in Pyenv benutzt
Was tun, wenn bei der Installation von Python mit pyenv eine Fehlermeldung angezeigt wird?
Was tun, wenn "Python nicht konfiguriert" angezeigt wird? Verwenden von PyDev in Eclipse
[AWS / Lambda] Laden einer externen Python-Bibliothek
[Python] Dinge, die überprüft werden müssen, wenn in Django ein Unicode-Dekodierungsfehler auftritt
Erste Schritte mit AWS IoT in Python
Python-Anfänger süchtig nach Django
Zusammenfassung des Studiums von Python zur Verwendung von AWS Lambda
Laden Sie Bilder mit tkinter mit GUI auf S3 hoch
Erstellen Sie Einstellungen in Terraform, um Nachrichten von AWS Lambda Python3.8 an Slack zu senden
Was tun, um eine Google-Tabelle in Python zu erhalten?
Was verwenden Sie beim Testen mit Python?