Connectez-vous à la console AWS et configurez Amazon Linux 2 à partir d'EC2. Le type d'instance est ~~ t2.micro ~~ et cliquez sur le bouton Confirmer et créer. * Comme cela sera décrit plus loin, veuillez utiliser t2.medium. Veuillez définir vous-même le groupe de sécurité. Laissez le port 22 ouvert pour la connexion SSH. Sélectionnez une paire de clés existante, sinon créez-en une nouvelle. Requis pour la connexion SSH. Créer une instance. Cliquez sur Afficher l'instance. Lorsque l'état de l'instance est en cours d'exécution et que le contrôle d'état est 2/2, il est terminé. Après avoir créé l'instance, copiez l'adresse IP publique IPv4 et établissez une connexion SSH à partir de PuTTY. Ouvrez PuTTY et entrez l'adresse IP dans le champ Nom d'hôte. Sélectionnez une paire de clés dans Connexion-> SSH-> Auth. Utilisez PuTTYgen pour convertir .pem en .ppk. Cliquez sur Oui. Vous pouvez vous connecter avec ec2-user.
Après vous être connecté, vérifiez votre version de Python. Il semble que la série Python 2 soit toujours la série par défaut.
$ python
Python 2.7.16 (default, Dec 12 2019, 23:58:22)
[GCC 7.3.1 20180712 (Red Hat 7.3.1-6)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
Installez Anaconda. Copiez l'URL de téléchargement depuis le site Anaconda.
Accédez à l'URL de téléchargement et installez avec bash.
$ wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh
$ bash Anaconda3-2019.10-Linux-x86_64.sh
Lisez les termes avec Entrée et entrez oui. Démarrez l'installation avec Enter.
Please answer 'yes' or 'no':'
>>> yes
Anaconda3 will now be installed into this location:
/home/ec2-user/anaconda3
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
Unpacking payload ...
0%| | 0/291 [00:00<?, ?it/s]
Il s'est arrêté à.
Il semble que vous puissiez le faire avec t2.medium, alors arrêtez l'instance et changez le type d'instance. current latest miniconda sh installer for linux hangs on Unpacking payload step #9345
Après avoir installé Anaconda, créez un environnement Python 3.6.
$ /home/ec2-user/anaconda3/bin/conda create -n py36 python=3.6
$ /home/ec2-user/anaconda3/bin/conda init
Redémarrez l'instance et installez la bibliothèque dans le dossier python de l'environnement py36.
$ conda activate py36
$ mkdir python
$ pip install -t ./python requests
$ pip install -t ./python ulid-py
$ pip install -t ./python pillow
$ pip install -t ./python numpy
$ pip install -t ./python opencv-python
$ pip install -t ./python opencv-contrib-python
$ pip install -t ./python pandas
$ pip install -t ./python matplotlib
$ pip install -t ./python folium
Compressez le dossier python.
$ zip -r GachiLayers.zip python
Installez les paramètres awscli et boto3 pour télécharger le fichier zip sur S3.
$ pip install awscli
$ pip install boto3
Créez un utilisateur à partir de l'AWS Console IAM pour obtenir la clé d'accès AWS et la clé d'accès secrète.
Accordez l'autorisation d'accès pour AmazonS3FullAccess.
Il n'y a pas de balise particulière.
confirmer.
Une fois créés, vous aurez la clé d'accès AWS et la clé d'accès secrète nécessaires pour la configuration d'aws, alors conservez-les en lieu sûr.
Saisissez les paramètres AWS Configure, la clé d'accès AWS et la clé d'accès secrète.
$ aws configure
AWS Access Key ID [None]: xxxxxxxxxxxxxxxxxxxx
AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Default region name [None]: ap-northeast-1
Default output format [None]: json
Créez un programme Python pour télécharger le fichier Zip sur S3. Créez un nouveau compartiment S3.
$ vi upload.py
import boto3
filename = 'GachiLayers.zip'
s3 = boto3.resource('s3')
obj = s3.Object(<INSERT YOUR BUCKET NAME>, filename)
response = obj.put(Body = open(filename, 'rb'))
Je le ferai.
$ python upload.py
Assurez-vous qu'il a été téléchargé sur S3.
Ouvrez Lambda à partir de la console AWS et créez une couche à partir des couches.
J'ai pu le créer.
Créez une fonction Lambda (le runtime est Python3.6) et ajoutez une couche.
Sélectionnez le calque créé.
Éditons la fonction Lamda pour nous assurer que la bibliothèque est chargée.
import json
import requests
import ulid
from PIL import Image
import numpy as np
import cv2
import pandas as pd
import matplotlib.pyplot as plt
import folium
from folium import plugins
def lambda_handler(event, context):
# TODO implement
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
Créez un événement de test.
Si vous le pouvez, la bibliothèque devrait être chargée.
Response:
{
"statusCode": 200,
"body": "\"Hello from Lambda!\""
}
Je vous remercie pour votre travail acharné. Vous pouvez supprimer l'instance lorsque vous avez terminé.