Always try to return a log analytics workspace ID when running `deployWorkspaceProject` (#686)

This commit is contained in:
Matthew Fisher 2024-06-06 09:46:03 -07:00 коммит произвёл GitHub
Родитель 0f3dcf4b6b
Коммит a92fa750dd
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
1 изменённых файлов: 18 добавлений и 0 удалений

Просмотреть файл

@ -4,6 +4,9 @@
*--------------------------------------------------------------------------------------------*/
import { type RegistryPassword } from "@azure/arm-containerregistry";
import { type Workspace } from "@azure/arm-operationalinsights";
import { uiUtils } from "@microsoft/vscode-azext-azureutils";
import { createOperationalInsightsManagementClient } from "../../utils/azureClients";
import type * as api from "../api/vscode-azurecontainerapps.api";
import { listCredentialsFromRegistry } from "../image/imageSource/containerRegistry/acr/listCredentialsFromRegistry";
import { type DeployWorkspaceProjectContext } from "./DeployWorkspaceProjectContext";
@ -14,6 +17,8 @@ export async function getDeployWorkspaceProjectResults(context: DeployWorkspaceP
const registryCredentials: { username: string, password: RegistryPassword } | undefined = context.registry ?
await listCredentialsFromRegistry(context, context.registry) : undefined;
context.logAnalyticsWorkspace ??= await tryGetLogAnalyticsWorkspace(context);
return {
resourceGroupId: context.resourceGroup?.id,
logAnalyticsWorkspaceId: context.logAnalyticsWorkspace?.id,
@ -26,3 +31,16 @@ export async function getDeployWorkspaceProjectResults(context: DeployWorkspaceP
imageName: context.imageName
};
}
export async function tryGetLogAnalyticsWorkspace(context: DeployWorkspaceProjectContext): Promise<Workspace | undefined> {
const resourceGroupName = context.resourceGroup?.name;
const logAnalyticsCustomerId = context.managedEnvironment?.appLogsConfiguration?.logAnalyticsConfiguration?.customerId;
if (!resourceGroupName || !logAnalyticsCustomerId) {
return undefined;
}
const client = await createOperationalInsightsManagementClient(context);
const workspaces: Workspace[] = await uiUtils.listAllIterator(client.workspaces.listByResourceGroup(resourceGroupName));
return workspaces.find(w => w.customerId === logAnalyticsCustomerId);
}