🐋
LocalStackを使ってTerraformを動かす
背景
- Terraformを勉強したいがAWSで課金されてしまう懸念がある...。
方針
- LocalStackを用いてTerraformを動かす。
- docker上でLocakStackを動かす。
- jestを用いて、構築したサービスのテストを行う。
詳細(実際にやってみる)
いくつかサービスを構築してみたが、sesを例として挙げる。
検証済みメールを作成するコード
env/local/modules.tf
module "resources" {
source = "../../modules"
}
modules/ses.tf
resource "aws_ses_email_identity" "sample" {
email = "sender@example.com"
}
テストコード
ses.test.ts
import { SES } from "aws-sdk";
import clientConfig from "./lib/clientConfig";
const sesClient = new SES(clientConfig);
describe("Amazon SES", () => {
test("sendEmail", async () => {
/* when */
const { MessageId } = await sesClient
.sendEmail({
Source: "sender@example.com",
Destination: {
ToAddresses: ["recipient@example.com"],
},
Message: {
Subject: { Data: "TEST" },
Body: {
Html: {
Data: "This is a message for the test.",
},
},
},
})
.promise();
/* then */
expect(MessageId).not.toBeUndefined();
});
});
Discussion