gpt4 book ai didi

json - DevOps Pipeline 在将变量值作为 JSON 正文发送以使用 Terraform 部署 Azure 资源时更改时间格式

转载 作者:行者123 更新时间:2023-12-03 07:02:46 25 4
gpt4 key购买 nike

我的 Azure 资源 Terraform 部署包含预算,需要开始日期和结束日期。当我通过 http Post 从逻辑应用发送 JSON 正文/变量值时,DevOps 会更改字符串值的时间格式。 Terraform 需要特定的时间格式,即 RFC 3339。每当我将数据发送到 DevOps 时,它都会更改为另一个无效的标准。

管道错误:

│ Error: expected "time_period.0.end_date" to be a valid RFC3339 date, got "06/01/2022 11:53:27": parsing time "06/01/2022 11:53:27" as "2006-01-02T15:04:05Z07:00": cannot parse "1/2022 11:53:27" as "2006"

│ with azurerm_consumption_budget_resource_group.management,
│ on costmanagement.tf line 33, in resource "azurerm_consumption_budget_resource_group" "management":
│ 33: end_date = var.end_date


##[error]Terraform command 'plan' failed with exit code '1'.
##[error]╷
│ Error: expected "time_period.0.end_date" to be a valid RFC3339 date, got "06/01/2022 11:53:27": parsing time "06/01/2022 11:53:27" as "2006-01-02T15:04:05Z07:00": cannot parse "1/2022 11:53:27" as "2006"

│ with azurerm_consumption_budget_resource_group.management,
│ on costmanagement.tf line 33, in resource "azurerm_consumption_budget_resource_group" "management":
│ 33: end_date = var.end_date

我发送的正文:

{
"variables": {
"end_date": {
"isSecret:": false,
"value": "2022-07-31T11:53:23.000Z"
},
"start_date": {
"isSecret:": false,
"value": "2022-06-01T11:53:27.000Z"
}
}
}

如何防止它在部署过程中发生更改?

最佳答案

唯一需要更改的是在 JSON 类型变量 end_date 中引用一个(两个键中的一个):

end_date = var.end_date["value"]

这样,只有名称为value的键才会被引用。同样,如果您需要访问 isSecret 键的值(或将来添加到变量的任何其他键),您可以使用:

someargument = var.end_date["isSecret"] # or var.end_date["<key-name>"]

有关访问 map 变量值的更多信息可以在 [1] 中找到。

<小时/>

[1] https://www.terraform.io/language/expressions/type-constraints#map

关于json - DevOps Pipeline 在将变量值作为 JSON 正文发送以使用 Terraform 部署 Azure 资源时更改时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72053715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com