L'autre jour (septembre 2020), j'ai essayé de générer un modèle hello world (le runtime est python3.8) de sam (Serverless Application Model) dans l'environnement de développement Cloud 9 nouvellement créé (plateforme = AmazonLinux) d'AWS et essayez de construire et de déployer. Quand j'ai essayé de construire avec la commande "sam build --use-container", j'ai rencontré l'erreur suivante. J'ai eu une erreur (Erreur d'exécution: le conteneur n'existe pas) dans l'environnement que je viens de créer, donc j'ai "Quoi ??".
(↓ est pour référence, jusqu'à ce que le modèle hello_world soit sorti)
ec2-user:~/environment $ sam init --runtime python3.8 -n sam-py38
SAM CLI now collects telemetry to better understand customer needs.
You can OPT OUT and disable telemetry collection by setting the
environment variable SAM_CLI_TELEMETRY=0 in your shell.
Thanks for your help!
Learn More: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-telemetry.html
Which template source would you like to use?
1 - AWS Quick Start Templates
2 - Custom Template Location
Choice: 1
Allow SAM CLI to download AWS-provided quick start templates from Github [Y/n]: Y
AWS quick start application templates:
1 - Hello World Example
2 - EventBridge Hello World
3 - EventBridge App from scratch (100+ Event Schemas)
4 - Step Functions Sample App (Stock Trader)
5 - Elastic File System Sample App
Template selection: 1
-----------------------
Generating application:
-----------------------
Name: sam-py38
Runtime: python3.8
Dependency Manager: pip
Application Template: hello-world
Output Directory: .
Next steps can be found in the README file at ./sam-py38/README.md
ec2-user:~/environment $ cd sam-py38/
(La commande sam build de la sortie hello_world par ↓ devient RuntimeError)
ec2-user:~/environment/sam-py38 $ sam build --use-container
Starting Build inside a container
Building resource 'HelloWorldFunction'
Fetching lambci/lambda:build-python3.8 Docker container image.....................................................................................................................................................................................................................................................
Mounting /home/ec2-user/environment/sam-py38/hello_world as /tmp/samcli/source:ro,delegated inside runtime container
Traceback (most recent call last):
File "/usr/local/bin/sam", line 11, in <module>
sys.exit(cli())
File "/usr/local/lib64/python3.6/site-packages/click/core.py", line 764, in __call__
~ (Omis) ~
File "/usr/local/lib/python3.6/site-packages/samcli/local/docker/container.py", line 197, in wait_for_logs
raise RuntimeError("Container does not exist. Cannot get logs for this container")
RuntimeError: Container does not exist. Cannot get logs for this container
Je ne connaissais pas intuitivement la cause du message d'erreur, donc quand j'ai contacté AWS Support,
En raison d'une capacité insuffisante du volume EBS associé à l'instance EC2 dans l'environnement Cloud9
J'ai reçu la réponse.
Il a été résolu en augmentant la capacité du volume EBS à 20G en se référant au document suivant.
Resize an Amazon EBS volume used by an environment https://docs.aws.amazon.com/cloud9/latest/user-guide/move-environment.html#move-environment-resize
L'expansion de taille par cette méthode est également introduite dans l'article ci-dessous, et elle peut être développée très facilement. Augmentez la taille du disque d'AWS Cloud 9 https://qiita.com/Keisuke69/items/af87eb8629ad4249bd22
La taille du volume initial s'épuisera rapidement, en particulier si vous effectuez un travail lié à docker sur Cloud 9, alors rappelez-vous comment étendre facilement le volume si nécessaire à l'aide de resize.sh. Je pense que c'est pratique.
C'est facile, mais c'est tout. J'espère que moins de gens auront des problèmes avec le même problème.
Recommended Posts