AWS Lambda DDNS 函数项目教程

AWS Lambda DDNS 函数项目教程

aws-lambda-ddns-functionDynamically create Route 53 resource records using CloudWatch Events and Lambda项目地址:https://gitcode.com/gh_mirrors/aw/aws-lambda-ddns-function

1. 项目的目录结构及介绍

aws-lambda-ddns-function/
├── README.md
├── lambda_function.py
├── requirements.txt
├── config.json
└── tests/
    └── test_lambda_function.py
  • README.md: 项目说明文件,包含项目的概述、安装步骤和使用说明。
  • lambda_function.py: 项目的启动文件,包含Lambda函数的代码。
  • requirements.txt: 项目的依赖文件,列出了项目运行所需的Python库。
  • config.json: 项目的配置文件,包含Lambda函数运行所需的配置参数。
  • tests/: 测试目录,包含项目的单元测试文件。

2. 项目的启动文件介绍

lambda_function.py

lambda_function.py 是项目的启动文件,包含了Lambda函数的代码。以下是文件的主要内容:

import json
import boto3
import requests

def lambda_handler(event, context):
    # 读取配置文件
    with open('config.json', 'r') as config_file:
        config = json.load(config_file)
    
    # 获取当前IP地址
    current_ip = requests.get('https://api.ipify.org').text
    
    # 更新DNS记录
    route53 = boto3.client('route53')
    response = route53.change_resource_record_sets(
        HostedZoneId=config['hosted_zone_id'],
        ChangeBatch={
            'Changes': [
                {
                    'Action': 'UPSERT',
                    'ResourceRecordSet': {
                        'Name': config['record_name'],
                        'Type': 'A',
                        'TTL': 300,
                        'ResourceRecords': [
                            {
                                'Value': current_ip
                            },
                        ],
                    }
                },
            ]
        }
    )
    
    return {
        'statusCode': 200,
        'body': json.dumps('DNS record updated successfully')
    }

功能介绍

  • 读取配置文件: 从 config.json 文件中读取配置参数。
  • 获取当前IP地址: 通过调用外部API获取当前的公网IP地址。
  • 更新DNS记录: 使用AWS Route 53服务更新DNS记录。

3. 项目的配置文件介绍

config.json

config.json 是项目的配置文件,包含了Lambda函数运行所需的配置参数。以下是文件的内容示例:

{
    "hosted_zone_id": "Z1234567890ABCDEFGHIJ",
    "record_name": "example.com"
}

配置参数说明

  • hosted_zone_id: AWS Route 53托管区域的ID,用于指定要更新的DNS记录所在的区域。
  • record_name: 要更新的DNS记录的名称,例如 example.com

通过以上配置,Lambda函数可以正确地更新指定的DNS记录。

aws-lambda-ddns-functionDynamically create Route 53 resource records using CloudWatch Events and Lambda项目地址:https://gitcode.com/gh_mirrors/aw/aws-lambda-ddns-function

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郦祺嫒Amiable

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值