AWS Lambda propose des demandes gratuites de 1M par mois dans le cadre de leur niveau "Toujours libre". Cela ressemble à beaucoup pour moi, mais il est en principe que quelqu'un puisse essayer de marteler mon service AWS (par exemple une attaque de déni de service, ou je viens de devenir beaucoup populaire que je ne le pensais). P>
Le service que je consomme n'est pas de mission critique, je voudrais donc désactiver automatiquement ma passerelle API, enlevant mon API, si je suis sur le point de passer sur la limite de niveau libre. P>
est-ce possible? Si oui, comment? P>
4 Réponses :
Vous pouvez définir des limites de simultanément pour vos fonctions Lambda afin qu'il soit difficile de passer des limites. Voir
Il y a 2,7 m secondes par mois. Même la limite de la concurrence 1 me laisserait toujours souffler devant le niveau libre.
Vous pouvez construire une solution simple à tirer parti des métriques de cloudwatch et des alarmes. P>
Les invocations de la fonction Lambda sont enregistrées en tant que métriques . Vous pouvez utiliser Alarmes CloudWatch pour augmenter une alarme lorsque le numéro des invocations dépassées x (peut-être sur un intervalle de temps). Demandez à la notification d'alarme envoyée à un sujet SNS, à laquelle une autre fonction Lambda est abonnée. Cette fonction 2ND Lambda peut déduire le nom ou l'ARN de la fonction Lambda déclenchant l'alarme et déconnecter la Lambda à partir de sa gâchette ou de désactiver une désactivation (éventuellement) la fonction Lambda. P>
Le AWS GRATUIT Tier comprend: P>
Cela donne une utilisation mensuelle gratuite de: 0,20 $ + 6,66 $ = 6,86 $ strong> p>
De nombreuses entreprises constatent que leur utilisation de la production de Lambda convient à cette quantité d'utilisation. P>
Par conséquent, à moins que vous n'exécutez de lourdes charges de travail, je ne vous recommanderais pas de dépenser trop de temps à vous inquiéter de passer des montants de niveau libre pour AWS Lambda. Si vous le faites, ignorez simplement votre prochaine visite à Starbucks. P>
Vous pouvez utiliser des API de coût Explorer et être spécifique à cet API - https://docs.aws.amazon.com/aws-cost-management/latest/apireence/api_getcostandUser.html
Appelez enfin l'API enfin dans votre code Lambda, vérifiez et si le Utilisation croisée Le seuil Appelez cette API ( HTTPS: / /docs.aws.amazon.com/aployway/api-reference/link-relation/stage-update/ ) Pour supprimer la phase d'invoquer l'URL. P>
De cette façon, vous ne supprimez pas Toute ressource mais supprimer l'accès public. P>
Autres moyens de désactiver API après avoir vérifié les métriques d'utilisation - 1 - Mettre à jour la politique des ressources de l'API pour bloquer l'accès public 2 - Supprimer l'API complète 3 - Supprimer les intégrations P>
CLI Exemple - AWS CE Get-Coûts-COÛT-EUMIÈRES-PIÈCES DE START = 2020-03-01, FIN = 2020-03-31 - Granularité mensuelle --metrics "blendedcost" "IndongedCost" "USAGEquantitity" - GROUP-BY TYPE = DIMENSION, touche = Type de service = tag, touche = environnement - fichier fichier: //t.json code> p> p> < p> t.json p>
Vous ne voulez pas vraiment "mettre fin à mes fonctions Lambda" car ils couraient souvent moins d'une seconde. Vous pouvez plutôt envisager de désactiver la passerelle API.
Bon point. J'ai mis à jour ma question à clarifier.