我有一个主模板。在此范围内: 我有一个链接模板,用于创建应用程序见解。 和另一个链接的模板调用来创建Webapp。
在webapp链接模板调用中,我想传递AIKey作为参数,但这是有问题的。如果我这样做:
<body>
</body>
第一次失败,因为参考值会立即评估,并且appinsights还不存在。即使我对Webapp内的appinsights链接模板资源调用使用依赖项,也会发生这种情况。
所以我想也许我可以在参考文献中使用参考文献,以防止过早评估它,但这行不通-似乎您在参考文献中没有参考文献。
add_filter( 'woocommerce_ship_to_different_address_checked', 'filter_cart_needs_shipping_address');
function filter_cart_needs_shipping_address( $checked ) {
$products_ids = array(793, 796);
$found = $others_found = false;
foreach ( WC()->cart->get_cart() as $cart_item ){
if (in_array( $cart_item['data']->get_id(), $products_ids ) ){
$found = true;
} else {
$others_found = true;
}
}
if( $found && ! $others_found )
$checked = true;
return $checked;
}
我不想将AI Key放在链接模板的输出中,因为它将以纯文本格式放置。有什么方法可以实现我的目标?
以下是一些代码段,它是单个模板,但是该模板非常大,因此我没有包含所有内容:
调用AI嵌套模板:
"value": "[reference(resourceId('Microsoft.Insights/components', variables('appInsightsName')),'2014-04-01').InstrumentationKey]"
调用WebAPP模板:
"value": "[reference(reference('AppInsights').outputs.resourceID.value,'2014-04-01').InstrumentationKey]"
这是错误: “ code”:“ ResourceNotFound”, “ message”:“未找到资源组'MyResourceGroup'下的资源'Microsoft.Insights / components / MyAppInsightsName'。”
答案 0 :(得分:0)
不要将密钥传递到Webapp模板中,而是传递AI资源的resourceId并将reference()调用放入Web应用程序模板中。不输出resourceId,只需像在第一个代码段中那样传递字符串即可。
"value": "[resourceId('Microsoft.Insights/components', variables('appInsightsName'))]
此外,如果您可以共享您的模板(或足够用于repro),那将很有帮助...我以为我们已解决了此问题,但听起来好像我们没有,所以最好看看我们是否没案。
答案 1 :(得分:0)
好的,我想我理解您的意思,这就是您的模板的样子:
parent:
- child1:
- application insights
- child2:
- webapp
所以您在这里确实没有很多好的选择。首先:这种设置意义不大。仅为了创建嵌套部署而创建嵌套部署只会导致创建堆栈溢出问题;)您可以将其转换为平面模板,这样就可以正常工作,也可以像这样重新排列它们:
父母: -child1: -应用洞察 -child2: -webapp
您还可以尝试将配置更新为child2中的独立资源:
{
"name": "appsettings",
"type": "config",
"apiVersion": "2015-08-01",
"properties": {
"APPINSIGHTS_INSTRUMENTATIONKEY": "[reference(resourceId('Microsoft.Insights/components', variables('appInsightsName')),'2014-04-01').InstrumentationKey]"
}
}
另一个选项将在child1中输出,并在child2中进行引用,这将起作用。您可以将部署作为脚本的一部分进行删除(如果您不想删除child1,则可以创建仅执行此操作的代理部署),因此在Azure中将没有任何AI密钥的痕迹。 / p>
父母: -child1: -child1.1(以前的child1): -应用洞察 -child2:<<这取决于child1 -child2.1(以前为child2):<<此引用AI密钥 -webapp