【问题标题】:Azure ARM - Should Complete Deployment delete existing (child) Resources when omitted?Azure ARM - 完成部署是否应在省略时删除现有(子)资源?
【发布时间】:2018-03-02 16:13:54
【问题描述】:

在完整的资源组部署期间,如果模板中未指定资源,则预期资源将被删除。

但是,在我的情况下(使用带有 CNAME 的 DNS 区域部署 RSG),如果 CNAME 是通过 copy/copyIndex 迭代器指定的,则在从数组参数投影后丢失的 CNAME 不会被删除。

我有 a basic template 应该会重现此问题。

  1. 将 CNAME 记录添加到参数文件中。
  2. 部署模板(完成)并验证 CNAME 是否已创建。
  3. 从参数文件中删除 1 个或多个 CNAME 记录。
  4. 部署模板(完成)并观察已删除的 CNAME 资源没有被删除。

我找不到任何解释此行为警告的文档,所以我不确定这是错误还是预期行为?


编辑/跟进:

如果我采取“严厉”的方法对整个 DNS 区域进行核攻击,然后立即使用新模板重新部署它,如果重新部署没有问题,这是否会导致 DNS 服务中断并且这个操作是在受影响资源的 TTL 下进行的?

虽然这听起来是合理的,但我的直觉告诉我,这将永远是无法保证的竞争条件。 IE: - 如果“客户端”的 TTL 在我核对区域后立即过期,则 DNS 查找将失败,直到重新部署发生并且记录在 Azure DNS 中生效

但这引发了一些问题:

  • 如果我删除该区域,Azure DNS 是否仍会缓存 TTL?
    编辑: 答案似乎是“不是真的”based on content here
    • 对现有 DNS 记录的更改可能需要更长的时间,但仍应在 60 秒内反映在 Azure DNS 名称服务器上

  • 如果我在删除当前版本之前重新部署它,是否可以有效地重置该 Azure DNS 缓存(如果存在)?
    • 编辑:基于 ^^^,这给了我

【问题讨论】:

    标签: azure azure-resource-manager azure-deployment azure-resource-group


    【解决方案1】:

    这是因为子资源实际上并不是资源,即使它们是在模板中以这种方式创作的。部署的“模式”由 ARM 在平台层处理,图中唯一的资源是 dnszone。

    您可能会争辩说,RP 应该随后更新属性以从 dnszone 资源中删除另一个 cname(这将独立于部署模式)...因为如果它不这样做,唯一的办法就是删除整个记录可能并不理想。不同的 RP 在 ARM 中处理这种不同的方式(不幸的是)...如果您对该行为有强烈的意见,您可以打开用户语音请求...

    有帮助吗?

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2018-08-20
    • 2018-03-06
    • 1970-01-01
    相关资源
    最近更新 更多