### pulumi、localstack、awscli/awscli-local 這些工具個別是做什麼用的?它們之間的關係? - pulumi:讓你用熟悉的程式語言(TypeScript, Python, Go, C#...)來宣告和建立雲端基礎設施。例如: ```typescript import * as aws from "@pulumi/aws"; const bucket = new aws.s3.Bucket("my-bucket"); ``` 這樣就會建立一個 AWS S3 bucket。 - localstack:模擬 AWS 的服務(像是 S3、Lambda、DynamoDB、API Gateway…),讓你在本機端不用連真實的 AWS 就能測試,如果你: - 開發時不想一直燒 AWS 費用。 - 想要離線開發 - 想要測試 CI/CD - awscli/awscli-local - aws:官方的 AWS Command Line Interface。 ```bash aws s3 ls aws lambda invoke ... ``` - awscli:是 LocalStack 的 wrapper,方便你在本機呼叫 LocalStack 而不是呼叫真實 AWS。 --- ### localstack 的安裝與使用 #### 安裝 ```bash pip install localstack # uv tool install localstack ``` #### 啟動 ```bash localstack start -d ``` #### 停止運行 ```bash localstack stop ``` ### 安裝 awscli/awscli-local ```bash # 安裝前要先安裝 awscli-local: # - brew install awscli pip install awscli-local ``` ### pulumi 的安裝與使用 #### 安裝 ```bash brew install pulumi ``` #### 登入 ```bash pulumi login --local ``` #### 初始化專案 ```bash mkdir your-project-directory cd your-project-directory pulumi new aws-typescript # aws-typescript 不是專案名稱,而是 「aws+typescript」這樣的一套 preset ``` > 初始化後會看到 Pulumi、Pulumi-dev 等 yaml。其中,Pulumi 是在不同 stack 間共享的,而 Pulumi-dev 是承載 Pulumi 後,再加上一些改寫(類似 docker-compose.local.yaml)。 #### 查看目前的 stack ```bash pulumi stack ``` #### 切換 stack 其實 stack 舊類似 kubectl 的 context。 ```bash pulumi stack select local # 假設 stack 叫 local ``` #### 新增 stack ```bash pulumi stack init prod ``` #### 刪除 stack ```bash # 記得先 pulumi destroy pulumi stack rm local # 切換到別的 stack 後就能刪除它 ``` #### 部署 部署會執行你的 pulumi 腳本(譬如 index.ts),執行後會對照目前的狀態和預期的狀態,如果不符合預期的狀態則會透過 provider 進行更新。 ```bash pulumi up ``` #### 撤銷 ```bash pulumi destroy ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up