Skip to content

Commit aa1c44a

Browse files
Update custom diagnostic logging options for Azure Functions - BLOB Storage
1 parent 07720e1 commit aa1c44a

File tree

14 files changed

+224
-15
lines changed

14 files changed

+224
-15
lines changed

Snippets/ASBFunctionsWorker/ASBFunctionsWorker_1/ASBFunctionsWorker_1.csproj

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,14 @@
77
<ItemGroup>
88
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http" Version="3.0.13" />
99
<PackageReference Include="NServiceBus.AzureFunctions.Worker.ServiceBus" Version="1.*" />
10+
<PackageReference Include="Azure.Storage.Blobs" Version="12.*" />
1011
</ItemGroup>
1112

1213
<ItemGroup Label="Resolves vulnerabilities">
1314
<PackageReference Include="Microsoft.IdentityModel.JsonWebTokens" Version="5.*" />
1415
<PackageReference Include="System.Drawing.Common" Version="4.*" />
1516
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="5.*" />
16-
<PackageReference Include="System.Net.Http" Version="4.*" />
17-
<PackageReference Include="System.Security.Cryptography.X509Certificates" Version="4.*" />
1817
<PackageReference Include="System.Security.Cryptography.Xml" Version="4.*" />
19-
<PackageReference Include="System.Text.RegularExpressions" Version="4.*" />
2018
</ItemGroup>
2119

2220
</Project>

Snippets/ASBFunctionsWorker/ASBFunctionsWorker_1/Configuration.cs

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
using Microsoft.Extensions.Hosting;
2-
using NServiceBus;
1+
using System;
32
using System.Threading.Tasks;
3+
using Azure.Storage.Blobs;
4+
using Microsoft.Extensions.Hosting;
5+
using NServiceBus;
46

57
#region asb-function-isolated-configuration
68
[assembly: NServiceBusTriggerFunction("WorkerDemoEndpoint")]
@@ -37,6 +39,36 @@ public static Task Main()
3739
#endregion
3840
}
3941

42+
class EnableDiagnosticsBlob
43+
{
44+
public static Task Main()
45+
{
46+
var endpointName = "ASBWorkerEndpoint";
47+
48+
#region asb-function-iso-diagnostics-blob
49+
var host = new HostBuilder()
50+
.ConfigureFunctionsWorkerDefaults()
51+
.UseNServiceBus(configuration =>
52+
{
53+
configuration.AdvancedConfiguration.CustomDiagnosticsWriter(async diagnostics =>
54+
{
55+
var connectionString = Environment.GetEnvironmentVariable("AzureWebJobsStorage");
56+
var blobServiceClient = new BlobServiceClient(connectionString);
57+
58+
var containerClient = blobServiceClient.GetBlobContainerClient("diagnostics");
59+
await containerClient.CreateIfNotExistsAsync();
60+
61+
var blobName = $"{DateTime.UtcNow:yyyy-MM-dd-HH-mm-ss-fff}-{endpointName}-configuration.txt";
62+
var blobClient = containerClient.GetBlobClient(blobName);
63+
await blobClient.UploadAsync(BinaryData.FromString(diagnostics));
64+
});
65+
})
66+
.Build();
67+
#endregion
68+
return host.RunAsync();
69+
}
70+
}
71+
4072
class ConfigureErrorQueue
4173
{
4274
#region asb-function-isolated-configure-error-queue

Snippets/ASBFunctionsWorker/ASBFunctionsWorker_2/ASBFunctionsWorker_2.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
<ItemGroup>
88
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http" Version="3.0.13" />
99
<PackageReference Include="NServiceBus.AzureFunctions.Worker.ServiceBus" Version="2.*" />
10+
<PackageReference Include="Azure.Storage.Blobs" Version="12.*" />
1011
</ItemGroup>
1112

1213
<ItemGroup Label="Resolves vulnerabilities">
1314
<PackageReference Include="System.Drawing.Common" Version="4.*" />
14-
<PackageReference Include="System.Security.Cryptography.X509Certificates" Version="4.*" />
1515
<PackageReference Include="System.Security.Cryptography.Xml" Version="4.*" />
1616
</ItemGroup>
1717

Snippets/ASBFunctionsWorker/ASBFunctionsWorker_2/Configuration.cs

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
using Microsoft.Extensions.Hosting;
2-
using NServiceBus;
1+
using System;
32
using System.Threading.Tasks;
3+
using Azure.Storage.Blobs;
4+
using Microsoft.Extensions.Hosting;
5+
using NServiceBus;
46

57
#region asb-function-isolated-configuration
68
[assembly: NServiceBusTriggerFunction("WorkerDemoEndpoint")]
@@ -37,6 +39,36 @@ public static Task Main()
3739
#endregion
3840
}
3941

