[PYTHON] 1 Cliquez pour devenir un bouton exécutif

L'année prochaine, c'est peut-être à cause de l'hiver ou à cause de la poitrine ... En cette saison, quand je sens quelque chose de gris, j'ai créé une application qui ressemble à un léger match. C'est une application qui vous permet de devenir dirigeant d'une société cotée en 1 clic! Son nom est "Executive Button". Cliquez sur l'image ci-dessous pour le démarrer.

** Le bouton exécutif est incroyable! **

En appuyant sur un bouton, vous pouvez obtenir une rémunération des dirigeants pour les sociétés cotées! !!

** Ceci est le bouton exécutif! **

Je ne peux pas vraiment comprendre! !!

La mise en œuvre est ici.

https://github.com/icoxfog417/executive_button

Rémunération des dirigeants des sociétés cotées

À partir de 2019, la rémunération des dirigeants, etc. sera divulguée dans le cadre de la divulgation de la gouvernance. Plus précisément, il en est venu à être décrit dans les documents d'information requis pour les sociétés cotées telles que les rapports sur les valeurs mobilières.

C'est difficile à exposer, mais notre rémunération des dirigeants est la suivante.

image.png

C'est environ 40 millions par personne. Hmm, tout à fait ... (sourire ambigu). Cette valeur peut être obtenue sans les pénalités de lecture à partir de PDF. Étant donné que le document de divulgation est écrit dans un format qui étend XML appelé XBRL, il est possible d'obtenir des données en effectuant une analyse XML. Les tags utilisés sont révisés chaque année et sont publiés à chaque fois comme suit.

(À propos de la publication de la taxonomie EDINET 2019)

