Au Mokumokukai des points. Women's Club, j'ai décidé de faire un robot avec AWS Lambda, alors j'ai soulevé mon poids. La taille est vraiment lourde.
Lambda est gratuit 1 million de fois par mois, donc je pense que vous pouvez l'exécuter 23 fois par minute.
Crawler / scraping made with Lambda semble être utile, donc au début je l'ai obtenu avec request
à S3 en regardant ceci J'ai décidé de télécharger quelque chose pour le moment.
Le langage est bien sûr 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)
Comme prévu, AWS Lambda est une victoire facile! Lorsque j'appuie sur le bouton Test en pensant ...
python
"errorMessage": "Unable to import module 'lambda_function'"
Erreur \ (^ o ^) / car les demandes
ne peuvent pas être lues
Quand je me demandais comment installer pip
sur AWS Lambda, je suis tombé sur cet article.
Déployer AWS Lambda Python avec lambda-uploader
python
pip install lambda-uploader
J'ai créé un répertoire, copié la source que j'ai écrite plus tôt et préparé lambda.json et requirements.txt.
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
La composition est comme ça.
python
$ tree
.
├── lambda.json
├── requirements.txt
└── test_requests.py
0 directories, 3 files
Maintenant qu'il est prêt, exécutez la commande.
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
Si vous n'avez pas d'autorité
Ajoutez AWSLambdaFullAccess et réexécutez
Erreur··
Ici, les points: Mokumokukai du club des femmes a reçu de la bière à la fin du match, alors j'étais malade et j'ai bu. J'ai ouvert environ la moitié de la bière et je me suis saoulé, alors je l'ai essayée avec une baguette magique ...
$ lambda-uploader
λ Building Package
λ Uploading Package
λ Fin
Il a semblé qu'il fallait du temps pour refléter l'attachement politique. Il est important de se développer avec une marge.
Je pense que je peux faire différentes choses avec Lambda, donc je vais jouer avec plus. \ (^ O ^) /