首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过地形更新AWS云监视系统?

如何通过地形更新AWS云监视系统?
EN

Stack Overflow用户
提问于 2022-10-11 18:18:27
回答 1查看 55关注 0票数 0

我通过地形创造了一只金丝雀。我现在正试图通过terraform更新金丝雀脚本。我把我的剧本直接输入金丝雀。我已经包含了一个带有触发器的空资源,它总是重新创建我的zip文件。我的金丝雀脚本/ lambda层没有更新。我想知道如何触发更新来使用新的脚本版本?到目前为止,我发现唯一起作用的是地形破坏/应用。

我知道cli更新-金丝雀命令和s3选项。理想情况下,我想继续把我的剧本直接输入金丝雀。

代码语言:javascript
复制
resource "null_resource" "script-zip" {
  provisioner "local-exec" {
    command     = <<EOT
      zip -r ./recordedScript.zip nodejs/node_modules/
    EOT
    working_dir = path.module
  }
  triggers = {
    always_run = "${timestamp()}"
  }
}

resource "aws_synthetics_canary" "canary" {
  name                 = var.synthetic-name
  artifact_s3_location = "s3://${aws_s3_bucket.synthetics-bucket.id}"
  execution_role_arn   = aws_iam_role.synthetics_role.arn
  handler              = var.handler
  zip_file             = "${path.module}/recordedScript.zip"
  runtime_version      = var.runtime-version
  start_canary         = var.start-canary
  depends_on = [
    resource.null_resource.script-zip
  ]
EN

回答 1

Stack Overflow用户

发布于 2022-10-12 14:22:49

aws_synthetics_canary资源似乎没有查看创建的zip文件的散列。我能够通过给zip文件一个唯一的名称来解决这个问题。

代码语言:javascript
复制
locals {
  NOW = "${timestamp()}"
}

resource "null_resource" "script-zip" {
  provisioner "local-exec" {
    command     = <<EOT
      zip -r ./${local.NOW}-recordedScript.zip nodejs/node_modules/
    EOT
    working_dir = path.module
  }
  triggers = {
    always_run = "${timestamp()}"
  }
}


resource "aws_synthetics_canary" "canary" {
  name                 = var.synthetic-name
  artifact_s3_location = "s3://${aws_s3_bucket.synthetics-bucket.id}"
  execution_role_arn   = aws_iam_role.synthetics_role.arn
  handler              = var.handler
  zip_file             = "${path.module}/${local.NOW}-recordedScript.zip"
  runtime_version      = var.runtime-version
  start_canary         = var.start-canary

  depends_on = [
    resource.null_resource.script-zip
  ]


  schedule {
    expression = var.schedule
  }

  run_config {
    environment_variables = var.env-vars
    timeout_in_seconds    = var.timeout
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74032476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档