首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Azure事件网格正在创建订阅:“没有执行操作的授权”

Azure事件网格正在创建订阅:“没有执行操作的授权”
EN

Stack Overflow用户
提问于 2021-08-06 18:06:56
回答 1查看 204关注 0票数 0

我目前正在使用node js将主题发布到事件网格,并通过事件网格订阅主题。在https://docs.microsoft.com/en-us/rest/api/eventgrid/上使用事件网格API时,我得到了一个错误,在创建订阅时没有执行操作的授权。我已经创建了一个主题,并且拥有访问我的Azure帐户的访问权限,因此我不明白为什么会出现此rest错误。

我的代码:

代码语言:javascript
运行
复制
const { ClientSecretCredential } = require("@azure/identity");
const { SystemTopicEventSubscriptions, EventGridManagementClientContext, DomainTopics, EventSubscriptions  } = require("@azure/arm-eventgrid");
const subscriptionId = "idea number";

const resourceGroupName = "eventgrid-dev";
const domainName = "test-domain";
let tenantId = "idea number";
let clientSecret = "idea number";
let clientId = "idea number";
const firstCredential = new ClientSecretCredential(tenantId, clientId, clientSecret);
//const client = new EventGridManagementClient(firstCredential, subscriptionId); 

const clientContext = new EventGridManagementClientContext(firstCredential, subscriptionId);

// Topics
let domainTopics = new DomainTopics(clientContext);

domainTopics.beginCreateOrUpdate(resourceGroupName, domainName, "test-topic")
.then(result => {
    console.log("result");
    console.log(result);
})
.catch(error => {
    console.log("Error");
    console.log(error);
}) 

let subscription = new EventSubscriptions(clientContext);
subscription.beginCreateOrUpdate("/subscriptions/subscriptionId/resourceGroups/eventgrid-dev", "test-subscription",{topic: "test-topic"})
.then(result => {
  console.log("result");
  console.log(result);
})
.catch(error => {
  console.log("Error");
  console.log(error);
}) 

输出:

代码语言:javascript
运行
复制
Error
RestError: The client 'subscriptionID' with object id 'subscriptionID' does not have authorization to perform action 'Microsoft.EventGrid/eventSubscriptions/Microsoft.EventGrid/test-subscription/write' over scope '/subscriptions/subscriptionID/resourceGroups/eventgrid-dev/providers/Microsoft.EventGrid/eventSubscriptions/providers/Microsoft.EventGrid/eventSubscriptions' or the scope is invalid. If access was recently granted, please refresh your credentials.

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2021-08-13 15:49:46

在存在事件网格域的情况下,使用以下代码在请求的主题上创建事件网格订阅。请注意,主题是在第一次订阅时自动创建的:

代码语言:javascript
运行
复制
let subscription = new EventSubscriptions(clientContext);
const scope = '/subscriptions/' + subscriptionId + '/resourceGroups/' + resourceGroupName + '/providers/Microsoft.EventGrid/domains/' + domainName + '/topics/test-topic';
const test_webhookEndpointUrl = ' ... ';
subscription.beginCreateOrUpdate(scope, "test-subscription",
    {
        destination: {
            endpointType: "WebHook",
            endpointUrl: test_webhookEndpointUrl
        }      
    }
).then(result => {
        console.log("result");
        console.log(result);
    })
    .catch(error => {
        console.log("Error");
        console.log(error);
    })
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68685884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档