以下是一个使用AWS SSM、Auto Scaling Group和负载均衡器的代码示例:
import boto3
# 创建SSM客户端
ssm_client = boto3.client('ssm')
# 存储配置参数
def put_parameter(parameter_name, parameter_value):
response = ssm_client.put_parameter(
Name=parameter_name,
Value=parameter_value,
Type='String',
Overwrite=True
)
return response
# 获取配置参数
def get_parameter(parameter_name):
response = ssm_client.get_parameter(
Name=parameter_name,
WithDecryption=False
)
value = response['Parameter']['Value']
return value
# 示例使用
parameter_name = '/myapp/config/database'
parameter_value = 'localhost'
put_parameter(parameter_name, parameter_value)
value = get_parameter(parameter_name)
print(value)
import boto3
# 创建Auto Scaling客户端
autoscaling_client = boto3.client('autoscaling')
# 创建Auto Scaling组
def create_auto_scaling_group(asg_name, min_size, max_size, desired_capacity, launch_template):
response = autoscaling_client.create_auto_scaling_group(
AutoScalingGroupName=asg_name,
MinSize=min_size,
MaxSize=max_size,
DesiredCapacity=desired_capacity,
LaunchTemplate=launch_template,
VPCZoneIdentifier='subnet-12345678' # 替换为你的子网ID
)
return response
# 示例使用
asg_name = 'my-asg'
min_size = 2
max_size = 5
desired_capacity = 2
launch_template = {
'LaunchTemplateId': 'lt-12345678', # 替换为你的启动模板ID
'Version': '$Latest'
}
response = create_auto_scaling_group(asg_name, min_size, max_size, desired_capacity, launch_template)
print(response)
import boto3
# 创建Elastic Load Balancer客户端
elb_client = boto3.client('elbv2')
# 创建负载均衡器
def create_load_balancer(lb_name, subnets, security_groups):
response = elb_client.create_load_balancer(
Name=lb_name,
Subnets=subnets,
SecurityGroups=security_groups,
Type='application',
Scheme='internet-facing'
)
return response
# 将目标组与负载均衡器关联
def register_targets(target_group_arn, targets):
response = elb_client.register_targets(
TargetGroupArn=target_group_arn,
Targets=targets
)
return response
# 创建监听器
def create_listener(load_balancer_arn, port, target_group_arn):
response = elb_client.create_listener(
LoadBalancerArn=load_balancer_arn,
Protocol='HTTP',
Port=port,
DefaultActions=[
{
'Type': 'forward',
'TargetGroupArn': target_group_arn
}
]
)
return response
# 示例使用
lb_name = 'my-lb'
subnets = ['subnet-12345678', 'subnet-87654321'] # 替换为你的子网ID
security_groups = ['sg-12345678'] # 替换为你的安全组ID
response = create_load_balancer(lb_name, subnets, security_groups)
print(response)
target_group_arn = 'arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-target-group/1234567890' # 替换为你的目标组ARN
targets = [
{
'Id': 'i-12345678', # 替换为你的实例ID
'Port': 8080
}
]
response = register_targets(target_group_arn, targets)
print(response)
load_balancer_arn = response['LoadBalancerArn']
port = 80
response = create_listener(load_balancer_arn, port, target_group_arn)
print(response)
请注意,以上代码示例仅为参考,实际使用时需要根据你的具体情况进行适当的修改和配置。