【问题标题】:Can't update Azure Event Grid Partner Topic from a PowerShell AzureFunction无法从 PowerShell Azure 函数更新 Azure 事件网格合作伙伴主题
【发布时间】:2023-02-20 15:46:55
【问题描述】:

我想更新 Azure 事件网格合作伙伴主题的订阅以更改 ExpirationDateTime。

为此,我正在使用PowerShell Azure 函数通过认证应用程序注册在 GraphAPI 上。我正在使用 Update-MgSubscription 函数来更新上面的字段。

当我执行该函数时,我收到以下错误消息:“应用程序 ID 'appid' 未启用事件网格订阅。”其中“appid”是我的应用程序注册的 ID。

我能够使用 Graph Explorer 更新该字段,但我无法通过 App Registration 找到特定的权限来执行此操作。我试图在 Azure 事件网格合作伙伴主题的 IAM 中允许应用程序,但没有成功。

任何想法?

【问题讨论】:

  • 要允许应用程序执行 Update-MgSubscription,您需要发送电子邮件至 ask-graph-and-grid@service.microsoft.com。到目前为止,我没有收到任何对我的电子邮件的反馈,所以我会找到另一个解决我的问题的方法。“在示例中的某个时刻,您将在 Azure AD 中注册一个应用程序。将您的应用程序 ID 通过电子邮件发送至 mailto:ask-graph-and-grid@service.microsoft.com?subject=Please allow my Azure AD application with ID to通过 Graph API 发送事件,以便 Microsoft Graph API 团队可以将您的应用程序 ID 添加到允许列表以使用此新功能。”
  • 我收到了 Microsoft 的反馈,不再需要通过电子邮件注册。您只需将以下标头添加到请求中:“x-ms-enable-features”=“EventGrid”。为此,您必须使用 Invoke-RestMethod 自己生成 Rest 请求,并使用 Get-MsalToken 处理身份验证。我无法进行创建/更新工作。目前这是一个预览功能。

标签: azure powershell azure-eventgrid azure-app-registration


【解决方案1】:

“应用程序 ID 'appid' 未启用事件网格订阅。”

当您使用的应用程序注册缺少更新 Event Grid subscription 所需的权限时,会发生此错误。您需要向您的应用程序注册授予必要的权限才能解决此问题。

您提到您之前尝试在 Azure 事件网格合作伙伴主题的 IAM 中允许该应用程序,但没有成功。这是因为更新订阅需要 Azure 事件网格系统级别的权限,而不仅仅是主题级别的权限。

要授予必要的权限,请检查以下内容:

选择您的Azure Event Grid System topic 并转到Access Control (IAM) -> Add a role assignment 并搜索Event Grid contributor role,然后分配给已注册的应用程序。现在它将管理Event subscriptions 的所有操作。

我在我的订阅中创建了一个系统主题并添加了相关权限,如下所示:

系统主题:

角色分配:

【讨论】:

    猜你喜欢
    • 2021-01-07
    • 1970-01-01
    • 2019-02-20
    • 1970-01-01
    • 2016-04-03
    • 2019-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多