Terraform 中的 Elastic Beanstalk 应用程序版本

2023-11-30

我尝试通过参数化名称来管理 terraform 模板中的应用程序版本。这是一次尝试,每当应用程序的内容发生更改时,我们的 CI 流程都会创建一个新的应用程序版本。这样,在elasticbeanstalk中,我可以保留历史应用程序版本的列表,以便我可以回滚等。这不起作用,因为相同的应用程序版本不断更新,实际上我丢失了所有应用程序版本的历史记录。

resource "aws_elastic_beanstalk_application_version" "default" {
   name        = "${var.eb-app-name}-${var.build-number}"
   application = "${var.eb-app-name}"
   description = "application version created by terraform"
   bucket      = "${aws_s3_bucket.default.id}"
   key         = "${aws_s3_bucket_object.default.id}"
}

然后我尝试参数化逻辑资源引用名称,但这不受 terraform 支持。

resource "aws_elastic_beanstalk_application_version" "${var.build-number}" {
   name        = "${var.eb-app-name}-${var.build-number}"
   application = "${var.eb-app-name}"
   description = "application version created by terraform"
   bucket      = "${aws_s3_bucket.default.id}"
   key         = "${aws_s3_bucket_object.default.id}"
}

目前我的解决方案是在 terraform 之外管理我的应用程序版本,这令人失望,因为还有其他相关资源(例如 S3 存储桶和权限)需要担心。

我错过了什么吗?


就 Terraform 而言,您只是更新其中的单个 EB 应用程序版本资源。如果您想保留以前的版本,那么您可能需要尝试增加 Terraform 管理的资源数量。

在我的脑海中,你可以尝试这样的事情:

variable "builds" = {
  type = list
}

resource "aws_elastic_beanstalk_application_version" "default" {
   count       = "${length(var.builds)}"
   name        = "${var.eb-app-name}-${element(builds, count.index)}"
   application = "${var.eb-app-name}"
   description = "application version created by terraform"
   bucket      = "${aws_s3_bucket.default.id}"
   key         = "${aws_s3_bucket_object.default.id}"
}

那么如果你有一个列表builds它应该为每个构建创建一个新的应用程序版本。

当然,这可以是动态的,因为变量可以是返回所有构建列表的数据源。如果数据源尚不存在,您可以编写一个小脚本用作外部数据源.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Terraform 中的 Elastic Beanstalk 应用程序版本 的相关文章

