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
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 ^) /