42+
class EnableDiagnosticsBlob
43+
{
44+
public static Task Main()
45+
{
46+
var endpointName = "ASBWorkerEndpoint";
47+
48+
#region asb-function-iso-diagnostics-blob
49+
var host = new HostBuilder()
50+
.ConfigureFunctionsWorkerDefaults()
51+
.UseNServiceBus(configuration =>
52+
{
53+
configuration.AdvancedConfiguration.CustomDiagnosticsWriter(async diagnostics =>
54+
{
55+
var connectionString = Environment.GetEnvironmentVariable("AzureWebJobsStorage");
56+
var blobServiceClient = new BlobServiceClient(connectionString);
57+
58+
var containerClient = blobServiceClient.GetBlobContainerClient("diagnostics");
59+
await containerClient.CreateIfNotExistsAsync();
60+
61+
var blobName = $"{DateTime.UtcNow:yyyy-MM-dd-HH-mm-ss-fff}-{endpointName}-configuration.txt";
62+
var blobClient = containerClient.GetBlobClient(blobName);
63+
await blobClient.UploadAsync(BinaryData.FromString(diagnostics));
64+
});
65+
})
66+
.Build();
67+
#endregion
68+
return host.RunAsync();
69+
}
70+
}
71+
4072
class ConfigureErrorQueue
4173
{
4274
#region asb-function-isolated-configure-error-queue

Snippets/ASBFunctionsWorker/ASBFunctionsWorker_3/ASBFunctionsWorker_3.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<ItemGroup>
88
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http" Version="3.0.13" />
99
<PackageReference Include="NServiceBus.AzureFunctions.Worker.ServiceBus" Version="3.*" />
10+
<PackageReference Include="Azure.Storage.Blobs" Version="12.*" />
1011
</ItemGroup>
1112

1213
<ItemGroup Label="Resolves vulnerabilities">

Snippets/ASBFunctionsWorker/ASBFunctionsWorker_3/Configuration.cs

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
using Microsoft.Extensions.Hosting;
1+
using Azure.Storage.Blobs;
2+
using Microsoft.Extensions.Hosting;
23
using NServiceBus;
4+
using System;
35
using System.Threading.Tasks;
46

57
#region asb-function-isolated-configuration
@@ -37,6 +39,36 @@ public static Task Main()
3739
#endregion
3840
}
3941

42+
class EnableDiagnosticsBlob
43+
{
44+
public static Task Main()
45+
{
46+
var endpointName = "ASBWorkerEndpoint";
47+
48+
#region asb-function-iso-diagnostics-blob
49+
var host = new HostBuilder()
50+
.ConfigureFunctionsWorkerDefaults()
51+
.UseNServiceBus(configuration =>
52+
{
53+
configuration.AdvancedConfiguration.CustomDiagnosticsWriter(async diagnostics =>
54+
{
55+
var connectionString = Environment.GetEnvironmentVariable("AzureWebJobsStorage");
56+
var blobServiceClient = new BlobServiceClient(connectionString);
57+
58+
var containerClient = blobServiceClient.GetBlobContainerClient("diagnostics");
59+
await containerClient.CreateIfNotExistsAsync();
60+
61+
var blobName = $"{DateTime.UtcNow:yyyy-MM-dd-HH-mm-ss-fff}-{endpointName}-configuration.txt";
62+
var blobClient = containerClient.GetBlobClient(blobName);
63+
await blobClient.UploadAsync(BinaryData.FromString(diagnostics));
64+
});
65+
})
66+
.Build();
67+
#endregion
68+
return host.RunAsync();
69+
}
70+
}
71+
4072
class ConfigureErrorQueue
4173
{
4274
#region asb-function-isolated-configure-error-queue

Snippets/ASBFunctionsWorker/ASBFunctionsWorker_4/ASBFunctionsWorker_4.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
</PropertyGroup>
55
<ItemGroup>
66
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http" Version="3.0.13" />
7+
<PackageReference Include="Azure.Storage.Blobs" Version="12.*" />
78
<PackageReference Include="NServiceBus.AzureFunctions.Worker.ServiceBus" Version="4.*" />
89
</ItemGroup>
910
</Project>

Snippets/ASBFunctionsWorker/ASBFunctionsWorker_4/Configuration.cs

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
using Microsoft.Extensions.Hosting;
2-
using NServiceBus;
1+
using System;
32
using System.Threading.Tasks;
3+
using Azure.Storage.Blobs;
4+
using Microsoft.Extensions.Hosting;
5+
using NServiceBus;
46

57
#region asb-function-isolated-configuration
68
[assembly: NServiceBusTriggerFunction("WorkerDemoEndpoint")]
@@ -37,6 +39,37 @@ public static Task Main()
3739
#endregion
3840
}
3941

