localstack-dotnet-client - LocalStack.Client.Extensions 1.2.2

Extensions for the LocalStack.NET Client to integrate with .NET Core configuration and dependency injection frameworks. The extensions also provides wrapper around AWSSDK.Extensions.NETCore.Setup to use both LocalStack and AWS side-by-side

PM> Install-Package LocalStack.Client.Extensions -Version 1.2.2 -Source https://www.myget.org/F/localstack-dotnet-client/api/v3/index.json

Copy to clipboard

> nuget.exe install LocalStack.Client.Extensions -Version 1.2.2 -Source https://www.myget.org/F/localstack-dotnet-client/api/v3/index.json

Copy to clipboard

> dotnet add package LocalStack.Client.Extensions --version 1.2.2 --source https://www.myget.org/F/localstack-dotnet-client/api/v3/index.json

Copy to clipboard
<PackageReference Include="LocalStack.Client.Extensions" Version="1.2.2" />
Copy to clipboard
source https://www.myget.org/F/localstack-dotnet-client/api/v3/index.json

nuget LocalStack.Client.Extensions  ~> 1.2.2
Copy to clipboard

> choco install LocalStack.Client.Extensions --version 1.2.2 --source https://www.myget.org/F/localstack-dotnet-client/api/v2

Copy to clipboard
Import-Module PowerShellGet
Register-PSRepository -Name "localstack-dotnet-client" -SourceLocation "https://www.myget.org/F/localstack-dotnet-client/api/v2"
Install-Module -Name "LocalStack.Client.Extensions" -RequiredVersion "1.2.2" -Repository "localstack-dotnet-client" 
Copy to clipboard

Browse the sources in this package using Visual Studio or WinDbg by configuring the following symbol server URL: https://www.myget.org/F/localstack-dotnet-client/api/v2/symbolpackage/


LocalStack .NET Client Nuget NuGet Space Metric

LocalStack

Localstack.NET is an easy-to-use .NET client for LocalStack, a fully functional local AWS cloud stack. The client library provides a thin wrapper around aws-sdk-net which automatically configures the target endpoints to use LocalStack for your local cloud application development.

Package Stable Nightly
LocalStack.Client NuGet MyGet
LocalStack.Client.Extensions NuGet MyGet

Continuous Integration

Build server Platform Build status
Github Actions Ubuntu build-ubuntu
Github Actions Windows build-windows
Github Actions macOS build-macos

Table of Contents

  1. Supported Platforms
  2. Why LocalStack.NET Client?
  3. Prerequisites
  4. Getting Started
  5. Known Issues
  6. Developing
  7. Changelog
  8. License

Supported Platforms

Why LocalStack.NET Client?

  • Consistent Client Configuration: LocalStack.NET eliminates the need for manual endpoint configuration, providing a standardized and familiar approach to initializing clients.

  • Adaptable Environment Transition: Easily switch between LocalStack and actual AWS services with minimal configuration changes.

  • Versatile .NET Compatibility: Supports a broad spectrum of .NET versions, from .NET 7.0 and .NET Standard 2.0 to .NET Framework 4.6.1 and above.

  • Reduced Learning Curve: Offers a familiar interface tailored for LocalStack, ideal for developers acquainted with the AWS SDK for .NET.

  • Enhanced Development Speed: Reduces boilerplate and manual configurations, speeding up the development process.

Prerequisites

To utilize this library, you need to have LocalStack running. While LocalStack can be installed directly on your machine and accessed via the localstack cli, the recommended approach is to run LocalStack using Docker or docker-compose.

For detailed installation and setup instructions, please refer to the official LocalStack installation guide.

Getting Started

LocalStack.NET is installed from NuGet. To work with LocalStack in your .NET applications, you'll need the main library and its extensions. Here's how you can install them:

dotnet add package LocalStack.Client
dotnet add package LocalStack.Client.Extensions

Refer to documentation for more information on how to install LocalStack.NET.

LocalStack.NET is a library that provides a wrapper around the aws-sdk-net. This means you can use it in a similar way to the AWS SDK for .NET and to AWSSDK.Extensions.NETCore.Setup with a few differences. For more on how to use the AWS SDK for .NET, see Getting Started with the AWS SDK for .NET.

Setup

Here's a basic example of how to setup LocalStack.NET:

public void ConfigureServices(IServiceCollection services)
{
    // Add framework services.
    services.AddMvc();

    services.AddLocalStack(Configuration)
    services.AddDefaultAWSOptions(Configuration.GetAWSOptions());
    services.AddAwsService<IAmazonS3>();
    services.AddAwsService<IAmazonDynamoDB>();
}

The AddLocalStack method integrates LocalStack.NET into your application, and the AddAwsService method allows you to specify which AWS services you want to use with LocalStack.

AddLocalStack extension method is responsible for both configurations and adding of LocalStack.Client dependencies to service collection.

Configuration

To configure LocalStack.NET, you can use entries in the appsettings.json files. Here's a basic example for different environments:

appsettings.Development.json

"LocalStack": {
    "UseLocalStack": true,
    "Session": {
        "RegionName": "eu-central-1"
    },
    "Config": {
        "LocalStackHost": "localhost.localstack.cloud", // or "localhost",
        "EdgePort": 4566
    }
}

appsettings.Production.json

"LocalStack": {
    "UseLocalStack": false
},
"AWS": {
    "Profile": "<your aws profile>",
    "Region": "eu-central-1"
}

