
技術
読み込み中...
2026/3/19
2026/3/19
2026/3/19
2026/3/19
2026/3/19
2026/3/19
2026/3/19
2026/3/15
2026/3/15
2026/2/26
今回は、「Lamdaを用いて、Route53にAレコードを登録する」というテーマで記事を書いてみました。
Lamdaを使用したことがある方
Route53を使用したことがある方。
Lamdaを用いてRoute53にAレコードを登録したい方
AWS Consoleに入れれば問題ないです。
Route53でドメインを取得してあること。
あまり経験がない方は公式リファレンス等参照いただけると良いと思います。
index.mjs->index.jsに変更しておいて下さいLamdaにアタッチするRoleにはAmazonRoute53FullAccessのポリシーを付与しておいて下さい。付与されていないとAレコードを作成する権限がなく、エラーになります。
const { Route53Client, ChangeResourceRecordSetsCommand } = require("@aws-sdk/client-route-53");
exports.handler = async function (event, context) {
// Route53への接続
const route53 = new Route53Client();
// 変更を行うドメイン名とhostedzone IDを入力
const hostedZoneId = '********';
const recordName = 'example.com';
// IPアドレスを取得
const newIpAddress = event.body.address;
//レコード名を作成('.'->'\u2019へ正規化した上で結合)
const newRecordName=newIpAddress.replace(/\./g, '-')+'.'+recordName
// Aレコードの変更リクエストを作成
const changeBatch = {
Changes: [
{
Action: 'UPSERT',
ResourceRecordSet: {
Name: newRecordName,
Type: 'A',
TTL: 300,
ResourceRecords: [
{ Value: newIpAddress }
]
}
}
]
};
// レコードの変更を実行
try {
const command = new ChangeResourceRecordSetsCommand({
HostedZoneId: hostedZoneId,
ChangeBatch: changeBatch
});
const response = await route53.send(command);
console.log(response);
return {
statusCode: 200,
body: JSON.stringify(response)
};
} catch (error) {
console.error(error);
return {
statusCode: 500,
body: JSON.stringify(error.message)
};
}
};
今回は、送られてきたIPアドレスの.->-に変換した文字列を、ドメインの頭につける形でAレコードを登録します。
{
"body": {
"address": "127.0.0.1"
}
}
Route53で自分が選択したホストゾーン(exaple.com) に Aレコードが登録されていたらOKです。
今回の記事では、 LamdaでRoute53にAレコードを登録 してみたい時に、Lamdaにどんな処理を書けばいいのか記述をしました。
今回の内容を応用すれば、IPアドレスの変更等を検知した場合や、EC2の起動を検知した場合などに、Aレコードを新しく登録もしくは更新するなどもできると思います。