# AWSCDKEnvironmentExtensions Methods

- Package: [Aspire.Hosting.AWS](/reference/api/csharp/aspire.hosting.aws.md)
- Type: [AWSCDKEnvironmentExtensions](/reference/api/csharp/aspire.hosting.aws/awscdkenvironmentextensions.md)
- Kind: `Methods`
- Members: `10`

Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.

## AddAWSCDKEnvironment(IDistributedApplicationBuilder, string, CDKDefaultsProviderFactory, AWSCDKEnvironmentResourceConfig?, string?)

> **Experimental:** ASPIREAWSPUBLISHERS001 - [Learn more](/diagnostics/aspireawspublishers001/)

- Name: `AddAWSCDKEnvironment(IDistributedApplicationBuilder, string, CDKDefaultsProviderFactory, AWSCDKEnvironmentResourceConfig?, string?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<AWSCDKEnvironmentResource<Stack>>`

```csharp
public static class AWSCDKEnvironmentExtensions
{
    public static IResourceBuilder<AWSCDKEnvironmentResource<Stack>> AddAWSCDKEnvironment(
        this IDistributedApplicationBuilder builder,
        string name,
        CDKDefaultsProviderFactory cdkDefaultsProviderFactory,
        AWSCDKEnvironmentResourceConfig? environmentResourceConfig = null,
        string? stackName = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IDistributedApplicationBuilder`)
- `name` (`string`)
- `cdkDefaultsProviderFactory` ([CDKDefaultsProviderFactory](/reference/api/csharp/aspire.hosting.aws/cdkdefaultsproviderfactory.md))
- `environmentResourceConfig` ([AWSCDKEnvironmentResourceConfig?](/reference/api/csharp/aspire.hosting.aws/awscdkenvironmentresourceconfig.md)) `optional`
- `stackName` (`string?`) `optional`

## AddAWSCDKEnvironment(IDistributedApplicationBuilder, string, CDKDefaultsProviderFactory, Func<App, IStackProps, T>, AWSCDKEnvironmentResourceConfig?)

> **Experimental:** ASPIREAWSPUBLISHERS001 - [Learn more](/diagnostics/aspireawspublishers001/)

- Name: `AddAWSCDKEnvironment(IDistributedApplicationBuilder, string, CDKDefaultsProviderFactory, Func<App, IStackProps, T>, AWSCDKEnvironmentResourceConfig?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<AWSCDKEnvironmentResource<T>>`

```csharp
public static class AWSCDKEnvironmentExtensions
{
    public static IResourceBuilder<AWSCDKEnvironmentResource<T>> AddAWSCDKEnvironment<T>(
        this IDistributedApplicationBuilder builder,
        string name,
        CDKDefaultsProviderFactory cdkDefaultsProviderFactory,
        Func<App, IStackProps, T> stackFactory,
        AWSCDKEnvironmentResourceConfig? environmentResourceConfig = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IDistributedApplicationBuilder`)
- `name` (`string`)
- `cdkDefaultsProviderFactory` ([CDKDefaultsProviderFactory](/reference/api/csharp/aspire.hosting.aws/cdkdefaultsproviderfactory.md))
- `stackFactory` (`Func<App, IStackProps, T>`)
- `environmentResourceConfig` ([AWSCDKEnvironmentResourceConfig?](/reference/api/csharp/aspire.hosting.aws/awscdkenvironmentresourceconfig.md)) `optional`

## PublishAsECSFargateExpressService(IResourceBuilder<ProjectResource>, PublishECSFargateExpressServiceConfig?)

> **Experimental:** ASPIREAWSPUBLISHERS001 - [Learn more](/diagnostics/aspireawspublishers001/)

- Name: `PublishAsECSFargateExpressService(IResourceBuilder<ProjectResource>, PublishECSFargateExpressServiceConfig?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<ProjectResource>`

```csharp
public static class AWSCDKEnvironmentExtensions
{
    public static IResourceBuilder<ProjectResource> PublishAsECSFargateExpressService(
        this IResourceBuilder<ProjectResource> builder,
        PublishECSFargateExpressServiceConfig? config = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<ProjectResource>`)
- `config` ([PublishECSFargateExpressServiceConfig?](/reference/api/csharp/aspire.hosting.aws/publishecsfargateexpressserviceconfig.md)) `optional`

## PublishAsECSFargateService(IResourceBuilder<ProjectResource>, PublishECSFargateServiceConfig?)

> **Experimental:** ASPIREAWSPUBLISHERS001 - [Learn more](/diagnostics/aspireawspublishers001/)

- Name: `PublishAsECSFargateService(IResourceBuilder<ProjectResource>, PublishECSFargateServiceConfig?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<ProjectResource>`

```csharp
public static class AWSCDKEnvironmentExtensions
{
    public static IResourceBuilder<ProjectResource> PublishAsECSFargateService(
        this IResourceBuilder<ProjectResource> builder,
        PublishECSFargateServiceConfig? config = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<ProjectResource>`)
- `config` ([PublishECSFargateServiceConfig?](/reference/api/csharp/aspire.hosting.aws/publishecsfargateserviceconfig.md)) `optional`

## PublishAsECSFargateServiceWithALB(IResourceBuilder<ProjectResource>, PublishECSFargateServiceWithALBConfig?)

> **Experimental:** ASPIREAWSPUBLISHERS001 - [Learn more](/diagnostics/aspireawspublishers001/)