The RegionName is important as LocalStack creates resources based on the specified region. For more advanced configurations and understanding how LocalStack.NET operates with LocalStack, refer to documentation.

Known Issues

  • LocalStack Versions v2.0.1 - v2.2: In versions v2.0.1 through v2.2 of LocalStack, the URL routing logic was changed, causing issues with SQS and S3 operations. Two issues were opened in LocalStack regarding this: issue #8928 and issue #8924. LocalStack addressed this problem with PR #8962. Therefore, when using LocalStack.NET, either use version v2.0 of LocalStack (there are no issues with the v1 series as well) or the upcoming v2.3 version, or use the latest container from Docker Hub.

  • AWS_SERVICE_URL Environment Variable: Unexpected behaviors might occur in LocalStack.NET when the AWS_SERVICE_URL environment variable is set. This environment variable is typically set by LocalStack in the container when using AWS Lambda, and AWS also uses this environment variable in the live environment. Soon, just like in LocalStack's official Python library, this environment variable will be prioritized by LocalStack.NET when configuring the LocalStack host, and there will be a general simplification in the configuration. You can follow this in the issues issue #27 and issue #32. You set the AWS_SERVICE_URL to empty string until this issue is resolved.

Environment.SetEnvironmentVariable("AWS_SERVICE_URL", string.Empty);
  • IAmazonLambda Operations: There's a general issue with IAmazonLambda operations. This matter is currently under investigation.

Developing

We appreciate contributions in the form of feedback, bug reports, and pull requests.

Building the Project

To build the project, use the following commands based on your operating system:

Windows

build.ps1

Linux

./build.sh

Sandbox Applications

The LocalStack .NET repository includes several sandbox console applications located in tests/sandboxes. These applications serve both as testing tools and as examples. Refer to the documentation for more information

Running Tests

To execute the tests, use the commands below:

Windows

build.ps1 --target=tests

Linux

./build.sh --target=tests

Changelog

Please refer to CHANGELOG.md to see the complete list of changes for each release.

License

Licensed under MIT, see LICENSE for the full text.

  • .NETFramework 6.0
    • AWSSDK.Extensions.NETCore.Setup (>= 3.7.7)
    • LocalStack.Client (>= 1.4.1)
    • Microsoft.Extensions.Configuration.Abstractions (>= 3.1.32)
    • Microsoft.Extensions.Configuration.Binder (>= 3.1.32)
    • Microsoft.Extensions.DependencyInjection.Abstractions (>= 3.1.32)
    • Microsoft.Extensions.Logging.Abstractions (>= 3.1.32)
    • Microsoft.Extensions.Options.ConfigurationExtensions (>= 3.1.32)
  • .NETFramework 7.0
    • AWSSDK.Extensions.NETCore.Setup (>= 3.7.7)
    • LocalStack.Client (>= 1.4.1)
    • Microsoft.Extensions.Configuration.Abstractions (>= 3.1.32)
    • Microsoft.Extensions.Configuration.Binder (>= 3.1.32)
    • Microsoft.Extensions.DependencyInjection.Abstractions (>= 3.1.32)
    • Microsoft.Extensions.Logging.Abstractions (>= 3.1.32)
    • Microsoft.Extensions.Options.ConfigurationExtensions (>= 3.1.32)
  • .NETStandard 2.0
    • AWSSDK.Extensions.NETCore.Setup (>= 3.7.7)
    • LocalStack.Client (>= 1.4.1)
    • Microsoft.Extensions.Configuration.Abstractions (>= 3.1.32)
    • Microsoft.Extensions.Configuration.Binder (>= 3.1.32)
    • Microsoft.Extensions.DependencyInjection.Abstractions (>= 3.1.32)
    • Microsoft.Extensions.Logging.Abstractions (>= 3.1.32)
    • Microsoft.Extensions.Options.ConfigurationExtensions (>= 3.1.32)
  • .NETFramework 6.0: 6.0.0.0
  • .NETFramework 7.0: 7.0.0.0
  • .NETStandard 2.0: 2.0.0.0

Owners

Deniz ─░rgin

Authors

LocalStack.NET, Deniz ─░rgin

Project URL

https://github.com/localstack-dotnet/localstack-dotnet-client

License

MIT

Tags

aws-sdk, localstack, client-library, dotnet, dotnet-core

Info

3 total downloads
0 downloads for version 1.2.2
Download (44.58 KB)
Download symbols (25.21 KB)
Found on the current feed only

Package history

Version Size Last updated Downloads Mirrored?
1.2.2 44.58 KB Fri, 22 Sep 2023 08:09:24 GMT 0
1.2.1 44.47 KB Sun, 10 Sep 2023 14:44:53 GMT 1
1.2.0 67.24 KB Wed, 01 Feb 2023 09:20:08 GMT 1
1.1.3 66.22 KB Wed, 20 Apr 2022 23:16:19 GMT 0
1.1.2 67.09 KB Sun, 28 Nov 2021 22:52:06 GMT 1
1.1.1 38.78 KB Sun, 28 Nov 2021 22:56:02 GMT 0
1.1.0 34 KB Mon, 24 May 2021 12:30:35 GMT 0
1.0.0.4 34 KB Mon, 24 May 2021 11:41:16 GMT 0
1.0.0 33.81 KB Mon, 08 Feb 2021 17:36:05 GMT 0