随机推荐

  • 是否可以检查用户何时下载我的 ios 应用程序? [复制]

    这个问题在这里已经有答案了 是否可以检查用户何时下载了我的 iOs 应用程序 如果可以 是否可以从中创建一个 if 语句 例如 if downloadDate gt 1march 抱歉 如果您认为这个问题很糟糕 任何代码将不胜感激 D 还应
  • C# Process.Start 参数被截断

    当传递很长的文件路径时 我的参数被截断 我需要启动一个程序并通过命令参数传递所有内容 有时它只是截断命令 它是在全局范围内进行的 因此这不仅是每个参数的问题 而且是整个参数的问题 编辑 问题可能是命令行长度的限制monkey p说 问题是
  • 通过 C 代码计算 Minix 系统上正在运行的进程数

    所以 一开始这看起来很简单 但是在爬行谷歌和这里之后 答案似乎并不像我最初想象的那么简单 基本上 我正在编辑一个 MINIX 内核 作为我的操作系统课程实践的一部分 并且我必须添加一个小功能 当您在信息服务器中按下功能键时 它会显示正在运行
  • 将数据框转换为命名向量

    我在我的 dfm 上应用了一个模型 wordscore 结果我得到了一个输出对象 其类是 textmodel wordscores textmodel list 我对输出 wordscores 感兴趣 它是一个 数字 对象 这就是当clas
  • Java 返回在特定条件下首先执行的 Future,或者同时处理两者

    我有两个 API 它们返回两个不同的结果类 我们将这两个结果结合起来得到一个 FinalClass 基本上 如果这些Api同时运行 如果它首先收到具有特定结果 G H 的A类 则B类是什么并不重要 我们不会等待serviceAPI B 只需
  • 如何在 jetpack compose 中将光标从一个文本字段传递到另一文本字段?

    我有两个文本字段 用户将输入他们的体重和目标体重 当用户单击目标体重时 会出现一个选择器 用户可以从中选择自己的体重 如果用户选择他的体重并按下 确定 按钮 我希望它自动切换到目标体重文本字段 听到的是我的代码 我正在分享示例文本字段 Co
  • AdMob 及其工作原理是什么?

    我对 AdMob 感到困惑 我刚刚注册 我想在应用程序中投放广告 我去添加网站 应用程序 以为就是这样 有一个问题和字段显示 Android 包 url 我点击了问号 它谈到了格式化它 就像这样 market details id 首先 它
  • 如何更改任务栏颜色和sf符号颜色?

    如何更改标签栏背景颜色and将 sf 符号设置为自定义颜色 我已经尝试过 tabitem 下的背景 颜色 颜色 其上方 括号内 我尝试使用符号来执行 palette 因为我做了一个我想使用的自定义颜色 但我不知道如果它在标签中我无法修改它
  • MySql:使用 .NET/Connector 使用准备好的语句调用存储过程会更快吗?

    我已经阅读了一些有关 MySql 的预处理语句的内容 并且 NET Connector 确实支持它们 我想知道的是 如果我使用预准备语句调用相同的存储过程数千次 是否比不使用预准备语句执行更快或更好的性能 因为存储过程实际上应该已经编译 E
  • Intellij - 如何将文本文件添加到资源中

    我正在读一本 properties文件使用properties load和文件名 我想将属性文件添加到 jar 或类路径中 如何将文件添加到 jar 中 我如何从罐子里读取内容 将文件放在源文件夹中 它将被复制到输出并根据以下内容与类一起添
  • 解释一下 phi 系数函数在 Eloquent Javascript 中是如何工作的?

    我目前正在阅读 Eloquent Javascript 到目前为止 这是一本很好的书 但我一直停留在他提出的这个用于计算 phi 系数的函数上 这是代码 显然有很多上下文 我无法复制 粘贴书中的所有内容 所以如果真正读过这本书的人可以向我解
  • 为什么 sysctl 在 Mac OS X 上产生 E_INVAL?

    下面是一个精简的 省略了错误 空检查 C Obj C 代码片段 它使用 sysctl 获取 PID 50 的特定进程的 argv int getProcessArgs 3 CTL KERN KERN PROCARGS 50 sysctl g
  • 如何自动赋予新用户系统用户角色并如何将其显示在网站顶部?

    我对员工表进行了以下数据库设计 Username Name Job etc 还有一个角色表 RoleID RoleName 最后是一个UserRole表 用户角色ID Username RoleID 我正在为公司的部门开发一个基于 Intr
  • 将字符串中的键分配给字典

    我有一个名为sentence the sly fox jumped over the brown dog 我需要创建一个名为Positions 按键为Positions应该是中的字符sentence 这些值应该是这些字符的索引 例如 所需的
  • Ajax 用图像替换文本

    我整理了以下 mootools 脚本 window addEvent domready function var shouts timed php var log log res function updateData url target
  • Dart 支持枚举吗?

    Dart 支持枚举吗 例如 enum myFruitEnum Apple Banana 粗略搜索文档表明没有 开始1 8 您可以像这样使用枚举 enum Fruit apple banana main var a Fruit apple s
  • 在 jquery 切换功能上更改图像

    我试图在使用 jquery 切换时使用替换命令更改图像 基本上显示一个向下箭头 在内容显示后变成一个向上箭头 以下代码有效 但向下箭头未被替换 img src images arrow down png class nav toggle d
  • WPF 中的用户控件 VS 页面

    我正在编写一个简单的应用程序 它有一个菜单 当用户选择每个菜单时MenuItem 我想更改窗口的内容以显示所选内容 我有两个选择 我可以添加一个到我的窗口并写一些页面 我可以写一些UserControls并将它们放入一个ContentCon
  • Laravel 分页资源不会添加元数据

    我有以 JSON 格式返回的资源数据 当我尝试使用分页获取数据时 它不包含元数据 基于文档我的数据应该包含在元数据中 例如 meta current page 1 from 1 last page 1 path http example c
  • Terraform 中的 Elastic Beanstalk 应用程序版本

    我尝试通过参数化名称来管理 terraform 模板中的应用程序版本 这是一次尝试 每当应用程序的内容发生更改时 我们的 CI 流程都会创建一个新的应用程序版本 这样 在elasticbeanstalk中 我可以保留历史应用程序版本的列表