在 Terraform 中访问 Azure Function App 系统密钥
Access Azure Function App system keys in Terraform
我想使用 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 需要 <BLOB-EXTENSION-KEY>
,它现在是硬编码的,可以从门户中的以下位置找到:
为了不向 GitHub 提交秘密,我想通过引用获取此值,最好使用 Terraform。
根据我的研究,Terraform 似乎无法引用该值。
最接近的是 Terraform 中的这个数据源 azurerm_function_app_host_keys
。但是,它不包括 blobs_extension
键!
有没有什么好的方法可以在没有硬编码值的情况下在 Terraform 中引用 blobs_extension
?
提前致谢!
如果 TF 还不支持,你可以创建自己的 External Data Source 它将使用 azure cli 或 sdk 来获取你想要的值,并且 return 它到你的 TF for进一步使用。
我想使用 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 需要 <BLOB-EXTENSION-KEY>
,它现在是硬编码的,可以从门户中的以下位置找到:
为了不向 GitHub 提交秘密,我想通过引用获取此值,最好使用 Terraform。
根据我的研究,Terraform 似乎无法引用该值。
最接近的是 Terraform 中的这个数据源 azurerm_function_app_host_keys
。但是,它不包括 blobs_extension
键!
有没有什么好的方法可以在没有硬编码值的情况下在 Terraform 中引用 blobs_extension
?
提前致谢!
如果 TF 还不支持,你可以创建自己的 External Data Source 它将使用 azure cli 或 sdk 来获取你想要的值,并且 return 它到你的 TF for进一步使用。