如何通过 SSH 编写 boto3 代码访问我的实例

How to access my instance through SSH writing boto3 code

用户数据 = user_data, SecurityGroupIds=[sg.group_id] )

对于 bucket_name 在 sys.argv[1:] 中: 尝试: 响应 = s3.create_bucket(Bucket=ec2-assignbuke2, CreateBucketConfiguration={'LocationConstraint': 'eu-west-1'}) 打印(响应) 除了作为错误的异常: 打印(错误)

打印(sg.group_id)


这是一个 boto3 脚本的示例,它在特定 VPC 中创建一个安全组,授权从端口 22 和 80 上的互联网进入,并在给定的 public 子网中启动 EC2 实例VPC.

import boto3

ec2 = boto3.resource("ec2", region_name="eu-west-1")

user_data = """#!/bin/bash
yum update -y
yum install httpd -y
systemctl enable httpd
systemctl start httpd"""

# TODO: configure these as needed
VPC_ID = 'vpc-1234'
SUBNET_ID = 'subnet-5678'
AMI_ID = 'ami-0fc970315c2d38f01'
KEYPAIR = 'AlexBpem'

sg = ec2.create_security_group(
    GroupName="MyWebServer", Description="WebServer", VpcId=VPC_ID
)

instance = ec2.create_instances(
    ImageId=AMI_ID,
    MinCount=1,
    MaxCount=1,
    InstanceType="t2.nano",
    KeyName=KEYPAIR,
    UserData=user_data,
    NetworkInterfaces=[
        {
            "SubnetId": SUBNET_ID,
            "DeviceIndex": 0,
            "AssociatePublicIpAddress": True,
            "Groups": [sg.group_id],
        }
    ],
)

response = sg.authorize_ingress(
    IpPermissions=[
        {
            "FromPort": 22,
            "ToPort": 22,
            "IpProtocol": "tcp",
            "IpRanges": [
                {"CidrIp": "0.0.0.0/0", "Description": "internet"},
            ],
        },
        {
            "FromPort": 80,
            "ToPort": 80,
            "IpProtocol": "tcp",
            "IpRanges": [
                {"CidrIp": "0.0.0.0/0", "Description": "internet"},
            ],
        },
    ],
)

如需更多帮助,请阅读 How To Create And Configure An AWS VPC With Python