- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望有人能帮助我了解如何解决这个问题。
在 azure 中我有3个独立的环境:
每个环境我都有一个数据工厂。由于数据集很大,我决定构建一个 CI CD 管道,以便每次发布到 adf_publish
时将开发环境的所有内容复制到暂存和生产。这个过程就像一个魅力,我拥有所有数据集和链接的服务。
这是我开始发现问题的地方,但我无法忽略它们。
所有 3 个环境都有结构完全相同的 Cosmos 数据库,但当然 Cosmos 的 URL 和访问 key 是不同的。
阅读 Microsoft 文档,我发现我可以使用动态内容
,这绝对是完美的。我创建了参数:
当我在开发环境中尝试连接时,参数 Blade 打开,我可以设置我想要的默认值并且连接成功。
我在暂存中做了相同的配置,在发布管道之后,我可以看到参数,
但是正如您从屏幕截图中看到的那样,没有任何其他配置。我的第一个想法是,也许我需要配置默认值并应用更改,但即使在那之后,每次发布后值都会重置。谁能帮助我了解如何为每个环境设置默认值?
如果有任何问题或我没有解释清楚的地方,请问我,我会重新表述。
非常感谢您为我提供的任何帮助。
更新:最后我成功地解决了问题的第一部分,即让发布管道设置cosmos连接中的动态内容
但不幸的是我的参数值或者它们是硬编码的或空的。
遵循本文档 https://learn.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment
我尝试使用以下值在根文件夹的 adf_publish
中创建 arm-template-parameters-definition.json
:
{
"Microsoft.DataFactory/factories/linkedservices":{
"properties": {
"parameters": {
"DBNameAggregated": {
"type": "string",
"defaultValue": "test"
},
"DBAccessKey": {
"type": "string",
"defaultValue": "test"
}
}
}
}
}
当我保存并推送更改时,我刷新了门户并发布了。在我的发布管道中,我设置了覆盖参数
-DBNameAggregated "test2"
但是发布管道失败并出现以下错误
Deployment template validation failed: 'The template parameters 'DBNameAggregated' in the parameters file are not valid; they are not present in the original template and can therefore not be provided at deployment time
我检查了我的两个 ARM 模板:
我真的很碰壁,不知道自己做错了什么
最佳答案
您需要在主根文件夹下创建 arm-template-parameters-definition.json
。
如果你想参数化这些值,你需要添加以下代码。
在此示例中,我将参数化 cosmosdb 链接服务的 typeProperties
下的所有值
"Microsoft.DataFactory/factories/linkedServices": {
"CosmosDB": {
"properties": {
"typeProperties": {
"*": "="
}
}
}
}
更新此代码后,您将在 adf_publish
分支下的 ARMTemplateforFactory.json
文件中看到更改。
以下是 armtemplateforfactory.json
文件中的值。
CosmosDb1_connectionString
、cosmosdbURL
、CosmosDBKey
已参数化。
"name": "[concat(parameters('factoryName'), '/CosmosDb1')]",
"type": "Microsoft.DataFactory/factories/linkedServices",
"apiVersion": "2018-06-01",
"properties": {
"parameters": {
"cosmosdbURL": {
"type": "string",
"defaultValue": "xyz"
},
"CosmosDBKey": {
"type": "string",
"defaultValue": "xyz"
}
},
"annotations": [],
"type": "CosmosDb",
"typeProperties": {
"connectionString": {
"type": "SecureString",
"value": "[parameters('CosmosDb1_connectionString')]"
}
}
}
我在 cosmosdb 链接连接上的实际代码。在这里,我将 xyz
分配给 cosmosdburl
和 cosmosdbkey
{
"name": "CosmosDb1",
"type": "Microsoft.DataFactory/factories/linkedservices",
"properties": {
"parameters": {
"cosmosdbURL": {
"type": "string",
"defaultValue": "xyz"
},
"CosmosDBKey": {
"type": "string",
"defaultValue": "xyz"
}
},
"annotations": [],
"type": "CosmosDb",
"typeProperties": {
"connectionString": "AccountEndpoint=@{linkedService().cosmosdbURL};Database=bhargavademo;AccountKey=@{linkedService().CosmosDBKey}"
}
}
}
最后一步是,您需要更新发布管道上的 overridetemplateparameters
上的 cosmosDBURL
、CosmosDBKey
、连接字符串值。
关于每个环境的 Azure 数据工厂动态内容默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73736610/
我应该执行以下操作: 可能通过服务/工厂,使用 $q(异步)查询 API 以获取大型名称数据集 有另一个服务(也是异步的),它应该只返回上述工厂的元素,如果它们与某个字符串(搜索字段)匹配。目的是缩小
我有一个通用的基类。我有一个实现基类的具体类。 我将如何创建工厂类/方法来交付不同类型的具体类? 举个例子: public class ReceiverBase where T : IInte
我正在查看以下链接中的 Ninject Factory 扩展: http://www.planetgeek.ch/2011/12/31/ninject-extensions-factory-intro
工厂、提供商和服务这三个术语之间有什么区别? 刚刚了解 NHibernate 及其存储库模式(POCO 类等)。 最佳答案 工厂:通过将一堆位组合在一起或基于某种上下文选择类型来组装类 Provide
使用CGLIB我可以做到 final var enhancer = new Enhancer(); enhancer.setUseCache(false); enhancer.setSuperclas
我试图在 Kotlin 中使用伴随对象工厂方法(相当于 Java 中的静态工厂方法)创建一个嵌套内部类。这是我的代码的简化版本。 class OuterClass { var myData:L
我正在为我的大学做一个项目,但遇到了问题。 基本上,该项目由一个客户端-服务器应用程序组成,我想创建一个用于通信的 Packet 类。数据包由 header 和主体组成。现在问题来了。我可以有一些不同
这个问题在这里已经有了答案: Why doesn't polymorphism work without pointers/references? (6 个答案) What is object sl
我正在制作一个套接字工厂。我希望每个外部应用程序都使用 Socket 类的接口(interface),它是几个类(ServerSocketTCP、ClientSocketTCP、ServerSocke
我是 angularjs 的新手,我正在尝试创建一个小型电影数据库。这是我第一次使用工厂,我想确保这是正确的方法,以及如何在另一个功能中使用这个工厂,如下所示? 我希望这个工厂只运行一次,这样我就可以
这个问题在这里已经有了答案: Java inner class and static nested class (28 个答案) 关闭 5 年前。 public class DataFactory
我看过很多关于 C++ 工厂的帖子,但到目前为止我还没有看到解决我的问题的解决方案。 (虽然我可能遗漏了一些东西。) 示例控制台应用程序: #include #include #include
这是一个简单的 C++ 项目,有 2 种设计模式:单例和工厂,sigleton 也是一个模板化类,一个接口(interface) (IHash) 和一个类 (Hash1)。一个简单的工厂类 (Hash
这个问题类似于Factory and generics ,并且可能有相同的答案,但它是不同的。我有一个通用基类,它将由完全独立的 JAR 中的类进行扩展。所述 JAR 应该能够在不更改任何其他代码的情
问题是我需要为传递的类创建一个新实例 有没有办法重写这个函数,让它可以接受任意数量的参数? function createInstance(ofClass, arg1, arg2, arg3, ...
我想用简单的 C++ 语法创建一个简单的工厂方法: void *createObject(const char *str,...) { if(!strcmp("X",str)) retu
经过大约 10 个月的程序化 PHP 学习后,我现在正尝试着手研究基本的 OOP 原则和设计模式。这是一个爱好,我没有那么多时间去追求它,所以请原谅这个问题的水平很低。 我的网站(目前 100% 程序
我有一个简单的问题。 我如何编写一个工厂来定义使用 make() 或 create() 的关系,具体取决于原始调用 make() 还是 create()? 这是我的用例: 我有一个简单的工厂 /**
我正在尝试在延迟加载模块中提供 APP_BASE_HREF 注入(inject) token ,然而,工厂方法根本没有被调用。 在这里https://github.com/MaurizioCascia
我有以下 ast: import { factory as f } from 'typescript' const typeDeclaration = f.createTypeAliasDeclara
我是一名优秀的程序员,十分优秀!