我正在使用Terraform设置基础架构,我想每天在其中运行Docker容器(使用ACI),并且每次都使用相同的(默认)命令。
我最初的想法是使用Terraform来提供容器组资源,然后我唯一剩下的任务就是确保它每天启动。但是,我想不出最简单的方法。
当前,我的尝试是使用Logic Apps,但我找不到正确的操作。理想情况下,容器组具有可以触发其启动的Web挂钩,或者逻辑应用程序具有可以运行Azure CLI命令的操作。
有输入吗?
provider "azure" {
}
resource "azurerm_resource_group" "test" {
name = "testResourceGroup1"
location = "North Europe"
}
data "azurerm_container_registry" "test" {
name = "..."
resource_group_name = "..."
}
resource "azurerm_container_group" "example" {
name = "example-continst"
location = "${azurerm_resource_group.test.location}"
resource_group_name = "${azurerm_resource_group.test.name}"
os_type = "Linux"
ip_address_type = "Public"
restart_policy = "Never"
image_registry_credential {
username = "${data.azurerm_container_registry.test.admin_username}"
password = "${data.azurerm_container_registry.test.admin_password}"
server = "${data.azurerm_container_registry.test.login_server}"
}
container {
name = "main"
image = "${data.azurerm_container_registry.test.login_server}/compute-instance"
cpu = "1.0"
memory = "1.0"
ports {
port = 443
protocol = "TCP"
}
}
}
resource "azurerm_logic_app_workflow" "test" {
name = "workflow1"
location = "${azurerm_resource_group.test.location}"
resource_group_name = "${azurerm_resource_group.test.name}"
}
resource "azurerm_logic_app_trigger_recurrence" "test" {
name = "run-every-day"
logic_app_id = "${azurerm_logic_app_workflow.test.id}"
frequency = "Day"
interval = 1
}
答案 0 :(得分:1)
对于容器组,没有Webhook可以创建触发器来让容器组每天开始。据我所知,对于逻辑应用程序,它不支持运行Azure CLI命令。
出于您的目的,每天启动容器组。对于容器组,停止然后再启动,这还意味着创建具有相同配置的新容器组。参见Manually stop or start containers in Azure Container Instances。据此,在逻辑应用程序中,您可以创建一个时间触发器,以创建容器组并在以后将其删除,然后每天重复该触发器。