编程知识 cdmana.com

Démarrer avec le serveur de base zéro: Hello World

DeServerless,Dis bonjour au monde.

Contexte

Qu'est - ce queServerless

Depuis2006Année8Mois9Jour,GoogleDirecteur général Eric·Schmidt(Eric Schmidt)Au Congrès des moteurs de recherche(SESSanJose2006)Présenté pour la première fois"Informatique en nuage"(Cloud Computing)Après le concept de,Le développement de l'informatique en nuage peut être décrit en termes de changement rapide.Qu'est - ce queServerlessEt alors??

En termes simples,ServerlessUne architecture, pour ainsi dire,Un produit du développement de l'informatique en nuage,Quant à ce qu'estServerless,Peut - être que personne ne peut lui donner un concept clair,Si vous voulez dire un concept qui peut être un peu plus facile à comprendre,C'est peut - être une référence.Martin FowlerIn《Serverless Architectures》- Oui.ServerlessC'est la définition.:Serverless=BaaS + FaaS. image.png ServerlessDifférences entre l'architecture et les projets traditionnels

Tout d'abord,,Nous utilisons unWebExemple de service: image.png Dans cette image,Les règles de routage peuvent être impliquées dans le serveur、Logique d'authentification et autres codes d'affaires complexes.En même temps,L'équipe de développement doit consacrer beaucoup d'efforts à l'exploitation et à la maintenance de ce serveur.,Par exemple, restez concentré sur les questions suivantes:

Si le serveur doit être agrandi en cas d'augmentation soudaine du nombre de clients. Si les scripts et le Code d'affaires sur le serveur fonctionnent toujours correctement. Y a - t - il des hackers qui attaquent constamment le serveur?.

Quand nous changeons cette penséeServerlessAprès la logique,C'est comme ça.: image.png Peut être considéré comme,Lorsque le client et la base de données ne changent pas,Les serveurs changent énormément.

Le module d'acheminement et le module d'authentification qui doivent être maintenus par l'équipe de développement seront accessibles au fournisseur de services.APISystème de passerelle et système d'authentification,L'équipe de développement n'a pas besoin de maintenir ces deux parties du Code d'entreprise,Il suffit de maintenir les règles pertinentes en permanence.

Sous cette structure,Le Code d'affaires est également divisé en granularité fonctionnelle,Différentes fonctions représentent différentes fonctions.

Nous n'avons pas vu l'existence du serveur,Parce queServerlessL'objectif est de permettre aux utilisateurs de se concentrer uniquement sur leur propre logique d'entreprise.,Donc une partie du problème de sécurité、Problèmes d'ordonnancement des ressources(Par exemple, le nombre d'utilisateurs augmente considérablement、Comment réaliser l'expansion automatique de la capacité, etc.)Tout est sous la responsabilité du fournisseur de Cloud.

Par rapport aux projets traditionnels,Projets traditionnels avec ou sans accès utilisateur,Tous les services sont en cours d'exécution,C'est un coût.,EtServerlessEn termes,Seulement lorsqu'il est utilisé pour lancer une demande,La fonction est activée et exécutée,Et facturera en fonction de la quantité,Relativement parlant, il peut être supporté quand il y a du trafic,Pas de dépenses sans flux,En termes relatifs,Les coûts seront encore réduits.

Par l'analyse et la description ci - dessus,C'est facile à voir.ServerlessLa différence entre l'architecture et le modèle de développement traditionnel,Et a progressivement découvert ses avantages.Mais la question se pose.,Beaucoup de travail a été confié aux fournisseurs de Cloud,Qu'est - ce qu'on fait?? image.png UtiliserServerlessAvantages de l'architecture

D'après ce qui précède, il n'est pas difficile de voir,Par rapport aux projets traditionnels,ServerlessAvantages suivants:

Vous n'avez pas besoin d'acheter et de gérer des infrastructures telles que des serveurs,Faible coût d'exploitation et d'entretien. Vous n'avez qu'à vous concentrer sur le développement de la logique d'entreprise,Conception d'un langage de développement supporté par l'informatique fonctionnelle、Optimisation、Tests、Vérifier et télécharger votre propre code d'application. Déclenche l'application pour répondre aux demandes des utilisateurs d'une manière axée sur l'événement.Stockage d'objets alicloudOSS、APIPasserelle、Services de journalisation et de stockage de formulaires,Aide à construire rapidement des applications.Par exemple,AdoptionOSSRésoudre les problèmes de stockage d'images et de vidéos,Quand de nouvelles données sont écrites à votreOSSRessources,Fonction de déclenchement automatique pour le traitement des données. Fournir une requête de journal、Dépannage rapide des fonctions de surveillance des performances et d'alarme. Échelle élastique de niveau milliseconde,Expansion rapide du sous - sol pour faire face aux pressions de pointe. À la demande,Prise en charge des frais de niveau 100 MS.Il suffit de payer pour les ressources informatiques réellement utilisées,Convient aux scénarios d'accès des utilisateurs avec des pics et des vallées évidents.

En résumé,ServerlessEst développé sur la technologie traditionnelle des conteneurs et la grille de service,Il s'agit plus d'une combinaison de services d'arrière - plan et de services fonctionnels..Pour les développeurs,Capacité de se concentrer davantage sur les services fonctionnels,Mettre davantage l'accent sur le fait que les utilisateurs se concentrent uniquement sur leur propre logique d'entreprise.

