微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用角色分配增量重新部署 ARM 模板会引发错误

如何解决使用角色分配增量重新部署 ARM 模板会引发错误

如果我使用 Azure Pipelines 对包含角色分配的 ARM 模板进行“增量”“资源组”范围的部署,似乎我无法重新运行/重新部署管道而不在角色分配资源上收到错误

RoleAssignmentUpdateNotPermitted: Tenant ID,application ID,principal ID,and scope are not allowed to be updated.

这看起来是一个明显的问题,必须有一个通用的解决方法? 我希望将角色分配分解到一个单独的模板中,也许会在每个部署中删除并重新创建角色分配?

解决方法

使用角色分配增量重新部署 ARM 模板会引发错误

正如你所说,这是一个明显的问题。对于相同的范围或资源,您只能将相同的角色分配给服务主体一次。

因此,存在与您尝试通过此模板创建的同名的现有角色分配,结果显示“ public function up() { Schema::create('books',function (Blueprint $table) { $table->id(); $table->string('bookname'); $table->string('auther'); $table->string('cost'); $table->binary('book_image'); $table->timestamps(); /* $table->bigIncrements('std_id'); $table->foreign('std_id') ->references('id') ->on('students') ->onDelete('cascade'); */ $table->foreignId('sudents_id')->constrained('students'); }); } ”错误。

要解决此问题,我们需要确保每次部署到不同资源组时使用不同的 GUID 进行角色分配,但同时确保部署到同一资源组时使用相同的 GUID。

我们可以使用 RoleAssignmentUpdateNotPermitted 函数!它需要一个或多个用于计算散列的字符串,非常类似于 uniquestring 函数;只有这个会生成一个 GUID 格式的字符串:

guid

您可以参考文档 Defining RBAC Role Assignments in ARM Templates 了解更多详情。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。