Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .autover/changes/0eb5580c-be03-4e71-a7b1-c0ae06afea0a.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"Projects": [
{
"Name": "Amazon.Lambda.TestTool.BlazorTester",
"Type": "Minor",
"ChangelogMessages": [
"Add AWSSDK.Signer package to support \u0027aws login\u0027 based credentials",
"Update to V4 of the AWS SDK for .NET"
]
},
{
"Name": "Amazon.Lambda.TestTool",
"Type": "Minor",
"ChangelogMessages": [
"Add AWSSDK.Signer package to support \u0027aws login\u0027 based credentials",
"Update AWS SDK and Amazon Lambda packages to latest versions"
]
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,19 +22,19 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Amazon.Lambda.SQSEvents" Version="2.2.1" />
<PackageReference Include="AWSSDK.Extensions.NETCore.Setup" Version="4.0.3.22" />
<PackageReference Include="AWSSDK.Lambda" Version="4.0.13.1" />
<PackageReference Include="AWSSDK.SQS" Version="4.0.2.14" />
<PackageReference Include="AWSSDK.DynamoDBv2" Version="4.0.15.2" />
<PackageReference Include="AWSSDK.DynamoDBStreams" Version="4.0.4.17" />
<PackageReference Include="Amazon.Lambda.DynamoDBEvents" Version="3.1.2" />
<PackageReference Include="AWSSDK.SecurityToken" Version="4.0.6.3" />
<PackageReference Include="AWSSDK.SSO" Version="4.0.2.13" />
<PackageReference Include="AWSSDK.SSOOIDC" Version="4.0.3.14" />
<PackageReference Include="Amazon.Lambda.SQSEvents" Version="3.0.0" />
<PackageReference Include="AWSSDK.Extensions.NETCore.Setup" Version="4.0.4.1" />
<PackageReference Include="AWSSDK.Lambda" Version="4.0.15.6" />
<PackageReference Include="AWSSDK.SQS" Version="4.0.2.32" />
<PackageReference Include="AWSSDK.DynamoDBv2" Version="4.0.18.5" />
<PackageReference Include="AWSSDK.DynamoDBStreams" Version="4.0.4.32" />
<PackageReference Include="Amazon.Lambda.DynamoDBEvents" Version="4.0.0" />
<PackageReference Include="AWSSDK.SecurityToken" Version="4.0.6.7" />
<PackageReference Include="AWSSDK.SSO" Version="4.0.2.31" />
<PackageReference Include="AWSSDK.SSOOIDC" Version="4.0.4" />
<PackageReference Include="Spectre.Console" Version="0.49.1" />
<PackageReference Include="Spectre.Console.Cli" Version="0.49.1" />
<PackageReference Include="Amazon.Lambda.APIGatewayEvents" Version="2.7.3" />
<PackageReference Include="Amazon.Lambda.APIGatewayEvents" Version="3.0.0" />
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.11" />
<PackageReference Include="BlazorMonaco" Version="3.2.0" />
</ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,26 +11,26 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Amazon.Lambda.Core" Version="2.8.1" />
<PackageReference Include="Amazon.Lambda.RuntimeSupport" Version="1.14.2" />
<PackageReference Include="Amazon.Lambda.Serialization.SystemTextJson" Version="2.4.5" />
<PackageReference Include="Amazon.Lambda.APIGatewayEvents" Version="2.7.3" />
<PackageReference Include="AWSSDK.APIGateway" Version="4.0.5.8" />
<PackageReference Include="AWSSDK.CloudFormation" Version="4.0.8.8" />
<PackageReference Include="AWSSDK.IdentityManagement" Version="4.0.9.7" />
<PackageReference Include="AWSSDK.ApiGatewayV2" Version="4.0.4.9" />
<PackageReference Include="AWSSDK.Lambda" Version="4.0.13.1" />
<PackageReference Include="AWSSDK.SecurityToken" Version="4.0.6.3" />
<PackageReference Include="AWSSDK.SQS" Version="4.0.2.14" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="Amazon.Lambda.Core" Version="3.1.0" />
<PackageReference Include="Amazon.Lambda.RuntimeSupport" Version="2.1.0" />
<PackageReference Include="Amazon.Lambda.Serialization.SystemTextJson" Version="3.0.0" />
<PackageReference Include="Amazon.Lambda.APIGatewayEvents" Version="3.0.0" />
<PackageReference Include="AWSSDK.APIGateway" Version="4.0.7.1" />
<PackageReference Include="AWSSDK.CloudFormation" Version="4.0.8.26" />
<PackageReference Include="AWSSDK.IdentityManagement" Version="4.0.9.26" />
<PackageReference Include="AWSSDK.ApiGatewayV2" Version="4.0.6.1" />
<PackageReference Include="AWSSDK.Lambda" Version="4.0.15.6" />
<PackageReference Include="AWSSDK.SecurityToken" Version="4.0.6.7" />
<PackageReference Include="AWSSDK.SQS" Version="4.0.2.32" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.5.1" />
<PackageReference Include="Moq" Version="4.20.72" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="9.0.0" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="10.0.8" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.0.0">
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="6.0.3">
<PackageReference Include="coverlet.collector" Version="10.0.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Amazon.Lambda.APIGatewayEvents" Version="2.7.3" />
<PackageReference Include="Amazon.Lambda.APIGatewayEvents" Version="3.0.0" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.assert" Version="2.9.3" />
</ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,21 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Amazon.Lambda.RuntimeSupport" Version="1.14.2" />
<PackageReference Include="Amazon.Lambda.Serialization.SystemTextJson" Version="2.4.5" />
<PackageReference Include="AWSSDK.Lambda" Version="4.0.13.1" />
<PackageReference Include="AWSSDK.DynamoDBv2" Version="4.0.15.2" />
<PackageReference Include="AWSSDK.DynamoDBStreams" Version="4.0.4.17" />
<PackageReference Include="Amazon.Lambda.DynamoDBEvents" Version="3.1.2" />
<PackageReference Include="coverlet.collector" Version="6.0.3">
<PackageReference Include="Amazon.Lambda.RuntimeSupport" Version="2.1.0" />
<PackageReference Include="Amazon.Lambda.Serialization.SystemTextJson" Version="3.0.0" />
<PackageReference Include="AWSSDK.Lambda" Version="4.0.15.6" />
<PackageReference Include="AWSSDK.DynamoDBv2" Version="4.0.18.5" />
<PackageReference Include="AWSSDK.DynamoDBStreams" Version="4.0.4.32" />
<PackageReference Include="Amazon.Lambda.DynamoDBEvents" Version="4.0.0" />
<PackageReference Include="coverlet.collector" Version="10.0.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.5.1" />
<PackageReference Include="Moq" Version="4.20.72" />
<PackageReference Include="Spectre.Console.Cli" Version="0.49.1" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.0.0">
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,15 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Amazon.Lambda.Core" Version="2.7.0" />
<PackageReference Include="AWSSDK.SSO" Version="3.7.400.85" />
<PackageReference Include="AWSSDK.SSOOIDC" Version="3.7.400.86" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="Amazon.Lambda.Core" Version="3.1.0" />
<PackageReference Include="AWSSDK.Signin" Version="4.0.0.27" />
<PackageReference Include="AWSSDK.SSO" Version="4.0.2.31" />
<PackageReference Include="AWSSDK.SSOOIDC" Version="4.0.4" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
<PackageReference Include="YamlDotNet.Signed" Version="5.2.1" />

<PackageReference Include="AWSSDK.Core" Version="3.7.401.5" />
<PackageReference Include="AWSSDK.SQS" Version="3.7.400.85" />
<PackageReference Include="AWSSDK.Core" Version="4.0.7.3" />
<PackageReference Include="AWSSDK.SQS" Version="4.0.2.32" />
</ItemGroup>


Expand All @@ -34,15 +35,15 @@
</PropertyGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'net8.0' ">
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="8.0.2" />
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="10.0.8" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'net9.0' ">
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="9.0.0" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'net10.0' ">
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="10.0.2" />
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="10.0.8" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using Amazon.Lambda.TestTool.Runtime;
using Amazon.Lambda.TestTool.Runtime;
using System;
using System.Collections.Generic;
using System.IO;
Expand All @@ -18,7 +18,7 @@ public class LocalLambdaOptions

public LambdaFunction LoadLambdaFuntion(string configFile, string functionHandler)
{
var fullConfigFilePath = this.LambdaConfigFiles.FirstOrDefault(x =>
var fullConfigFilePath = LambdaConfigFiles.FirstOrDefault(x =>
string.Equals(configFile, x, StringComparison.OrdinalIgnoreCase) || string.Equals(configFile, Path.GetFileName(x), StringComparison.OrdinalIgnoreCase));
if (fullConfigFilePath == null)
{
Expand Down Expand Up @@ -51,7 +51,7 @@ public LambdaFunction LoadLambdaFuntion(LambdaConfigInfo configInfo, string func
throw new Exception($"Failed to find function {functionHandler}");
}

var function = this.LambdaRuntime.LoadLambdaFunction(functionInfo);
var function = LambdaRuntime.LoadLambdaFunction(functionInfo);
return function;
}

Expand All @@ -60,14 +60,14 @@ public LambdaFunction LoadLambdaFuntion(LambdaConfigInfo configInfo, string func
/// </summary>
public string GetPreferenceDirectory(bool createIfNotExist)
{
var currentDirectory = this.LambdaRuntime.LambdaAssemblyDirectory;
var currentDirectory = LambdaRuntime.LambdaAssemblyDirectory;
while (currentDirectory != null && !Utils.IsProjectDirectory(currentDirectory))
{
currentDirectory = Directory.GetParent(currentDirectory)?.FullName;
}

if (currentDirectory == null)
currentDirectory = this.LambdaRuntime.LambdaAssemblyDirectory;
currentDirectory = LambdaRuntime.LambdaAssemblyDirectory;

var preferenceDirectory = Path.Combine(currentDirectory, ".lambda-test-tool");
if (createIfNotExist && !Directory.Exists(preferenceDirectory))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using Amazon.SQS.Model;
using Amazon.SQS.Model;
using System;
using System.Collections.Generic;
using System.Text.Json;
Expand All @@ -25,35 +25,35 @@ public class DlqMonitor

public DlqMonitor(ILocalLambdaRuntime runtime, LambdaFunction function, string profile, string region, string queueUrl)
{
this._runtime = runtime;
this._function = function;
this._profile = profile;
this._region = region;
this._queueUrl = queueUrl;
_runtime = runtime;
_function = function;
_profile = profile;
_region = region;
_queueUrl = queueUrl;
}

public void Start()
{
this._cancelSource = new CancellationTokenSource();
_ = Loop(this._cancelSource.Token);
_cancelSource = new CancellationTokenSource();
_ = Loop(_cancelSource.Token);
}

public void Stop()
{
this._cancelSource.Cancel();
_cancelSource.Cancel();
}

private async Task Loop(CancellationToken token)
{
var aws = this._runtime.AWSService;
var aws = _runtime.AWSService;
while (!token.IsCancellationRequested)
{
Message message = null;
LogRecord logRecord = null;
try
{
// Read a message from the queue using the ExternalCommands console application.
message = await aws.ReadMessageAsync(this._profile, this._region, this._queueUrl);
message = await aws.ReadMessageAsync(_profile, _region, _queueUrl);
if (token.IsCancellationRequested)
{
return;
Expand All @@ -68,9 +68,9 @@ private async Task Loop(CancellationToken token)
// If a message was received execute the Lambda function within the test tool.
var request = new ExecutionRequest
{
AWSProfile = this._profile,
AWSRegion = this._region,
Function = this._function,
AWSProfile = _profile,
AWSRegion = _region,
Function = _function,
Payload = JsonSerializer.Serialize(new
{
Records = new List<Message>
Expand All @@ -80,7 +80,7 @@ private async Task Loop(CancellationToken token)
})
};

var response = await this._runtime.ExecuteLambdaFunctionAsync(request);
var response = await _runtime.ExecuteLambdaFunctionAsync(request);

// Capture the results to send back to the client application.
logRecord = new LogRecord
Expand Down Expand Up @@ -109,7 +109,7 @@ private async Task Loop(CancellationToken token)

lock (LOG_LOCK)
{
this._records.Add(logRecord);
_records.Add(logRecord);
}
}
}
Expand All @@ -119,8 +119,8 @@ public IList<LogRecord> FetchNewLogs()
{
lock (LOG_LOCK)
{
var logsToSend = this._records;
this._records = new List<LogRecord>();
var logsToSend = _records;
_records = new List<LogRecord>();
return logsToSend;
}
}
Expand All @@ -135,4 +135,4 @@ public class LogRecord
public string ReceiptHandle { get; set; }
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Amazon.Runtime;
using Amazon.Runtime;
using Amazon.Runtime.CredentialManagement;
using Amazon.Runtime.Credentials;
using Amazon.SQS;
using Amazon.SQS.Model;
using System.Collections.Generic;
Expand Down Expand Up @@ -35,7 +36,7 @@ public async Task<IList<string>> ListQueuesAsync(string profile, string region)
using (var client = new AmazonSQSClient(creds, RegionEndpoint.GetBySystemName(region)))
{
var response = await client.ListQueuesAsync(new ListQueuesRequest());
return response.QueueUrls;
return response.QueueUrls ?? new List<string>();
}
}

Expand All @@ -51,11 +52,11 @@ public async Task<Message> ReadMessageAsync(string profile, string region, strin
WaitTimeSeconds = 20,
MaxNumberOfMessages = 1,
VisibilityTimeout = 60,
AttributeNames = new List<string>() { "All" },
MessageSystemAttributeNames = new List<string>() { "All" },
MessageAttributeNames = new List<string>() { "*" }
};
var response = await client.ReceiveMessageAsync(request);
if (response.Messages.Count == 0)
if (response.Messages == null ||response.Messages.Count == 0)
{
return null;
}
Expand Down Expand Up @@ -104,7 +105,7 @@ static AWSCredentials GetCredentials(string profileName)
}
else
{
credentials = FallbackCredentialsFactory.GetCredentials();
credentials = DefaultAWSCredentialsIdentityResolver.GetCredentials();
}
return credentials;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,9 +171,9 @@ protected virtual void Dispose(bool disposing)
{
if (disposing)
{
this.Client.Dispose();
this.Source.Cancel();
this.WebHost.StopAsync().GetAwaiter().GetResult();
Client.Dispose();
Source.Cancel();
WebHost.StopAsync().GetAwaiter().GetResult();
}

disposedValue = true;
Expand Down