希望有些人比我更了解Azure功能可以提供帮助。
开箱即用,您可以使用应用设置中的APPINSIGHTS_INSTRUMENTATIONKEY设置登录Application Insights ...这将在基本级别记录功能请求,然后允许您执行.py
等
只需使用TraceWriter或ILogger即可。
问题是,我不想将Key存储在我的配置中,我想将它存储在KeyVault中,以及App的所有其他键。我还想做一些其他自定义日志记录,因此根据此链接:https://docs.microsoft.com/en-us/azure/azure-functions/functions-monitoring#custom-telemetry-in-c-functions
我们可以实现一个自定义.exe
对象来从KeyVault中读取而不会有太多麻烦......
但是,使用ILogger获得的所有免费日志记录现已消失,所以我想我需要做的是以某种方式将Application Insights ILogger注入我的函数...
有人可以帮助我理解这里的限制,就像它可能会如何 一样。我还假设必须有一个GitHub开放案例,我会热衷于它找到并放重,因为我无法想象我是唯一一个面对这一点的人。
答案 0 :(得分:0)
问题是,我不想将密钥存储在我的配置中,我想将其存储在KeyVault中,以及该应用程序的所有其他密钥。
我们可以将 APPINSIGHTS_INSTRUMENTATIONKEY 存储在密钥保管库中。我建议您使用Azure MSI函数。
我也为它做了一个演示。以下是我的详细步骤。
1.创建一个azure功能应用程序并从azure portal
启用MSI2.创建Application Insight应用程序并复制INSTRUMENTATIONKEY值。
3.使用复制的INSTRUMENTATIONKEY vaule创建一个秘密。
4.如果想从Azure应用程序中获取秘密,我们需要添加访问策略
5.使用VS创建一个httptrigger函数并添加以下演示代码。
CREATE TABLE SystemEvents
(
[TimeStamp] datetime
)
GO
CREATE INDEX IX_SystemEvents_TimeStamp
ON dbo.SystemEvents(TimeStamp)
CREATE TABLE SystemEventsTotalCount
(
TotalCount int NOT NULL
)
GO
INSERT INTO SystemEventsTotalCount VALUES ((SELECT COUNT(*) FROM SystemEvents))
GO
CREATE TRIGGER SystemEvents_TotalCount
ON SystemEvents
FOR INSERT, DELETE
AS
DECLARE @InsertedRows int = (SELECT COUNT(*) FROM inserted);
DECLARE @DeletedRows int = (SELECT COUNT(*) FROM deleted);
UPDATE SystemEventsTotalCount
SET TotalCount = TotalCount + @InsertedRows - @DeletedRows
GO
GO
CREATE VIEW EventCounts
AS
WITH b AS
(
SELECT
SUM(CASE WHEN r.Timestamp > DATEADD(MINUTE, -15, GETDATE()) AND r.Timestamp <= GETDATE() THEN 1 ELSE 0 END) AS Last15MinEventCount,
SUM(CASE WHEN r.Timestamp > DATEADD(MINUTE, -30, GETDATE()) AND r.Timestamp <= DATEADD(MINUTE, -15, GETDATE()) THEN 1 ELSE 0 END) AS From15To30EventCount,
SUM(CASE WHEN r.Timestamp > DATEADD(MINUTE, -60, GETDATE()) AND r.Timestamp <= DATEADD(MINUTE, -30, GETDATE()) THEN 1 ELSE 0 END) AS From30to60EventCount,
(SELECT TotalCount FROM dbo.SystemEventsTotalCount) AS TotalEventCount
FROM
dbo.SystemEvents r
WHERE
r.Timestamp > DATEADD(MINUTE, -60, GETDATE())
)
SELECT
b.Last15MinEventCount, b.From15To30EventCount, b.From30to60EventCount,
(b.TotalEventCount - b.Last15MinEventCount - b.From15To30EventCount - b.From30to60EventCount) AS OlderThan60EventCount
FROM b
GO
SELECT * FROM EventCounts
6.将项目发布到azure,并从azure
进行测试7.从Application Insight中查看。