文章

使用 SDK 與 AWS 互動

使用 SDK 與 AWS 互動的指南

AWS SDK(軟件開發工具包)允許您使用各種編程語言(如 Python、Java、Node.js、C# 等)與 AWS 服務進行互動。通過 SDK,您可以將 AWS 的功能集成到您的應用程序中,以程序化的方式管理和操作 AWS 資源。

以下介紹如何使用 Python 和 Boto3(AWS SDK for Python)與 AWS 進行互動。Boto3 是最流行的 AWS SDK 之一,用於編寫腳本來自動化 AWS 服務。

1. 安裝 Boto3

首先,您需要在本地環境中安裝 Boto3。Boto3 通常通過 pip 來安裝。

1
pip install boto3

2. 設置 AWS 憑證

在使用 SDK 與 AWS 互動之前,您需要設置 AWS 憑證,這些憑證將允許 SDK 驗證您的 AWS 帳戶。

有多種方式可以設置 AWS 憑證:

  • 使用 aws configure 命令:這會將憑證存儲在 ~/.aws/credentials 文件中(Linux 和 macOS),或 C:\Users\USERNAME\.aws\credentials 文件中(Windows)。

  • 直接在代碼中設置:通過在代碼中傳遞憑證來設置(不建議將憑證硬編碼在代碼中)。

  • 使用環境變量:將憑證設置為環境變量,例如:

    1
    2
    
    export AWS_ACCESS_KEY_ID=your_access_key_id
    export AWS_SECRET_ACCESS_KEY=your_secret_access_key
    

3. 與 S3 進行互動

以下是使用 Boto3 與 S3 進行基本操作的示例。

導入 Boto3 並創建 S3 客戶端

1
2
3
4
import boto3

# 創建 S3 客戶端
s3 = boto3.client('s3')

列出所有 S3 存儲桶

1
2
3
4
5
6
response = s3.list_buckets()

# 列出所有存儲桶的名稱
print("Existing buckets:")
for bucket in response['Buckets']:
    print(f'  {bucket["Name"]}')

上傳文件到 S3 存儲桶

1
s3.upload_file('local_file.txt', 'my-bucket', 's3_file.txt')

從 S3 存儲桶下載文件

1
s3.download_file('my-bucket', 's3_file.txt', 'local_file.txt')

刪除 S3 存儲桶中的文件

1
s3.delete_object(Bucket='my-bucket', Key='s3_file.txt')

4. 與 EC2 進行互動

以下是使用 Boto3 與 EC2 進行基本操作的示例。

創建 EC2 客戶端

1
ec2 = boto3.client('ec2')

列出所有 EC2 實例

1
2
3
4
5
6
response = ec2.describe_instances()

for reservation in response['Reservations']:
    for instance in reservation['Instances']:
        print(f'Instance ID: {instance["InstanceId"]}')
        print(f'State: {instance["State"]["Name"]}')

啟動新的 EC2 實例

1
2
3
4
5
6
7
8
9
10
response = ec2.run_instances(
    ImageId='ami-12345678',
    MinCount=1,
    MaxCount=1,
    InstanceType='t2.micro',
    KeyName='your-key-pair'
)

instance_id = response['Instances'][0]['InstanceId']
print(f'Launched EC2 Instance with ID: {instance_id}')

停止 EC2 實例

1
2
ec2.stop_instances(InstanceIds=['i-1234567890abcdef0'])
print('Instance stopped')

終止 EC2 實例

1
2
ec2.terminate_instances(InstanceIds=['i-1234567890abcdef0'])
print('Instance terminated')

5. 與 IAM 進行互動

以下是使用 Boto3 與 IAM 進行基本操作的示例。

創建 IAM 客戶端

1
iam = boto3.client('iam')

列出所有 IAM 用戶

1
2
3
4
response = iam.list_users()

for user in response['Users']:
    print(f'Username: {user["UserName"]}')

創建新的 IAM 用戶

1
2
iam.create_user(UserName='newuser')
print('Created IAM user')

附加管理策略到 IAM 用戶

1
2
3
4
5
iam.attach_user_policy(
    UserName='newuser',
    PolicyArn='arn:aws:iam::aws:policy/AmazonS3FullAccess'
)
print('Attached policy to user')

刪除 IAM 用戶

1
2
iam.delete_user(UserName='newuser')
print('Deleted IAM user')

總結

使用 AWS SDK,如 Boto3,讓您可以在應用程序中方便地與 AWS 服務進行互動。這對於需要自動化 AWS 資源管理的開發者來說非常有用。通過這些基本示例,您可以了解如何開始使用 AWS SDK 來管理 AWS 資源。隨著您的需求增加,您還可以學習更多高級功能,如異步操作、資源過濾等。

本文章以 CC BY 4.0 授權