42+
class EnableDiagnosticsBlob
43+
{
44+
public static Task Main()
45+
{
46+
var endpointName = "ASBWorkerEndpoint";
47+
48+
#region asb-function-iso-diagnostics-blob
49+
var host = new HostBuilder()
50+
.ConfigureFunctionsWorkerDefaults()
51+
.UseNServiceBus(configuration =>
52+
{
53+
configuration.AdvancedConfiguration.CustomDiagnosticsWriter(async (diagnostics, cancellationToken) =>
54+
{
55+
var connectionString = Environment.GetEnvironmentVariable("AzureWebJobsStorage");
56+
var blobServiceClient = new BlobServiceClient(connectionString);
57+
58+
var containerClient = blobServiceClient.GetBlobContainerClient("diagnostics");
59+
await containerClient.CreateIfNotExistsAsync(cancellationToken: cancellationToken);
60+
61+
var blobName = $"{DateTime.UtcNow:yyyy-MM-dd-HH-mm-ss-fff}-{endpointName}-configuration.txt";
62+
var blobClient = containerClient.GetBlobClient(blobName);
63+
await blobClient.UploadAsync(BinaryData.FromString(diagnostics), cancellationToken);
64+
});
65+
})
66+
.Build();
67+
#endregion
68+
return host.RunAsync();
69+
}
70+
71+
}
72+
4073
class ConfigureErrorQueue
4174
{
4275
#region asb-function-isolated-configure-error-queue

Snippets/ASBFunctionsWorker/ASBFunctionsWorker_5/ASBFunctionsWorker_5.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
</PropertyGroup>
55
<ItemGroup>
66
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http" Version="3.1.0" />
7+
<PackageReference Include="Azure.Storage.Blobs" Version="12.*" />
78
<PackageReference Include="NServiceBus.AzureFunctions.Worker.ServiceBus" Version="5.*" />
89
</ItemGroup>
910
</Project>

Snippets/ASBFunctionsWorker/ASBFunctionsWorker_5/Configuration.cs

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
using Microsoft.Extensions.Hosting;
2-
using NServiceBus;
1+
using System;
32
using System.Threading.Tasks;
3+
using Azure.Storage.Blobs;
4+
using Microsoft.Extensions.Hosting;
5+
using NServiceBus;
46

57
#region asb-function-isolated-configuration
68
[assembly: NServiceBusTriggerFunction("WorkerDemoEndpoint")]
@@ -37,6 +39,37 @@ public static Task Main()
3739
#endregion
3840
}
3941

42+
class EnableDiagnosticsBlob
43+
{
44+
public static Task Main()
45+
{
46+
var endpointName = "ASBWorkerEndpoint";
47+
48+
#region asb-function-iso-diagnostics-blob
49+
var host = new HostBuilder()
50+
.ConfigureFunctionsWorkerDefaults()
51+
.UseNServiceBus(configuration =>
52+
{
53+
configuration.AdvancedConfiguration.CustomDiagnosticsWriter(async (diagnostics, cancellationToken) =>
54+
{
55+
var connectionString = Environment.GetEnvironmentVariable("AzureWebJobsStorage");
56+
var blobServiceClient = new BlobServiceClient(connectionString);
57+
58+
var containerClient = blobServiceClient.GetBlobContainerClient("diagnostics");
59+
await containerClient.CreateIfNotExistsAsync(cancellationToken: cancellationToken);
60+
61+
var blobName = $"{DateTime.UtcNow:yyyy-MM-dd-HH-mm-ss-fff}-{endpointName}-configuration.txt";
62+
var blobClient = containerClient.GetBlobClient(blobName);
63+
await blobClient.UploadAsync(BinaryData.FromString(diagnostics), cancellationToken);
64+
});
65+
})
66+
.Build();
67+
#endregion
68+
return host.RunAsync();
69+
}
70+
71+
}
72+
4073
class ConfigureErrorQueue
4174
{
4275
#region asb-function-isolated-configure-error-queue

0 commit comments

Comments
 (0)