【发布时间】:2021-08-25 15:16:52
【问题描述】:
我正在关注此文档并尝试使用此文档在 VM 中运行 shell 脚本:
https://docs.microsoft.com/en-us/rest/api/compute/virtual-machines-run-commands/run-command
我的第一个问题是:当我使用一个简单的脚本时,例如在 post 方法的输入中输入 'ls',我得到状态 202 并且没有结果消息,谁能告诉我为什么?
我的第二个问题是:我想运行一个脚本文件myscript.sh 并传递一些参数给它。但我不知道如何在输入中将参数传递给脚本
谁能帮我理解或告诉我怎么做,我正在使用 .NET 和 C#。
这是我现在的代码
using (var client = new HttpClient())
{
Body body = new Body
{
commandId = "RunShellScript",
script = new List<string> { "ls"}
};
// Generate Bearer Token
var azureServiceTokenProvider = new AzureServiceTokenProvider();
string managementApiUrl = "https://management.azure.com/";
var accessToken = azureServiceTokenProvider.GetAccessTokenAsync(managementApiUrl, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx").Result;
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
// Call Post Method
HttpResponseMessage response = await client.PostAsJsonAsync("https://management.azure.com/subscriptions/xxxx/resourceGroups/xxx/providers/Microsoft.Compute/virtualMachines/simpleLinuxVM/runCommand?api-version=2021-03-01", body);
// Fetch Result
if (response.IsSuccessStatusCode)
{
string finalResponse = await response.Content.ReadAsStringAsync();
Console.WriteLine(string.Format("Result:", finalResponse.ToString()));
}
else
{
Console.WriteLine(string.Format("The request failed with status code: {0}", response.StatusCode));
string responseContent = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseContent);
}
}
【问题讨论】:
标签: c# api shell azure-functions azure-virtual-machine