구성에서 동일한 중복 리소스 허용Allowing for Identical Duplicate Resources in a Configuration

DSC는 구성 내에서 충돌하는 리소스 정의를 허용하거나 처리하지 않습니다.DSC does not allow or handle conflicting resource definitions within a configuration. 충돌을 해결하려고 하지 않고 단순히 실패합니다.Instead of trying to resolve the conflict, it simply fails. 구성 다시 사용이 복합 리소스 등을 통해 더 많이 활용되면 충돌이 더 자주 발생합니다.As configuration reuse becomes more utilized through composite resources, etc. conflicts will occur more often. 충돌하는 리소스 정의가 동일하면 DSC가 지능적이어서 이를 허용해야 합니다.When conflicting resource definitions are identical, DSC should be smart and allow this. 이 릴리스에서는 정의가 동일한 리소스 인스턴스가 여러 개 있어도 됩니다.With this release, we support having multiple resource instances that have identical definitions:

Configuration IIS_FrontEnd
{
    WindowsFeature FE_IIS         #Identical resource
    {
        Ensure = 'Present'
        Name = 'Web-Server'
    }

    WindowsFeature FTP
    {
        Ensure = 'Present'
        Name = 'Web-FTP-Server'
    }
}

Configuration IIS_Worker
{
    WindowsFeature Worker_IIS      #Identical resource
    {
        Ensure = 'Present'
        Name = 'Web-Server'
    }

    WindowsFeature ASP
    {
        Ensure = 'Present'
        Name = 'Web-ASP-Net45'
    }
}

Configuration WebApplication
{
    IIS_Frontend Web {}

    IIS_Worker ASP {}
}

이전 릴리스에서는 'Web-Server' 역할을 설치하려는 WindowsFeature FE_IIS와 WindowsFeature Worker_IIS 인스턴스 간의 충돌로 인해 컴파일이 실패했습니다.In previous releases, the result would be a failed compilation due to a conflict between the WindowsFeature FE_IIS and WindowsFeature Worker_IIS instances trying to ensure the 'Web-Server' role is installed. 이러한 두 구성에서 구성하려는 모든 속성이 동일합니다.Notice that all of the properties that are being configured are identical in these two configurations. 이러한 두 리소스의 모든 속성이 동일하므로 이제 컴파일이 성공합니다.Since all of the properties in these two resources are identical, this will result in a successful compilation now.

두 리소스 간에 다른 속성이 있으면 동일한 것으로 간주되지 않고 컴파일이 실패합니다.If any of the properties are different between the two resources, they will not be considered identical and compilation will fail:

Configuration IIS_FrontEnd
{
    WindowsFeature FE_IIS
    {
        Ensure = 'Present'     # Ensure is Present here
        Name = 'Web-Server'
    }

    WindowsFeature FTP
    {
        Ensure = 'Present'
        Name = 'Web-FTP-Server'
    }
}

Configuration IIS_Worker
{
    WindowsFeature Worker_IIS
    {
        Ensure = 'Absent'      # Ensure property is Absent instead of Present
        Name = 'Web-Server'
    }

    WindowsFeature ASP
    {
        Ensure = 'Present'
        Name = 'Web-ASP-Net45'
    }
}

Configuration WebApplication
{
    IIS_Frontend Web {}

    IIS_Worker ASP {}
}

WindowsFeature FE_IIS와 WindowsFeature Worker_IIS 리소스가 더 이상 동일하지 않아 충돌하므로 매우 유사한 이 구성이 실패하게 됩니다.This very similar configuration will fail because the WindowsFeature FE_IIS and the WindowsFeature Worker_IIS resources are no longer identical and therefore conflict.