9. @Xebiconfr #Xebicon18
Google utilise gVisor
9
“gVisor provides a strong isolation
boundary by intercepting
application system calls and acting
as a guest kernel, all while running
entirely in user-space.”
10. @Xebiconfr #Xebicon18
2 grands types de Cloud Functions
●HTTP Functions
○ trigger HTTP
●Background Functions
○ sources de trigger:
■ Pub/Sub
■ Cloud Storage
■ Firebase
10
12. @Xebiconfr #Xebicon18
Exemple de code
12
Fonction déclenchée par HTTP (Node 8)
Le model pour la request et la response est basé le framework “Express”
https://expressjs.com/en/api.html
18. @Xebiconfr #Xebicon18
Le concept
18
Votre but:
Envoyer de commande de
déplacement à votre drone pour
qu’il aille chercher un paquet
puis une autre commande pour
qu’il parte le livrer
19. @Xebiconfr #Xebicon18
Le concept
19
Votre but:
Envoyer une commande de
déplacement à votre drone pour
qu’il aille chercher un paquet
puis une autre commande pour
qu’il parte le livrer
et ainsi de suite !
21. @Xebiconfr #Xebicon18
Différents types de paquet disponibles
21
CLASSIC : chaque livraison effectuée
vous fera gagner des points (50, 100 ou
200).
SPEED_BOOST : paquet spécial, il
rendra votre drone plus rapide à
chaque fois que vous en prendrez un.
22. @Xebiconfr #Xebicon18
Le fonctionnement global
22
Projet du moteur de jeux “drone challenge” Votre Projet
Cloud
Function
Cloud
Pub/Sub
1
Moteur du jeux
“drone challenge”
POST HTTP avec les
données temps réel du drone.
Cloud Function HTTP qui
reçoit les données du drones
et prend la décision de la
commande à donner au drone.
Push vers topic Pub/Sub
afin de transmettre la
commande au drone.
2
1
3
2
3
23. @Xebiconfr #Xebicon18 23
Les 2 événements envoyés par votre drone
à votre Cloud Function
WAITING_FOR_COMMAND
MOVING
Le drone est
arrivé à
destination
- Votre Cloud Function reçoit un événement toutes les secondes.
- Au démarrage, lorsque votre Cloud Function commencera à recevoir des
événements ce sera WAITING_FOR_COMMAND
- Si votre Drone ne bouge pas alors ce sera WAITING_FOR_COMMAND toutes les
secondes
- Quand le drone bougera ce sera MOVING tant qu’il n’est pas arrivé à destination
Etat initial
27. @Xebiconfr #Xebicon18
Aller sur le projet de votre team
27
cliquez ici
Puis cherchez le projet
de votre team (le nom
d’une couleur)
Bien sélectionner
l’organisation XEBIA.FR
31. @Xebiconfr #Xebicon18 31
Ouvrir le “Code Editor”
Il se peut que vous rencontriez des pbs pour ouvrir “Code Editor”:
si tel est le cas essayez de fermer complètement/redémarrer
chrome … :’-/
33. @Xebiconfr #Xebicon18
1ere étape
33
Projet du moteur de jeux “drone challenge” Votre Projet
Moteur du jeux
“drone challenge”
Créer votre Cloud
Function HTTP qui recevra les
événements provenant du
drone
Faire un POST HTTP vers
une url du moteur du jeux
pour lui transmettre l’url de
votre Cloud Function vers
laquelle pousser les
événements de votre drone
2
1
1
2
36. @Xebiconfr #Xebicon18
Commande de déplacement à envoyer à votre drone
36
let command = {
teamId: droneEvent.teamId,
command: {
name: 'MOVE',
location: {
latitude: 48.867271697034234,
longitude: 2.273857921355812
},
}
};
37. @Xebiconfr #Xebicon18
Avant de commencer
Votre cloud function :
- est appelée environ toutes les
secondes
- ne reçoit que les événements de
votre drone
- faites une première version simple !
- et améliorez la ensuite
37