[PYTHON] Ich habe gerade eine virtuelle Umgebung mit der AWS-Lambda-Schicht erstellt

Background Früher habe ich das Paket gespeichert, das ich mit venv in Python3.6 oder höher weitergeleitet habe, aber als ich untersucht habe, ob es unter AWS möglich ist, gab es eine erschwingliche Funktion namens Layer, also habe ich versucht, sie zu verwenden.

venv

Dies ist auf dem Arbeits-PC in Ordnung

python -m venv [Name der virtuellen Umgebung]

./[Name der virtuellen Umgebung]/bin/activate
([Name der virtuellen Umgebung]) pip install [Paketnamen]

Erstellen eines Reißverschlusses für ein Paket

[Web Scraping mit AWS Lambda-Entwicklung (Web Scraping)](https://qiita.com/satsukiya/items/b9d02abd7fa96cd59355#development-web%E3%82%B9%E3%82%AF%E3% Erstellen Sie eine Zip-Datei zum Hochladen auf AWS auf die gleiche Weise wie 83% AC% E3% 82% A4% E3% 83% 94% E3% 83% B3% E3% 82% B0).

mkdir packages
cd packages
pip install [Paket] -t ./
pip install [Paket] -t ./
......
zip -r ./myDeploymentPackage.zip ./packages

Layer Erstellen Sie eine Ebene, um eine Pip-Umgebung zu erstellen.

Development (error)

Hier [Web Scraping mit AWS Lambda-Development (Web Scraping)](https://qiita.com/satsukiya/items/b9d02abd7fa96cd59355#development-web%E3%82%B9%E3%82%AF% Schreiben wir einen Code mit einer schönen Suppe mit E3% 83% AC% E3% 82% A4% E3% 83% 94% E3% 83% B3% E3% 82% B0).

import json
import requests
from bs4 import BeautifulSoup

def lambda_handler(event, context):
    # TODO implement

    response = requests.get('https://mainichi.jp/editorial/')
    soup = BeautifulSoup(response.text)
    pages = soup.find("ul", class_="list-typeD")
    articles = pages.find_all("article")
    links = [ "https:" + a.a.get("href") for a in articles]

    return {
        'statusCode': 200,
        'links' : links
    }

Dann

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

Ich erhalte einen Importfehler.

[Grundlegende Hinweise zur Verwendung von Lambda @ Python-Ebenen (für diejenigen, die keine in Ebenen hochgeladenen Dateien importieren können) -Hinweise](https://qiita.com/k_hoso/items/78beb33e53abfdddabe7#%E6% B3% A8% E6% 84% 8F% E7% 82% B9) Betrachtet man, scheint die Zip-Datei unter / opt / dekomprimiert zu sein.

In diesem Fall ist ein Paket von pip auf dem Arbeits-PC in / opt / packages / installiert

import sys
sys.path.append('/opt/packages')

Es ist notwendig, den Weg im Voraus zu passieren.

Development (modified)

import sys
sys.path.append('/opt/packages')
import json
import requests
from bs4 import BeautifulSoup


def lambda_handler(event, context):
    # TODO implement

    response = requests.get('https://mainichi.jp/editorial/')
    soup = BeautifulSoup(response.text)
    pages = soup.find("ul", class_="list-typeD")
    articles = pages.find_all("article")
    links = [ "https:" + a.a.get("href") for a in articles]

    return {
        'statusCode': 200,
        'links' : links
    }
{
  "statusCode": 200,
  "links": [
    "https://mainichi.jp/articles/20201120/ddm/005/070/067000c",
    "https://mainichi.jp/articles/20201120/ddm/005/070/065000c",
    "https://mainichi.jp/articles/20201119/ddm/005/070/119000c",
    "https://mainichi.jp/articles/20201119/ddm/005/070/118000c",
    "https://mainichi.jp/articles/20201118/ddm/005/070/115000c",
    "https://mainichi.jp/articles/20201118/ddm/005/070/114000c",
    "https://mainichi.jp/articles/20201117/ddm/005/070/114000c",
    "https://mainichi.jp/articles/20201117/ddm/005/070/113000c",
    "https://mainichi.jp/articles/20201116/ddm/005/070/043000c"
  ]
}

Post Scripting Ich wünschte, ich könnte es ohne "/ packages /" tun, wenn ich mit zip komprimiere: expressionless:

Recommended Posts

Ich habe gerade eine virtuelle Umgebung mit der AWS-Lambda-Schicht erstellt
Ich habe gerade FizzBuzz mit AWS Lambda gemacht
Erstellen Sie eine virtuelle Umgebung mit Python!
Erstellen einer virtuellen Umgebung mit Python 3
Ich möchte eine virtuelle Umgebung mit Jupyter Notebook verwenden!
Ich habe ein Skript geschrieben, um mit AWS Lambda + Python 2.7 schnell eine Entwicklungsumgebung für Twitter Bot zu erstellen
[Python] Erstellen Sie mit Anaconda eine virtuelle Umgebung
Ich habe eine TensorFlow-Umgebung mit Windows 10 erstellt
Erstellen Sie mit pyenv eine virtuelle Umgebung für Python
Startete Node.js in einer virtuellen Umgebung
[AWS] Erstellen Sie mit CodeStar eine Python Lambda-Umgebung und führen Sie Hello World aus
Ich habe einen Slack-Bot geschrieben, der Verzögerungsinformationen mit AWS Lambda benachrichtigt
Erstellen Sie mit pulumi eine WardPress-Umgebung auf AWS
Starten Sie Django in einer virtuellen Umgebung mit Pipenv
Erstellen Sie eine virtuelle Umgebung mit conda in Python
[Memo] Erstellen Sie eine virtuelle Umgebung mit Pyenv + anaconda
Erstellen Sie eine virtuelle Umgebung mit pyenv und venv
Arbeiten Sie in einer virtuellen Umgebung mit Python virtualenv.
Ablauf beim Erstellen einer virtuellen Umgebung mit Anaconda
Ich habe versucht, AWS Lambda mit anderen Diensten zu verbinden
Als ich versuchte, mit Python eine virtuelle Umgebung zu erstellen, funktionierte dies nicht
Virtuelle Umgebung mit Python 3.6
[AWS] Ich habe BOT mit LINE WORKS daran erinnert
Erstellen Sie eine virtuelle Umgebung mit Anaconda, die über Pyenv installiert ist
Code-Server-Online-Umgebung (2) Erstellen Sie mit Boto3 ein virtuelles Netzwerk
Ich habe eine Python3-Umgebung unter Ubuntu mit direnv erstellt.
Ich habe versucht, TensorFlow in der AWS Lambda-Umgebung auszuführen: Vorbereitung
Erstellen Sie eine virtuelle Python-Umgebung mit virtualenv und virtualenvwrapper
Ich möchte Lambda mit Python auf Mac AWS!
Hinweise zum Erstellen einer virtuellen Umgebung mit Anaconda Navigator
Erstellen einer Django-Umgebung für Win10 (mit virtuellem Speicherplatz)
Ich möchte eine lokale Variable mit Lambda binden
Ich habe die Entwicklungsumgebung von AWS Chalice mit Docker erstellt und versucht, eine serverlose Anwendung mit sehr hoher Geschwindigkeit bereitzustellen
[AWS] Versuchen Sie, die Python-Bibliothek mit SAM + Lambda (Python) zur Ebene hinzuzufügen.
Ich möchte eine Jupyter-Umgebung mit einem Befehl starten
Erstellen einer virtuellen Python-Umgebung
PyTorch mit AWS Lambda [Lambda-Import]
Wechseln Sie die virtuelle Umgebung mit Jupiter
Erstellen einer virtuellen Python-Umgebung
[AWS] Ich habe BOT mit LINE WORKS (Implementierung) in Erinnerung gerufen.
Eine Geschichte, die ich süchtig danach war, Lambda von AWS Lambda anzurufen.
Erstellen Sie mit Chalice eine flaschen- / flaschenähnliche Webanwendung auf AWS Lambda
Ich habe einen Twitter-Bot mit Go x Qiita API x Lambda erstellt
Regelmäßiges Serverless Scraping mit AWS Lambda + Scrapy Teil 1
Bereiten Sie eine Umgebung für die Verwendung von OpenCV und Pillow mit AWS Lambda vor
Ich habe eine Entwicklungsumgebung für Django 3.0 mit Docker, Docker-Compose und Poetry erstellt
Postgres-Umgebungskonstruktion mit Docker Ich hatte ein wenig Probleme, also beachten Sie
[Python] Ich habe eine REST-API mit AWS API Gateway und Lambda geschrieben.
So erstellen Sie mit AWS Lambda eine serverlose API für maschinelles Lernen
Erstellen einer Kubernetes-Umgebung mit ansible 2
Aktivieren Sie die virtuelle Umgebung von Anaconda mit PowerShell
Berühren Sie Unterstützung für AWS Lambda-Umgebungsvariablen
Ruby-Umgebungskonstruktion mit aws EC2
[AWS] API mit API Gateway + Lambda erstellen
Ich habe mit Python eine Lotterie gemacht.
Versuchen Sie, AWS Lambda-Umgebungsvariablen anzugeben?