Le montant total de la rémunération des dirigeants peut être obtenu avec la balise "TotalAmountOfRemensationEtcPaidByGroupRemensationEtcPaidByGroupToEachDirectorOrOtherOfficer" dans l'espace de noms "jpcrp_cor" (long). L'espace de nom est décidé pour chaque document de divulgation, donc ce sera long si vous en parlez, donc si vous êtes intéressé [ici](https://medium.com/programming-soda/%E8%B2%A1 % E5% 8B% 99% E5% 88% 86% E6% 9E% 90% E3% 81% AB% E6% AC% A0% E3% 81% 8B% E3% 81% 9B% E3% 81% AA% E3 Veuillez vous référer à% 81% 84-xbrl% E3% 82% 92% E7% 90% 86% E8% A7% A3% E3% 81% 99% E3% 82% 8B-part1-d4165fe0e84a).

image.png

Cette fois, l'ensemble de données "CoARiJ" qui résume les documents récemment publiés tels que les rapports sur les titres et les chiffres financiers est Utiliser.

Puisque CoARiJ enregistre les informations textuelles et numériques comme un ensemble, «Je dis de bonnes choses, mais sont-elles reflétées dans les indicateurs de gestion?» Ou «Si les valeurs numériques sont mauvaises, les activités environnementales (rapports) seront modestes. Il est possible d'analyser à la fois du texte et des valeurs numériques telles que "N'est-ce pas?" Cette fois, je retire les données de rémunération des dirigeants dans le texte et les affiche au hasard dans l'application.

Configuration de l'application

La configuration de l'application et de l'infrastructure pour cette fois est la suivante.

image.png

Il y a une raison pour laquelle le proxy est différent entre le développement et la production.

  1. Traefik a besoin d'accéder au fichier docker.sock de l'hôte, mais [Fargate ne peut pas effectuer de liaison de volume](https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/bind -mounts.html).
  2. Fargate ne peut pas utiliser de liens, donc Nginx ne peut pas résoudre le nom d'hôte. Au lieu de cela, vous pouvez accéder à d'autres conteneurs avec localhost.
  3. Par conséquent, même si vous utilisez Nginx à la fois pour le développement et la production, vous devez changer la valeur de nginx.conf (dans le cas du développement, vous ne pouvez pas y accéder avec localhost). J'ai utilisé Traefik, qui est facile à mettre en place, car il sera de toute façon géré en double.

Je me demande si je devrais mettre un proxy si c'est un tel problème, mais il y a une raison de mettre un proxy. Si vous souhaitez séparer les conteneurs sur Nuxt / backend, vous aurez besoin d'un proxy pour l'accès côté serveur et côté client à Nuxt (voir ici pour plus d'informations (https://stackoverflow.com/questions/55090038). / get-http-api1337-games-nom-neterr-non-résolu-pour-nuxt-js-pages-utilisant-asy)). Côté serveur, les paramètres proxy de Nuxt peuvent être utilisés.

nuxt.config.js


  modules: [
    // Doc: https://axios.nuxtjs.org/usage
    "@nuxtjs/axios",
    "@nuxtjs/proxy"
  ],
  /*
   ** Axios module configuration
   ** See https://axios.nuxtjs.org/options
   */
  axios: {
    prefix: "/api",
    proxy: true
  },
  proxy: {
    "/api/": process.env.BACKEND_URL || "http://localhost:8000/"
  },

Cependant, JavaScript (accès du côté client) après avoir été rendu n'a pas de paramètre de proxy. Par conséquent, le nom d'hôte ne peut pas être résolu ou une erreur interdomaine se produit. Afin de transmettre correctement l'accès du côté client au back-end, il est nécessaire d'avoir un proxy inverse en place pour relayer.

Traefik est bien adapté pour ce rôle de proxy inverse. Vous pouvez définir le proxy simplement en définissant l'étiquette dans la série 2.0 de Traefik, docker-compose. Ce qui suit est une citation du tutoriel officiel, mais définissez simplement Host with labels dans le conteneur whoami et il relèvera la demande à cet hôte.

Grande commodité! Cependant, comme mentionné ci-dessus, cela ne fonctionne pas avec Fargate, qui ne peut pas utiliser de liaison car il fait référence au docker.sock de l'hôte. Il peut être géré en passant à EC2, mais veuillez noter que la politique de ʻAmazon EC2ContainerService pour EC2Role` est requise pour le moment ([Référence](https://stackoverflow.com/questions/36523282/aws-ecs-error-when- " exécution-tâche-aucune-instance-de-conteneur-ont-été-trouvées-dans-votre-clust))

Veuillez noter que l'adresse IP publique de Fargate changera à chaque fois que vous la déployez. Ce sera difficile comme ça, donc je vais relayer la demande avec l'équilibreur de charge en face (je viens de le relayer ...). Pour plus de détails sur la création d'un équilibreur de route, voir ci-dessous.

Run your container on AWS Fargate

Lors de l'enregistrement à partir de ʻecs-cli, spécifiez avec --target-group-arn (groupe cible) au lieu de --load-balancer-name` (équilibreur de charge). Lorsqu'il est spécifié dans l'équilibreur de charge, il a été dit que les équilibreurs de charge classiques ne sont pas pris en charge avec Fargate.

 ecs-cli compose service create \
       --target-group-arn "$ARN" \
       --container-name service_name_on_docker_compose \
       --container-port exposed_port

Pour le déploiement final à l'aide de GitHub Action, consultez Repository (https://github.com/icoxfog417/executive_button/blob/master/.github/workflows/dockerimage.yml).

Classement de la rémunération des officiers

Eh bien, dites-moi simplement quelles entreprises obtiennent beaucoup! J'ai fait le top 10 pour ceux qui disent. De toutes les entreprises de 1944 pour lesquelles une compensation était disponible, les entreprises suivantes ont la compensation par habitant la plus élevée.

image.png

Si vous travaillez pendant 10 millions d'années chez Tokyo Electron Co., Ltd., vous obtiendrez 5 000 milliards de yens! (Le calcul est-il correct?). Toutes les données de l'entreprise sont dans le référentiel, alors jetez un œil.

Recommended Posts

1 Cliquez pour devenir un bouton exécutif
J'ai essayé de devenir un Ann Man en utilisant OpenCV
Introduction à Private TensorFlow
Une introduction à l'apprentissage automatique
AtCoder Pour devenir bleu clair
Une introduction à la programmation Python
Introduction à l'optimisation bayésienne
Déguisez l'herbe sur GitHub et essayez de devenir ingénieur.