We use pulumi to do IaC and we use a monorepo with Bazel as the build tool. We have out modules set out as following
One of the requirements we have is to build a lambda module and then deploy it. The lambda module is a target being built by Bazel (golang, but shouldn’t matter):
go_binary(
name = "lambda_module",
visibility = ["//visibility:public"],
)
We then have the iac module, which should get the built version of the above module, so that it can then upload it into lambda
go_binary(
name = "iac",
args = [
"-lambda_module",
"$(location //products/productA/module/lambda_module)",
],
data = ["//products/productA/module/lambda_module"],
visibility = ["//visibility:public"],
)
Continue reading