โครงสร้างพื้นฐานของ Pulumi ในรูปแบบ Code SDK เป็นวิธีที่ง่ายที่สุดในการสร้างและปรับใช้โครงสร้างพื้นฐานของสถาปัตยกรรมและบนคลาวด์ใดๆ โดยใช้ภาษาการเขียนโปรแกรมที่คุณรู้จักและชื่นชอบอยู่แล้ว เขียนโค้ดและจัดส่งโครงสร้างพื้นฐานได้เร็วขึ้นด้วยภาษาและเครื่องมือที่คุณชื่นชอบ และฝัง IaC ได้ทุกที่ด้วย Automation API
เพียงเขียนโค้ดในภาษาที่คุณชื่นชอบ จากนั้น Pulumi จะจัดเตรียมและจัดการทรัพยากรของคุณบน AWS, Azure, Google Cloud Platform, Kubernetes และผู้ให้บริการกว่า 120 รายโดยอัตโนมัติโดยใช้แนวทางโครงสร้างพื้นฐานตามโค้ด ข้าม YAML และใช้ฟีเจอร์ภาษามาตรฐาน เช่น ลูป ฟังก์ชัน คลาส และการจัดการแพ็กเกจที่คุณรู้จักและชื่นชอบอยู่แล้ว
ตัวอย่างเช่น สร้างเว็บเซิร์ฟเวอร์สามแห่ง:
const aws = need("@pulumi/aws");const sg = new aws.ec2.SecurityGroup("web-sg", {ingress: [{ โปรโตคอล: "tcp", fromPort: 80, toPort: 80, cidrBlocks: ["0.0.0.0/0"] }],});สำหรับ (ให้ i = 0; i < 3; i++) {ใหม่ aws.ec2.Instance(`web-${i}`, {ami: "ami -7172b611",instanceType: "t2.micro",vpcSecurityGroupIds: [sg.id],ข้อมูลผู้ใช้: `#!/bin/bash echo "Hello, World!" > index.html nohup python -m SimpleHTTPServer 80 &`,} );}
หรือตัวจับเวลาแบบไร้เซิร์ฟเวอร์แบบธรรมดาที่จะเก็บ Hacker News ทุกวันเวลา 8.30 น.:
const aws = need("@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 }, }).สัญญา());}).สิ้นสุด();});
มีตัวอย่างมากมายให้เลือกใช้ซึ่งครอบคลุมคอนเทนเนอร์ แบบไร้เซิร์ฟเวอร์ และโครงสร้างพื้นฐานใน pulumi/ตัวอย่าง
Pulumi เป็นโอเพ่นซอร์สภายใต้ลิขสิทธิ์ Apache 2.0 รองรับหลายภาษาและคลาวด์ และขยายได้ง่าย Repo นี้ประกอบด้วย pulumi
CLI, SDK ภาษา และกลไก Pulumi หลัก และแต่ละไลบรารีก็อยู่ใน Repos ของตัวเอง
เริ่มต้นใช้งาน Pulumi : ปรับใช้แอปพลิเคชันง่ายๆ ใน AWS, Azure, Google Cloud หรือ Kubernetes โดยใช้ Pulumi
เรียนรู้ : ปฏิบัติตามเส้นทางการเรียนรู้ของ Pulumi เพื่อเรียนรู้แนวทางปฏิบัติที่ดีที่สุดและรูปแบบสถาปัตยกรรมผ่านตัวอย่างที่แท้จริง
ตัวอย่าง : เรียกดูตัวอย่างต่างๆ ในภาษา คลาวด์ และสถานการณ์ต่างๆ มากมาย รวมถึงคอนเทนเนอร์ ไร้เซิร์ฟเวอร์ และโครงสร้างพื้นฐาน
เอกสาร : เรียนรู้เกี่ยวกับแนวคิด Pulumi ปฏิบัติตามคู่มือผู้ใช้ และอ่านเอกสารอ้างอิง
Registry : ค้นหาแพ็คเกจ Pulumi พร้อมทรัพยากรที่คุณต้องการ ติดตั้งแพ็คเกจลงในโปรเจ็กต์ของคุณโดยตรง เรียกดูเอกสาร API และเริ่มสร้าง
Pulumi ESC : การจัดการและเรียบเรียงความลับแบบรวมศูนย์ เชื่องความลับที่ขยายออกไปและความซับซ้อนในการกำหนดค่าอย่างปลอดภัยในโครงสร้างพื้นฐานคลาวด์และแอปพลิเคชันทั้งหมดของคุณ
แผนงาน Pulumi : ทบทวนงานที่วางแผนไว้สำหรับไตรมาสที่กำลังจะมาถึงและปัญหาที่ค้างอยู่ในใจของเราแต่ยังไม่ได้กำหนดไว้
Community Slack : เข้าร่วมกับเราใน Pulumi Community Slack ยินดีรับฟังทุกการสนทนาและคำถาม
การสนทนา GitHub : ถามคำถามหรือแบ่งปันสิ่งที่คุณกำลังสร้างกับ Pulumi
ดูคู่มือเริ่มต้นใช้งานเพื่อเริ่มต้นใช้งาน Pulumi บนแพลตฟอร์มและคลาวด์ที่คุณเลือกอย่างรวดเร็ว
มิฉะนั้น ขั้นตอนต่อไปนี้สาธิตวิธีการปรับใช้โปรแกรม Pulumi แรกของคุณโดยใช้ AWS Serverless Lambdas ภายในไม่กี่นาที:
ติดตั้ง :
หากต้องการติดตั้ง Pulumi รุ่นล่าสุด ให้รันสิ่งต่อไปนี้ (ดูคำแนะนำการติดตั้งแบบเต็มสำหรับตัวเลือกการติดตั้งเพิ่มเติม):
$ curl -fsSL https://get.pulumi.com/ | ซ
สร้างโครงการ :
หลังจากติดตั้งแล้ว คุณสามารถเริ่มต้นใช้งานคำสั่ง pulumi new
ได้:
$ mkdir pulumi-demo && cd pulumi-demo $ pulumi ใหม่ hello-aws-javascript
คำสั่ง new
เสนอเทมเพลตสำหรับทุกภาษาและคลาวด์ เรียกใช้โดยไม่มีข้อโต้แย้งและจะแจ้งให้คุณทราบถึงโปรเจ็กต์ที่มีอยู่ คำสั่งนี้สร้างโปรเจ็กต์ AWS Serverless Lambda ที่เขียนด้วย JavaScript
ปรับใช้กับคลาวด์ :
เรียกใช้ pulumi up
เพื่อรับโค้ดของคุณไปยังคลาวด์:
$ ปูลูมิขึ้น
ทำให้ทรัพยากรระบบคลาวด์ทั้งหมดที่จำเป็นในการรันโค้ดของคุณ เพียงทำการแก้ไขโปรเจ็กต์ของคุณ จากนั้น pulumi up
s ต่อมาจะคำนวณค่าความแตกต่างขั้นต่ำเพื่อปรับใช้การเปลี่ยนแปลงของคุณ
ใช้โปรแกรมของคุณ :
เมื่อโค้ดของคุณถูกปรับใช้แล้ว คุณสามารถโต้ตอบกับโค้ดได้ ในตัวอย่างข้างต้น เราสามารถทำให้จุดสิ้นสุดโค้งงอได้:
$ curl $ (URL เอาต์พุตสแต็ก pulumi)
เข้าถึงบันทึก :
หากคุณใช้คอนเทนเนอร์หรือฟังก์ชัน คำสั่งการบันทึกแบบรวมของ Pulumi จะแสดงบันทึกทั้งหมดของคุณ:
$ บันทึก pulumi -f
ทำลายทรัพยากรของคุณ :
หลังจากเสร็จสิ้น คุณสามารถลบทรัพยากรทั้งหมดที่สร้างโดยโปรแกรมของคุณ:
$ pulumi ทำลาย -y
หากต้องการเรียนรู้เพิ่มเติม ไปที่ pulumi.com เพื่อดูข้อมูลเพิ่มเติม รวมถึงบทช่วยสอน ตัวอย่าง และรายละเอียดของ Pulumi CLI หลักและแนวคิดโมเดลการเขียนโปรแกรม
ไม่รองรับ Pulumi CLI v1 และ v2 อีกต่อไป หากคุณยังไม่ได้ใช้งาน v3 โปรดพิจารณาย้ายไปยัง v3 เพื่อรับ Pulumi ใหม่ล่าสุดและดีที่สุดต่อไป! -
หากต้องการย้ายจากเวอร์ชัน 2 เป็นเวอร์ชัน 3 โปรดดูคู่มือการย้ายเวอร์ชัน 3 ของเรา
ไปที่ Registry เพื่อดูรายชื่อผู้ให้บริการคลาวด์และโครงสร้างพื้นฐานที่รองรับทั้งหมด
ไปที่ CONTRIBUTING.md เพื่อดูข้อมูลเกี่ยวกับการสร้าง Pulumi จากแหล่งที่มาหรือการปรับปรุงที่มีส่วนร่วม