- Name: `PublishAsECSFargateServiceWithALB(IResourceBuilder<ProjectResource>, PublishECSFargateServiceWithALBConfig?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<ProjectResource>`

```csharp
public static class AWSCDKEnvironmentExtensions
{
    public static IResourceBuilder<ProjectResource> PublishAsECSFargateServiceWithALB(
        this IResourceBuilder<ProjectResource> builder,
        PublishECSFargateServiceWithALBConfig? config = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<ProjectResource>`)
- `config` ([PublishECSFargateServiceWithALBConfig?](/reference/api/csharp/aspire.hosting.aws/publishecsfargateservicewithalbconfig.md)) `optional`

## PublishAsElasticCacheProvisionCluster(IResourceBuilder<RedisResource>, PublishElastiCacheProvisionClusterConfig?)

> **Experimental:** ASPIREAWSPUBLISHERS001 - [Learn more](/diagnostics/aspireawspublishers001/)

- Name: `PublishAsElasticCacheProvisionCluster(IResourceBuilder<RedisResource>, PublishElastiCacheProvisionClusterConfig?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<RedisResource>`

```csharp
public static class AWSCDKEnvironmentExtensions
{
    public static IResourceBuilder<RedisResource> PublishAsElasticCacheProvisionCluster(
        this IResourceBuilder<RedisResource> builder,
        PublishElastiCacheProvisionClusterConfig? config = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<RedisResource>`)
- `config` ([PublishElastiCacheProvisionClusterConfig?](/reference/api/csharp/aspire.hosting.aws/publishelasticacheprovisionclusterconfig.md)) `optional`

## PublishAsElasticCacheProvisionCluster(IResourceBuilder<ValkeyResource>, PublishElastiCacheProvisionClusterConfig?)

> **Experimental:** ASPIREAWSPUBLISHERS001 - [Learn more](/diagnostics/aspireawspublishers001/)

- Name: `PublishAsElasticCacheProvisionCluster(IResourceBuilder<ValkeyResource>, PublishElastiCacheProvisionClusterConfig?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<ValkeyResource>`

```csharp
public static class AWSCDKEnvironmentExtensions
{
    public static IResourceBuilder<ValkeyResource> PublishAsElasticCacheProvisionCluster(
        this IResourceBuilder<ValkeyResource> builder,
        PublishElastiCacheProvisionClusterConfig? config = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<ValkeyResource>`)
- `config` ([PublishElastiCacheProvisionClusterConfig?](/reference/api/csharp/aspire.hosting.aws/publishelasticacheprovisionclusterconfig.md)) `optional`

## PublishAsElasticCacheServerlessCluster(IResourceBuilder<RedisResource>, PublishElastiCacheServerlessClusterConfig?)

> **Experimental:** ASPIREAWSPUBLISHERS001 - [Learn more](/diagnostics/aspireawspublishers001/)

- Name: `PublishAsElasticCacheServerlessCluster(IResourceBuilder<RedisResource>, PublishElastiCacheServerlessClusterConfig?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<RedisResource>`

```csharp
public static class AWSCDKEnvironmentExtensions
{
    public static IResourceBuilder<RedisResource> PublishAsElasticCacheServerlessCluster(
        this IResourceBuilder<RedisResource> builder,
        PublishElastiCacheServerlessClusterConfig? config = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<RedisResource>`)
- `config` ([PublishElastiCacheServerlessClusterConfig?](/reference/api/csharp/aspire.hosting.aws/publishelasticacheserverlessclusterconfig.md)) `optional`

## PublishAsElasticCacheServerlessCluster(IResourceBuilder<ValkeyResource>, PublishElastiCacheServerlessClusterConfig?)

> **Experimental:** ASPIREAWSPUBLISHERS001 - [Learn more](/diagnostics/aspireawspublishers001/)

- Name: `PublishAsElasticCacheServerlessCluster(IResourceBuilder<ValkeyResource>, PublishElastiCacheServerlessClusterConfig?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<ValkeyResource>`

```csharp
public static class AWSCDKEnvironmentExtensions
{
    public static IResourceBuilder<ValkeyResource> PublishAsElasticCacheServerlessCluster(
        this IResourceBuilder<ValkeyResource> builder,
        PublishElastiCacheServerlessClusterConfig? config = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<ValkeyResource>`)
- `config` ([PublishElastiCacheServerlessClusterConfig?](/reference/api/csharp/aspire.hosting.aws/publishelasticacheserverlessclusterconfig.md)) `optional`

## PublishAsLambdaFunction(IResourceBuilder<LambdaProjectResource>, PublishLambdaFunctionConfig?)

> **Experimental:** ASPIREAWSPUBLISHERS001 - [Learn more](/diagnostics/aspireawspublishers001/)

- Name: `PublishAsLambdaFunction(IResourceBuilder<LambdaProjectResource>, PublishLambdaFunctionConfig?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<LambdaProjectResource>`

```csharp
public static class AWSCDKEnvironmentExtensions
{
    public static IResourceBuilder<LambdaProjectResource> PublishAsLambdaFunction(
        this IResourceBuilder<LambdaProjectResource> builder,
        PublishLambdaFunctionConfig? config = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<LambdaProjectResource>`)
- `config` ([PublishLambdaFunctionConfig?](/reference/api/csharp/aspire.hosting.aws/publishlambdafunctionconfig.md)) `optional`
