Le SDK Infrastructure as Code de Pulumi est le moyen le plus simple de créer et de déployer une infrastructure, de n'importe quelle architecture et sur n'importe quel cloud, en utilisant des langages de programmation que vous connaissez et aimez déjà. Codez et expédiez l'infrastructure plus rapidement avec vos langages et outils préférés, et intégrez IaC n'importe où avec l'API Automation.
Écrivez simplement du code dans votre langage préféré et Pulumi provisionne et gère automatiquement vos ressources sur AWS, Azure, Google Cloud Platform, Kubernetes et plus de 120 fournisseurs en utilisant une approche d'infrastructure en tant que code. Évitez le YAML et utilisez les fonctionnalités du langage standard telles que les boucles, les fonctions, les classes et la gestion des packages que vous connaissez et aimez déjà.
Par exemple, créez trois serveurs Web :
const aws = require("@pulumi/aws");const sg = new aws.ec2.SecurityGroup("web-sg", {ingress : [{ protocole : "tcp", fromPort : 80, toPort : 80, cidrBlocks : ["0.0.0.0/0"] }],});for (soit i = 0; i < 3; i++) {new aws.ec2.Instance(`web-${i}`, {ami : "ami -7172b611",instanceType : "t2.micro",vpcSecurityGroupIds : [sg.id],userData : `#!/bin/bash echo "Hello, World!" > index.html nohup python -m SimpleHTTPServer 80 &`,} );}
Ou une simple minuterie sans serveur qui archive Hacker News tous les jours à 8h30 :
const aws = require("@pulumi/aws");const snapshots = new aws.dynamodb.Table("snapshots", {attributes: [{ name: "id", type: "S", }],hashKey: " id", billingMode : "PAY_PER_REQUEST",});aws.cloudwatch.onSchedule("daily-yc-snapshot", "cron(30 8 * * ? *)", () => {require("https"). get("https://news.ycombinator.com", res => {let content = "";res.setEncoding("utf8");res.on("data", chunk => content += chunk); res.on("end", () => new aws.sdk.DynamoDB.DocumentClient().put({TableName : snapshots.name.get(),Item : { date : Date.now(), content }, }).promise());}).end();});
De nombreux exemples sont disponibles, couvrant les conteneurs, le sans serveur et l'infrastructure dans pulumi/examples.
Pulumi est open source sous licence Apache 2.0, prend en charge de nombreux langages et cloud et est facile à étendre. Ce dépôt contient la CLI pulumi
, les SDK de langage et le moteur Pulumi principal, et les bibliothèques individuelles se trouvent dans leurs propres dépôts.
Premiers pas avec Pulumi : déployez une application simple dans AWS, Azure, Google Cloud ou Kubernetes à l'aide de Pulumi.
Apprendre : suivez les parcours d'apprentissage Pulumi pour apprendre les meilleures pratiques et les modèles architecturaux à travers des exemples authentiques.
Exemples : parcourez plusieurs exemples dans de nombreux langages, cloud et scénarios, notamment les conteneurs, le sans serveur et l'infrastructure.
Docs : Découvrez les concepts Pulumi, suivez les guides d'utilisation et consultez la documentation de référence.
Registre : Trouvez le package Pulumi avec les ressources dont vous avez besoin. Installez le package directement dans votre projet, parcourez la documentation de l'API et commencez à créer.
Pulumi ESC : Gestion et orchestration centralisées des secrets. Maîtrisez la prolifération des secrets et la complexité de la configuration en toute sécurité dans toutes vos infrastructures et applications cloud.
Feuille de route Pulumi : passez en revue les travaux prévus pour le trimestre à venir et une sélection de problèmes en suspens qui nous préoccupent mais qui ne sont pas encore programmés.
Community Slack : Rejoignez-nous dans Pulumi Community Slack. Toutes les conversations et questions sont les bienvenues.
Discussions GitHub : posez des questions ou partagez ce que vous construisez avec Pulumi.
Consultez le guide de démarrage pour démarrer rapidement avec Pulumi sur la plateforme et le cloud de votre choix.
Sinon, les étapes suivantes montrent comment déployer votre premier programme Pulumi, à l'aide d'AWS Serverless Lambdas, en quelques minutes :
Installer :
Pour installer la dernière version de Pulumi, exécutez ce qui suit (voir les instructions d'installation complètes pour les options d'installation supplémentaires) :
$ curl -fsSL https://get.pulumi.com/ | merde
Créer un projet :
Après l'installation, vous pouvez commencer avec la pulumi new
:
$ mkdir pulumi-démo && cd pulumi-démo $ pulumi nouveau bonjour-aws-javascript
La new
commande propose des modèles pour toutes les langues et tous les cloud. Exécutez-le sans argument et il vous proposera les projets disponibles. Cette commande a créé un projet AWS Serverless Lambda écrit en JavaScript.
Déployer sur le Cloud :
Exécutez pulumi up
pour transférer votre code vers le cloud :
$ pulumi vers le haut
Cela rend toutes les ressources cloud nécessaires pour exécuter votre code. Apportez simplement des modifications à votre projet, et pulumi up
suivants calculeront la différence minimale pour déployer vos modifications.
Utilisez votre programme :
Maintenant que votre code est déployé, vous pouvez interagir avec lui. Dans l'exemple ci-dessus, nous pouvons recourber le point final :
$ curl $ (URL de sortie de la pile Pulumi)
Accédez aux Logs :
Si vous utilisez des conteneurs ou des fonctions, la commande de journalisation unifiée de Pulumi affichera tous vos journaux :
$ journaux pulumi -f
Détruisez vos ressources :
Une fois que vous avez terminé, vous pouvez supprimer toutes les ressources créées par votre programme :
$ pulumi détruire -y
Pour en savoir plus, rendez-vous sur pulumi.com pour plus d'informations, notamment des didacticiels, des exemples et des détails sur les concepts de base de Pulumi CLI et du modèle de programmation.
Les Pulumi CLI v1 et v2 ne sont plus pris en charge. Si vous n'utilisez pas encore la v3, veuillez envisager de migrer vers la v3 pour continuer à bénéficier des dernières et meilleures nouveautés de Pulumi ! ?
Pour migrer de la v2 vers la v3, veuillez consulter notre Guide de migration v3.
Visitez le registre pour obtenir la liste complète des fournisseurs de cloud et d'infrastructure pris en charge.
Visitez CONTRIBUTING.md pour plus d'informations sur la création de Pulumi à partir des sources ou sur la contribution à des améliorations.