
Twitter API Key 的 OAuth 認(rèn)證與授權(quán)機(jī)制
pip install boto3
在 ~/.aws/credentials
中設(shè)置訪問憑證:
[default]
aws_access_key_id = YOUR_KEY_ID
aws_secret_access_key = YOUR_SECRET
region = us-west-2
import boto3
ec2 = boto3.client('ec2')
resp = ec2.describe_instances()
for r in resp['Reservations']:
for i in r['Instances']:
print(i['InstanceId'], i['State']['Name'], i['InstanceType'])
resp = ec2.run_instances(
ImageId='ami-0abcdef1234567890',
InstanceType='t3.micro',
MinCount=3, MaxCount=5, # 批量
KeyName='my-keypair'
)
ids = [inst['InstanceId'] for inst in resp['Instances']]
print("Created:", ids)
# 啟動(dòng)
ec2.start_instances(InstanceIds=ids)
# 停止
ec2.stop_instances(InstanceIds=ids)
# 重啟
ec2.reboot_instances(InstanceIds=ids)
# 終止
ec2.terminate_instances(InstanceIds=ids)
了解簽名過程,幫助排查底層問題:
curl "https://ec2.amazonaws.com/?Action=DescribeInstances&Version=2016-11-15
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Credential=YOUR_KEY/20250715/us-west-2/ec2/aws4_request
&X-Amz-Date=20250715T120000Z
&X-Amz-SignedHeaders=host
&X-Amz-Signature=..."
ec2.monitor_instances(InstanceIds=ids)
ec2.unmonitor_instances(InstanceIds=ids)
配合 CloudWatch 收集每分鐘指標(biāo),快速響應(yīng)。
provider "aws" { region = "us-west-2" }
resource "aws_instance" "app" {
ami = "ami-0abcdef1234567890"
instance_type = "t3.micro"
count = 3
}
terraform apply
一鍵應(yīng)用,terraform destroy
一鍵清理。
name: Deploy EC2
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Terraform Apply
uses: hashicorp/terraform-github-actions@v1
with:
tf_actions_working_dir: ./infra
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET }}
問題 | 解決方案 |
---|---|
API 調(diào)用限流 | 使用批量接口、加大調(diào)用間隔 |
并發(fā)啟動(dòng)實(shí)例失敗 | 控制并發(fā)度、捕獲異常重試 |
證書驗(yàn)證或簽名錯(cuò)誤 | 檢查系統(tǒng)時(shí)間、使用官方 SDK |
多區(qū)域管理復(fù)雜 | 使用 boto3.session.Session(region_name) |
本文全面覆蓋了 AWS EC2 API 的多種調(diào)用方式與自動(dòng)化管理實(shí)戰(zhàn):
立即動(dòng)手,用 EC2 API 自動(dòng)化實(shí)例管理,大幅提升云運(yùn)維效率與可靠性!