从 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,并将主体添加到贡献者角色,它适用于我的情况,我相信它也适用于你的情况。
我有一个 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,并将主体添加到贡献者角色,它适用于我的情况,我相信它也适用于你的情况。