Une note qui déploie une application Python de Circle CI vers Elastic Beanstalk et avertit Slack

Préparation

Inscrivez-vous en tant que référentiel dans Circle CI

Lorsque vous vous inscrivez à Circle CI, certains référentiels s'affichent, alors sélectionnez-le. Sélectionnez pour exécuter la génération.

Définir la clé d'accès AWS

Sélectionnez le référentiel enregistré dans BUILDS et sélectionnez Paramètres du projet en haut à droite. Accédez à PERMISSIONS → Autorisations AWS et enregistrez votre ID de clé d'accès et votre ID de clé d'accès secrète. Ceci est écrit en interne dans ~ / .aws / config et ~ / .aws / credentials au moment de la construction. Le nom du profil sera «[par défaut]», donc soyez prudent si vous avez déjà édité le fichier .config sous le répertoire .elasticbeanstalk avec un nom de profil différent.

Configurer Slack

Obtenez l'URL du WebHook et accédez à Circle CI. Vérifiez avec Test Hook.

Ajouter et modifier circle.yml

Peut-être que je devais le mettre directement sous le répertoire racine du référentiel.

Spécifiez un répertoire

Non requis si le code source se trouve dans le répertoire racine du référentiel.

general:
  build_dir: src

spécification de la machine

Selon l'environnement Python3 qui peut être créé avec Elastic Beanstalk maintenant, comme suit.

machine:
  python:
    version: 3.4.3

Réglage pour mettre awsebcli

Les bibliothèques dépendantes sont également incluses ici.

dependencies:
  pre:
    - pip install -r requirements.txt
    - pip install awsebcli

Lorsque vous souhaitez exécuter un test en même temps

Comme ci-dessous

test:
  override:
    - python test.py

Paramètres à déployer

Le nom de la branche et le nom de l'environnement sur Elastic Beanstalk.

deployment:
  staging:
    branch: develop
    commands:
      - eb deploy eb-environment-name

Ajouter et modifier le fichier de configuration Elastic Beanstalk

Ajoutez .elasticbeanstalk / config.yml au répertoire de déploiement (src cette fois). Modifiez comme suit. Comme mentionné ci-dessus, le nom du profil est "default".

branch-defaults:
  default:
    environment: eb-environment-name
global:
  application_name: eb-app-name
  default_ec2_keyname: null
  default_platform: 64bit Amazon Linux 2016.03 v2.1.0 running Python 3.4
  default_region: ap-northeast-1
  profile: default
  sc: null

Si vous avez déjà défini le nom du profil autre que celui par défaut

Remplacez «~ / .aws / credentials» par «pre» dans «circle.yml». Au début, je n'ai pas remarqué que ~ / .aws / credentials était écrit du côté Circle CI et je l'ai écrit moi-même et j'ai réussi, donc cette méthode devrait être correcte.

Essayez de déployer

Appuyez sur circle.yml et .elasticbeanstalk / config.yml. Il devrait être déployé après un certain temps.

Recommended Posts

Une note qui déploie une application Python de Circle CI vers Elastic Beanstalk et avertit Slack
[AWS] Version de déploiement d'application Flask qui a tenté de créer un environnement Python avec eb [Elastic Beanstalk]
[AWS] Préparation du déploiement de l'application Flask pour la création d'un environnement Python avec eb [Elastic Beanstalk]
Envoyer un message de Slack à un serveur Python
Une application cliente python qui télécharge et supprime des fichiers de S3 en spécifiant un compartiment
[AWS] J'ai essayé de créer un environnement Python avec un environnement de développement eb [Elastic Beanstalk]
Publier de Python vers Slack
Comment écrire une classe méta qui prend en charge à la fois python2 et python3
Une histoire sur tout, de la collecte de données au développement d'IA et à la publication d'applications Web en Python (3. développement d'IA)
Publier un message d'IBM Cloud Functions sur Slack en Python
Un guide rapide de PyFlink qui combine Apache Flink et Python
[python] Une note que j'ai commencé à comprendre le comportement de matplotlib.pyplot
J'ai créé une application Web en Python qui convertit Markdown en HTML
Migration de Python2 vers Python3 (Python2 est reconstruit comme un environnement virtuel et coexiste)
(Remarque) Une application Web qui utilise TensorFlow pour déduire les noms de morceaux recommandés.
Connectez-vous à postgreSQL depuis Python et utilisez des procédures stockées dans une boucle.
Je souhaite créer une application Web en utilisant React et Python flask
De Python à l'utilisation de MeCab (et CaboCha)
Portage et modification du solveur de doublets de python2 vers python3.
Notez que cibuildwheel construit python bwheel (y compris le module C ++) en masse avec CI et le télécharge sur PyPI
Je veux exécuter et distribuer un programme qui redimensionne les images Python3 + pyinstaller
WEB grattage avec python et essayez de créer un nuage de mots à partir des critiques
Langage C pour voir et se souvenir de la partie 3 Appelez le langage C depuis Python (argument) c = a + b
Créez des paramètres dans terraform pour envoyer des messages depuis AWS Lambda Python3.8 vers Slack
Exécuter des scripts Python à partir d'applications C # GUI
Comment ouvrir un navigateur Web à partir de python
Texte de l'image et publication sur slack (python slackbot)
Un joli nimporter qui connecte nim et python
[Python] Comment lire les données de CIFAR-10 et CIFAR-100
Comment générer un objet Python à partir de JSON
Étapes pour développer une application Web en Python
[Introduction à l'application Udemy Python3 +] 64. Espace de noms et portée
Remarque Python: lors de l'attribution d'une valeur à une chaîne
"Kit Python" qui appelle des scripts Python depuis Swift
[Python] Lancer un message sur le canal Slack
Script Python qui explore le flux RSS du statut Azure et le publie sur Hipchat
Un programme qui demande quelques kilogrammes pour atteindre l'IMC et le poids standard [Python]
(Remarque) Application Web qui utilise TensorFlow pour déduire les noms de morceaux recommandés [Apprentissage automatique]
Utilisez slackbot comme relais et retournez de bouteille à slack au format json.
Un mécanisme pour appeler des méthodes Ruby à partir de Python qui peut être fait en 200 lignes