从 Azure 函数访问 Azure 容器实例

Access Azure Container Instance from Azure Function

我有一个 Azure 函数需要为 Azure 容器实例调用 Azure REST API - 基本上我只需要重新启动容器组 - 我已经为该函数启用了托管身份并尝试使用 AzureServiceTokenProvider 来获取 Azure 容器管理 API 的访问令牌。

令牌提供者使用的资源是https://management.azure.com。但是,当我尝试使用令牌访问 REST API 时,出现了禁止错误。

我已将贡献者角色授予我的系统,为该功能分配托管身份。可能是什么问题?函数内部代码如下

var azureServiceTokenprovider = new AzureServiceTokenProvider();
        string accessToken = await azureServiceTokenprovider.GetAccessTokenAsync("https://management.azure.com/");

        var acrUrl = $"https://management.azure.com/subscriptions/{mysubid}/resourceGroups/{reource group name}/providers/Microsoft.ContainerInstance/containerGroups/{container group name}/restart?api-version=2021-09-01";
        HttpClient client = new();
        var content = "{}";
        client.DefaultRequestHeaders.Authorization =    new AuthenticationHeaderValue("Bearer", accessToken);
        var result = await client.PostAsync(acrUrl, new StringContent(content.ToString()));

我遇到过类似的问题。我要解决的问题是访问资源组 -> 访问控制 IAM,并将主体添加到贡献者角色,它适用于我的情况,我相信它也适用于你的情况。