다음을 통해 공유


XPath를 사용하여 역할 구성 설정을 환경 변수로 노출

Important

이제 Cloud Services(클래식)는 2024년 9월 1일부터 모든 고객을 대상으로 더 이상 사용되지 않습니다. 기존 실행 중인 배포는 Microsoft에서 중지 및 종료되며, 데이터는 2024년 10월부터 영구적으로 손실됩니다. 새 배포에서는 새로운 Azure Resource Manager 기반 배포 모델인 Azure Cloud Services(추가 지원)를 사용해야 합니다.

클라우드 서비스 작업자 또는 웹 역할 서비스 정의 파일에서 런타임 구성 값을 환경 변수로 노출할 수 있습니다. 다음 XPath 값(API 값에 해당)을 사용할 수 있습니다.

이러한 XPath 값을 Microsoft.WindowsAzure.ServiceRuntime 라이브러리를 통해서도 사용할 수 있습니다.

앱이 에뮬레이터에서 실행 중임

앱이 에뮬레이터에서 실행 중임을 나타냅니다.

Type 예시
XPath xpath="/RoleEnvironment/Deployment/@emulated"
코드 var x = RoleEnvironment.IsEmulated;

배포 ID

인스턴스의 배포 ID를 검색합니다.

Type 예시
XPath xpath="/RoleEnvironment/Deployment/@id"
코드 var deploymentId = RoleEnvironment.DeploymentId;

역할 ID

인스턴스의 현재 역할 ID를 검색합니다.

Type 예시
XPath xpath="/RoleEnvironment/CurrentInstance/@id"
코드 var id = RoleEnvironment.CurrentRoleInstance.Id;

도메인 업데이트

인스턴스의 업데이트 도메인을 검색합니다.

Type 예시
XPath xpath="/RoleEnvironment/CurrentInstance/@updateDomain"
코드 var ud = RoleEnvironment.CurrentRoleInstance.UpdateDomain;

장애 도메인

인스턴스의 장애 도메인을 검색합니다.

Type 예시
XPath xpath="/RoleEnvironment/CurrentInstance/@faultDomain"
코드 var fd = RoleEnvironment.CurrentRoleInstance.FaultDomain;

역할 이름

인스턴스의 역할 이름을 검색합니다.

Type 예시
XPath xpath="/RoleEnvironment/CurrentInstance/@roleName"
코드 var rname = RoleEnvironment.CurrentRoleInstance.Role.Name;

구성 설정

지정된 구성 설정의 값을 검색합니다.

Type 예시
XPath xpath="/RoleEnvironment/CurrentInstance/ConfigurationSettings/ConfigurationSetting[@name='Setting1']/@value"
코드 var setting = RoleEnvironment.GetConfigurationSettingValue("Setting1");

로컬 스토리지 경로

인스턴스에 대한 로컬 스토리지 경로를 검색합니다.

Type 예시
XPath xpath="/RoleEnvironment/CurrentInstance/LocalResources/LocalResource[@name='LocalStore1']/@path"
코드 var localResourcePath = RoleEnvironment.GetLocalResource("LocalStore1").RootPath;

로컬 스토리지 크기

인스턴스의 로컬 스토리지 크기를 검색합니다.

Type 예시
XPath xpath="/RoleEnvironment/CurrentInstance/LocalResources/LocalResource[@name='LocalStore1']/@sizeInMB"
코드 var localResourceSizeInMB = RoleEnvironment.GetLocalResource("LocalStore1").MaximumSizeInMegabytes;

엔드포인트 프로토콜

인스턴스의 엔드포인트 프로토콜을 검색합니다.

Type 예시
XPath xpath="/RoleEnvironment/CurrentInstance/Endpoints/Endpoint[@name='Endpoint1']/@protocol"
코드 var prot = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["Endpoint1"].Protocol;

엔드포인트 IP

지정된 엔드포인트의 IP 주소를 가져옵니다.

Type 예시
XPath xpath="/RoleEnvironment/CurrentInstance/Endpoints/Endpoint[@name='Endpoint1']/@address"
코드 var address = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["Endpoint1"].IPEndpoint.Address

엔드포인트 및 포트

인스턴스의 엔드포인트 포트를 검색합니다.

Type 예시
XPath xpath="/RoleEnvironment/CurrentInstance/Endpoints/Endpoint[@name='Endpoint1']/@port"
코드 var port = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["Endpoint1"].IPEndpoint.Port;

예시

다음은 TestIsEmulated라는 환경 변수가 @emulated xpath 값으로 설정된 시작 작업을 만드는 작업자 역할의 예입니다.

<WorkerRole name="Role1">
    <ConfigurationSettings>
      <Setting name="Setting1" />
    </ConfigurationSettings>
    <LocalResources>
      <LocalStorage name="LocalStore1" sizeInMB="1024"/>
    </LocalResources>
    <Endpoints>
      <InternalEndpoint name="Endpoint1" protocol="tcp" />
    </Endpoints>
    <Startup>
      <Task commandLine="example.cmd inputParm">
        <Environment>
          <Variable name="TestConstant" value="Constant"/>
          <Variable name="TestEmptyValue" value=""/>
          <Variable name="TestIsEmulated">
            <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated"/>
          </Variable>
          ...
        </Environment>
      </Task>
    </Startup>
    <Runtime>
      <Environment>
        <Variable name="TestConstant" value="Constant"/>
        <Variable name="TestEmptyValue" value=""/>
        <Variable name="TestIsEmulated">
          <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated"/>
        </Variable>
        ...
      </Environment>
    </Runtime>
    ...
</WorkerRole>

다음 단계

ServiceConfiguration.cscfg 파일에 대해 자세히 알아봅니다.

ServicePackage.cspkg 패키지를 만듭니다.

역할에 대해 원격 데스크톱 을 사용하도록 설정합니다.