En même temps,ServerlessC'est aussi le résultat inévitable du développement de l'informatique en nuage à un certain stade..En tant que technologie inclusive,Les objectifs du développement de l'informatique en nuage doivent être les produits de la technologie verte et de la technologie de masse.------EtServerlessC'est une bonne interprétation.:Maximiser l'utilisation des ressources、Réduire le gaspillage des ressources inutilisées;Réduire les coûts d'apprentissage et d'utilisation.

ServerlessL'architecture est appelée"A vraiment atteint l'objectif initial de l'informatique en nuage",C'est un peu exagéré.,Mais d'un autre côté, ils ont montré queServerlessAttentes et confiance dans l'architecture.Depuis2012Depuis sa création,ServerlessL'architecture aussi.7Année,En train de mûrir.

Ouvrir et entrer dans alicloudServerlessProduits

1.Via la page d'accueil d'alicloud,Trouver"Produits"->"Calcul élastique"->"Serverless"->"Calcul de la fonctionFC" image.png
2.Cliquez pour entrer le calcul de la fonctionFCPage de image.png
3. Cliquez sur le bouton gérer la console,Et enregistrer le compte/Débarquement image.png
4.Ouverture du Service de calcul de la fonction pour la première fois,Protocole à lire,Et d'accord.(Cliquez sur1Boîte de sélection dans),Puis cliquez sur Ouvrir maintenant dans le coin inférieur droit
5.Après être entré dans la console,Si le coin supérieur droit a“Découvrez la nouvelle console”Boutons,Veuillez cliquer sur ce bouton,S'il n'y a pas de bouton,Vous pouvez sauter cette étape image.png

Créer des services et des fonctions

1.Après avoir sélectionné les services et les fonctions à gauche,Le service peut être créé en premier image.png 2. Rappel par page,Définir le nom du Service,Les informations descriptives peuvent ensuite être remplies de façon sélective.、Service de journalisation et suivi des liens activés,Cliquez sur OK. image.png 3. Après la création du Service,Vous pouvez créer des fonctions image.png 4. Il nous faut un nom de fonction scorpion.,Choisissez un environnement de programmation familier,Et définir une spécification de mémoire,Enfin, cliquez sur créer image.png 5. Une fois créé, vous pouvez le faire dans la zone de code,Écrire le Code,Par exemple, par défautHello World

# -*- coding: utf-8 -*-
import logging

# To enable the initializer feature (https://help.aliyun.com/document_detail/158208.html)
# please implement the initializer function as below:
# def initializer(context):
#   logger = logging.getLogger()
#   logger.info('initializing')

def handler(event, context):
  logger = logging.getLogger()
  logger.info('hello world')
  return 'hello world'

6.Après un changement de code,Le système avertit,Nous devons déployer le Code image.png 7. Après le déploiement du Code,Nous pouvons tester la fonction image.png Une fois le test terminé,Vous pouvez voir le résultat finalreturnSera affiché comme résultat de retour,Intermédiairelogger.infoSera affiché comme sortie de journal

Créer unHello World

Dans le processus,Nous avons créé un cas où une fonction est déclenchée par un autre déclencheur,Nous pouvons maintenant créer unHTTPCas de demande de fonction de déclenchement.

Quelques points à noter à ce stade:

Qu'est - ce qu'un déclencheur:https://help.aliyun.com/document_detail/53102.html Qu'est - ce queHTTPDéclencheur:https://help.aliyun.com/document_detail/71229.html

Créer une nouvelle fonction,Et quand vous créez une fonction,Sélectionner“AdoptionHTTPDéclenchement de la demande” image.png 2. Après la création,Contrairement au Code que je viens de lire,,C'estHttpLe Code déclenché contientHttpInformations sur

# -*- coding: utf-8 -*-

import logging
HELLO_WORLD = b'Hello world!\n'

# To enable the initializer feature (https://help.aliyun.com/document_detail/158208.html)
# please implement the initializer function as below:
# def initializer(context):
#    logger = logging.getLogger()  
#    logger.info('initializing')


def handler(environ, start_response):
    context = environ['fc.context']
    request_uri = environ['fc.request_uri']
    for k, v in environ.items():
      if k.startswith('HTTP_'):
        # process custom request headers
        pass
    # do something here
    status = '200 OK'
    response_headers = [('Content-type', 'text/plain')]
    start_response(status, response_headers)
    return [HELLO_WORLD]

Sur les languesHTTPLe cas de la méthode de déclenchement peut être référencé dans la documentation:https://help.aliyun.com/document_detail/71229.html#title-h8k-hhq-xiu

Il y a des liens de cas correspondants en bas du document: image.png 3. Après la création de la fonction d'achèvement,Nous pouvons faire une vue de déclenchement image.png 4. Je vois.,Un autre sous cette fonctionHTTPDéclencheur,Avec une adresse de demande,On peut passer parPOSTMANAttendre les outils,Tester cette adresse: image.png Instructions supplémentaires:Si vous ouvrez l'adresse demandée directement dans le Navigateur,La réponse sera téléchargée en pièce jointe.C'est parce que Http Les déclencheurs sont automatiquement ajoutés à l'en - tête de réponse Content-Disposition: attachment Champ.Les développeurs peuvent utiliser des noms de domaine personnalisés pour éviter ce problème.Personnaliser le document de nom de domaine:https://help.aliyun.com/document_detail/90759.html

Jusqu'à présent, nous avons terminé le calculHello WorldCAS

Plus d'expérience de scène àhttps://developer.aliyun.com/adc/labs/

版权声明
本文为[Alibaba Cloud Start Laboratory]所创,转载请带上原文链接,感谢
https://cdmana.com/2021/09/20210914162326892S.html

Scroll to Top