[PYTHON] Je crée mon propre cli aws

Je crée mon propre cli aws. Je pense à utiliser l'API pour comprendre le contenu d'AWS. J'utilise boto3 de Python. C'est aussi une pratique Python. Je ne sais pas si c'est à cause de cela, mais il est beaucoup plus facile de toucher AWS qu'avant.

L'outil auto-conçu se spécialise dans la navigation dans les ressources AWS et vise à être utilisé sans regarder l'aide une par une.

Ce que vous ressentez avec aws cli

Vous pouvez voir comment utiliser aws cli en consultant l'aide, mais vous devez consulter l'aide pour chaque sous-commande. Il existe également des sous-commandes avec un grand nombre de paramètres, il est donc difficile de taper des commandes tout en regardant l'aide. Il est difficile de taper une commande aussi longue.

#Exemples de très longues commandes non mémorisées
$ aws cloudwatch get-metric-statistics --namespace AWS/Lambda --metric-name Duration \
  --dimensions 'Name=FunctionName,Value=xxxx' --start-time ... ... ...

Est-ce que je pourrai le faire une fois que je m'y serai habitué? Cela correspond directement à l'API, ce serait donc bien si vous connaissiez l'API.

C'est le moyen d'accéder à cette longue commande.

#Trouvez l'API cloudwatch
$ aws cloudwatch help

#J'ai trouvé quelque chose comme ça. avoir-metric-statistiques

$ aws cloudwatch get-metric-statistics help

#Il est difficile d'avoir beaucoup de paramètres ...
#Quel type de format est la date et l'heure?
#Comment écrivez-vous la période
#Googler beaucoup

$ aws cloudwatch get-metric-statistics --namespace AWS/Lambda --metric-name Duration --start-time xxxx --end-time xxxx --period xxxx
At least one of the parameters Statistics and ExtendedStatistics must be specified.

#Hein, n'y a-t-il pas un paramètre obligatoire?
#Voir à nouveau l'aide sur la manière de spécifier des statistiques
$ aws cloudwatch get-metric-statistics help

$ aws cloudwatch get-metric-statistics --namespace AWS/Lambda --metric-name Duration --start-time xxxx --end-time xxxx --period xxxx --statistics xxxx
#Je l'ai finalement fini
#Mais je veux vraiment spécifier la dimension aussi. Comment écrire

Ce que vous visez avec vos propres outils

C'est le cas de mes propres outils.

#Je veux voir les métriques de lambda, donc premier type lambda
# (Trace de cloudwatch)
$ boto3 lambda
functions
layers

#Si cela ressemble à ceci, sélectionnez ce que vous voulez voir, ajoutez-le aux paramètres et réexécutez.
#Puisque les métriques que vous voulez voir sont liées à des fonctions, sélectionnez des fonctions cette fois.

$ boto3 lambda functions
xxxx
yyyy

#Une liste de fonctions apparaîtra, alors sélectionnez la fonction que vous souhaitez voir.

$ boto3 lambda functions xxxx
code
configuration
metrics

#Choisissez ce que vous voulez voir à partir de ce

$ boto3 lambda functions xxxx metrics
duration
errors
invocations
throttles

#Choisissez ce que vous voulez voir à partir de ce

$ boto3 lambda functions xxxx metrics duration
# see-also: aws cloudwatch get-metric-statistics --namespace AWS/Lambda --metric-name Duration --dimensions Name=FunctionName,Value=xxxx --start-time 2019-10-10T13:03:00 --end-time 2019-10-11T13:03:00 --period 60 --statistics Average --output text
2019-10-10T13:03:00+00:00 1713.59 Milliseconds
2019-10-10T13:04:00+00:00 1736.76 Milliseconds
...

#J'ai vu ce que je voulais voir.

Si vous souhaitez modifier les paramètres détaillés et voir les détails, vous pouvez accéder au cli aws original affiché par # see-also: ci-dessus. Tous les paramètres nécessaires pour le cli aws original sont disponibles, il est donc facile de jouer avec eux.

c'est tout.

Recommended Posts

Je crée mon propre cli aws
J'ai fait ma propre langue. (1)
J'ai fait ma propre langue (2)
J'ai fait ma propre AML
J'ai créé ma propre bibliothèque Python
[J'ai essayé d'utiliser Pythonista 3] Importation de mon propre module
J'ai créé mon propre générateur de site statique primitif
J'ai créé mon propre robot de liaison parallèle (édition logicielle)
J'ai fait mon propre robot à liaison parallèle (édition mécanique)
Procédure d'installation de l'AWS CLI
J'ai essayé AWS CDK!
J'ai essayé AWS Iot
J'ai touché AWS Chalice
J'ai essayé de publier ma propre bibliothèque de baseball Python sur Packaging & PyPI