【问题标题】:Access Azure Function App system keys in Terraform在 Terraform 中访问 Azure Function App 系统密钥
【发布时间】:2021-10-16 06:54:30
【问题描述】:

我想使用 Terraform 创建 Azure EventGrid 订阅。

resource "azurerm_eventgrid_system_topic_event_subscription" "function_app" {
  name                = "RunOnBlobUploaded"
  system_topic        = azurerm_eventgrid_system_topic.function_app.name
  resource_group_name = azurerm_resource_group.rg.name

  included_event_types = [
    "Microsoft.Storage.BlobCreated"
  ]

  subject_filter {
    subject_begins_with = "/blobServices/default/containers/input"
  }

  webhook_endpoint {
    url = "https://thumbnail-generator-function-app.azurewebsites.net/runtime/webhooks/blobs?functionName=Create-Thumbnail&code=<BLOB-EXTENSION-KEY>"
  }
}

通过关注this doc,我成功部署了它并且它工作正常。但是,webhook_endpoint URL 需要 &lt;BLOB-EXTENSION-KEY&gt;,它现在是硬编码的,可以从门户中的以下位置找到:

为了不向 GitHub 提交秘密,我想通过引用获得这个值,最好使用 Terraform。

根据我的研究,Terraform 中似乎无法引用该值。 最接近的是 Terraform 中的这个数据源 azurerm_function_app_host_keys。但是,它不包括blobs_extension 键!

在没有硬编码值的情况下,有什么好的方法可以在 Terraform 中引用 blobs_extension

提前致谢!

【问题讨论】:

    标签: azure azure-functions terraform terraform-provider-azure azure-eventgrid


    【解决方案1】:

    如果 TF 还不支持,你可以创建自己的 External Data Source,它会使用 azure cli 或 sdk 来获取你想要的值,然后将它返回给你的 TF 以供进一步使用。

    【讨论】:

    • 谢谢。这似乎是一个很好的最后手段。我会试试的。
    • @codigube 进展如何?外部数据源是否有效?
    • 嗨,我已经用脚本编写了外部数据源来调用 Azure API 来获取系统密钥。但是,由于身份验证失败。试图找出在 bash 脚本中处理针对 Azure 的身份验证的正确方法。 API 在控制台中工作
    • @codigube 没问题。对于新问题,您可以提出新问题吗?此外,如果答案有帮助,我们将不胜感激。
    • 是的。你说的对。谢谢!我已接受您的回答作为解决方案
    猜你喜欢
    • 2020-06-11
    • 1970-01-01
    • 2020-02-25
    • 2021-03-17
    • 2019-07-28
    • 2020-02-11
    • 2020-11-05
    • 2018-03-19
    • 2020-12-04
    相关资源
    最近更新 更多