- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Terraform 设置 Azure Function App。
azurerm_windows_function_app_function 资源允许直接从 terraform 配置创建脚本。但是,由于某种原因,更改文件内容需要重新创建应用程序功能。这使得它无法使用,因为销毁/重新创建错误。
在门户中,可以配置要通过 SCM 部署的功能代码。但是我找不到通过 Terraform 配置“部署中心”的方法。
有什么方法可以自动配置功能应用的“部署中心”。 Terraform 是理想的选择,但如果可以使用 ARM 甚至 cli 命令来完成,那就没问题了。
最佳答案
azurerm_windows_function_app 中没有直接配置 SCM 或源代码控制的方法地形提供商。源代码控制 block 位于azurerm_function_app中提供商。
可以引用我的SO thread answer通过存储帐户将功能代码部署为通过存储帐户 URL 的 zip 文件。
我的main.tf:-
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "3.59.0"
}
}
}
provider "azurerm" {
subscription_id = "xxxx4fd-e2b6e97cb2a7"
tenant_id = "xxxxce4-99ed-af9038592395"
client_id = "xxxxx8-6d26a31435cb"
client_secret = "xxxxxRt8313-CS0ifbLE"
features {
resource_group {
prevent_deletion_if_contains_resources = false
}
}
}
resource "azurerm_resource_group" "example" {
name = "azure-functions-example-rgsiddhesh"
location = "West Europe"
}
resource "azurerm_storage_account" "example" {
name = "examlpesasiliconstrg32"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
account_tier = "Standard"
account_replication_type = "LRS"
depends_on = [ azurerm_resource_group.example ]
}
resource "azurerm_app_service_plan" "example" {
name = "azure-functions-example-sp-siliconweb"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
kind = "Linux"
reserved = true
depends_on = [ azurerm_resource_group.example ]
sku {
tier = "Dynamic"
size = "Y1"
}
lifecycle {
ignore_changes = [
kind
]
}
}
resource "azurerm_function_app" "example" {
name = "example-azure-function-siliconfunc65"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
app_service_plan_id = azurerm_app_service_plan.example.id
storage_account_name = azurerm_storage_account.example.name
storage_account_access_key = azurerm_storage_account.example.primary_access_key
os_type = "linux"
version = "~4"
depends_on = [ azurerm_storage_account.example ]
app_settings = {
"FUNCTIONS_WORKER_RUNTIME" = "python",
"AzureWebJobsDisableHomepage" = "true",
"SCM_DO_BUILD_DURING_DEPLOYMENT" = "true"
}
site_config {
linux_fx_version = "python|3.10"
}
source_control {
repo_url = "https://github.com/username/functionrepo"
branch = "main"
}
}
您还可以通过 here 中的 Azure CLI 命令创建 github 操作工作流如下所示:-
命令:-
az functionapp deployment github-actions add --repo "sid24desai/funchttp" --branch main -g siliconrg5 -n siliconfunc32 --token github_pat_xxxxxxxxYA5UEkAZqq
输出:-
您可以在 terraform 脚本中运行相同的命令,如下所示:-
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "3.62.1"
}
}
}
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "example" {
name = "azure-functions-example-rgsiddhesh"
location = "West Europe"
}
resource "azurerm_storage_account" "example" {
name = "eeeesasiliconstrg32"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
account_tier = "Standard"
account_replication_type = "LRS"
depends_on = [ azurerm_resource_group.example ]
}
resource "azurerm_app_service_plan" "example" {
name = "eeesiliconweb"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
kind = "Linux"
reserved = true
depends_on = [ azurerm_resource_group.example ]
sku {
tier = "Dynamic"
size = "Y1"
}
lifecycle {
ignore_changes = [
kind
]
}
}
resource "azurerm_function_app" "example" {
name = "eesiliconfunc65"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
app_service_plan_id = azurerm_app_service_plan.example.id
storage_account_name = azurerm_storage_account.example.name
storage_account_access_key = azurerm_storage_account.example.primary_access_key
os_type = "linux"
version = "~4"
depends_on = [ azurerm_storage_account.example ]
app_settings = {
"FUNCTIONS_WORKER_RUNTIME" = "python",
"AzureWebJobsDisableHomepage" = "true",
"SCM_DO_BUILD_DURING_DEPLOYMENT" = "true"
}
site_config {
linux_fx_version = "python|3.10"
}
}
resource "null_resource" "run_az_cli" {
provisioner "local-exec" {
command = "az functionapp deployment github-actions add --repo sid24desai/funchttp --branch main -g resourcegroupname -n function-name --token github_pat_xxxxxxxxA5UEkAZqq"
}
}
此命令将在您的存储库中创建一个新的工作流程文件,只需将函数应用程序名称替换为您的函数并运行工作流程:-
关于Azure Function App - 使用 Terraform 配置 "Deployment Center",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76549059/
我是 DevOps 的新手。我为刚刚在 Digital Oceans 上创建的 Kubernetes 集群编写了一个 deployment.yaml 文件。创建部署不断出现我现在无法解码的错误。这只是
我需要能够在 Red5 运行时进行部署。我知道的唯一解决方案是使用 WAR 文件并将其放在文件夹中:webapp。 还有其他办法吗? 我使用的是 Red 5 v0.8。我使用 Eclipse 3.4
我收到以下错误: Recycling (Waiting for role to start... Sites are being deployed. [2012-12-17T05:30:10Z]) R
使用 TeamCity 6.5,我试图弄清楚如果可能的话,如何为特定的构建运行设置手动部署。 我希望能够做的是运行已经构建和测试的 TeamCity(仅需要部署工件 - 这不是 Web 应用程序或站点
我看到一个范围为环境的编辑变量权限。但是,似乎谁负责设置项目,谁就会负责创建变量,而其他一些安全实体将只负责修改值,特别是安全值。这可能吗? 编辑:再补充一点,我想我是在根据项目变量集请求权限。只有拥
在我通过命令部署到我的服务器后: bin/dep deploy 在“releases ”文件夹中,我有名为喜欢的文件夹 1 , 2 , 3 , ... 我怎样才能把它改成时间戳,所以在部署命令之后我会
问题: 我有一个手动干预步骤,其中包含执行部署的人员要遵循的文本步骤。 我想传递目标服务器的名称,这样这个人就不需要查找目标服务器名称。 例如,如下所示,我需要将它们解压缩到目标服务器上的某个位置。
这是一个系统 Octopus 部署变量: #{Octopus.Action[Deploy To Server].Output.Package.InstallationDirectoryPath} 文本
我正在尝试在 Octopus Deploy 中设置部署。与许多其他开发人员一样,我通过迭代来做到这一点:调整步骤/脚本/包 -> 单击“部署” -> 检查结果 -> 如果不满意,则重新开始。在 Oct
在使用 Network Deployment 安装 WebSphere Application Server 时,节点是: 物理机 操作系统实例 一组独立于物理机或操作系统实例的逻辑 WAS 实例 最
我知道目前有一个 feature request对于这样的事情,但我希望使用当前版本(1.6)有某种解决方法 我们从 TFS 中的开发分支为我们的开发和测试环境构建,并从 TFS 中的发布分支为我们的
我正在尝试运行由 MSBuild 生成的 ProjectName.deply.cmd 当参数 /p:DeployOnBuild=True通过。参数“ComputerName”之一将作为 https:/
有时首选和/或需要在单个服务器上托管数十个应用程序。不是说这是“对”或“错”,我只是说它发生了。 此配置的缺点是出现错误消息Waiting for the script in task [TASK I
部署准备使用的 erlang 应用程序时我 不要希望用户 在上找到正确的 erl 版本 互联网。 安装 erl vm 解压缩并确定梁文件的位置(与应用程序一起) 阅读自述文件 修改任何看起来像配置文件
使用Next.js创建的app部署到netlify时,出现如下错误,部署失败。 ────────────────────────────────────────────────────────────
我有一个包含两个模块的项目:客户端和服务器。在父 pom.xml 中,我添加了部署阶段的信息,以便部署到本地目录: 4.0.0 org.my myTest 0.1 pom m
我们正在运行 OD 1.6。 我想使用 OD 变量来更改不在应用设置部分中的值,例如 session 状态提供程序。 我知道我可以为此使用转换,但作为一家公司,我们更喜欢使用 OD 变量而不是转换,因
Plesk Obsidian 提供 GIT 部署,我们正在尝试将其配置为类似于我们之前在 CPANEL 上的配置(我们最近从与 CPANEL 的共享帐户升级到与 Plesk 的 VPS - Plesk
我对这个主题进行了大量研究,但找不到任何端到端解决方案来使用 TFS 2010 实现“一次构建并部署多次”。 基本上我在想的是有一个构建定义,它将构建一个解决方案,其中包含多个要部署的项目(Web 应
我已经阅读了关于如何使用 pm2 的几个问题和想法。在 Windows 机器下,不管你信不信,我以前的机器运行得很好......然后我不得不重新格式化它并完全忘记了我以前做过的事情:( 我已经安装了
我是一名优秀的程序员,十分优秀!