테이블 서비스 속성 설정

Set Table Service Properties 작업은 스토리지 분석 및 CORS(원본 간 리소스 공유) 규칙에 대한 속성을 포함하여 스토리지 계정의 Azure Table Storage 엔드포인트에 대한 속성을 설정합니다. CORS 규칙에 대한 자세한 내용은 Azure Storage 서비스에 대한 CORS 지원을 참조하세요.

요청

요청을 다음과 같이 지정할 Set Table Service Properties 수 있습니다. HTTPS를 사용하는 것이 좋습니다. account-name을 스토리지 계정의 이름으로 바꿉니다.

메서드 요청 URI HTTP 버전
PUT https://account-name.table.core.windows.net/?restype=service&comp=properties HTTP/1.1

경로의 호스트 이름과 URI의 쿼리 부분을 구분하기 위해 URI에는 항상 슬래시(/)가 포함되어야 합니다. 이 작업의 경우 URI의 경로 부분은 비어 있습니다.

URI 매개 변수

URI 매개 변수 설명
restype=service&comp=properties 필수 요소. Azure Storage 서비스의 속성을 설정하려면 두 쿼리 문자열의 조합이 필요합니다.
timeout 선택 사항입니다. timeout 매개 변수는 초 단위로 표시됩니다.

요청 헤더

다음 표에서는 필수 및 선택적 요청 헤더에 대해 설명합니다.

요청 헤더 Description
Authorization 필수 요소. 권한 부여 체계, 스토리지 계정 이름 및 서명을 지정합니다. 자세한 내용은 Azure Storage에 대한 요청 권한 부여를 참조하세요.
Date 또는 x-ms-date 필수 요소. 요청에 대한 UTC(협정 세계시)를 지정합니다. 자세한 내용은 Azure Storage에 대한 요청 권한 부여를 참조하세요.
x-ms-version 모든 권한 있는 요청에 필요합니다. 이 요청에 사용할 작업의 버전을 지정합니다. 자세한 내용은 Azure Storage 서비스에 대한 버전 관리를 참조하세요.
x-ms-client-request-id 선택 사항입니다. 로깅이 구성될 때 로그에 기록되는 1키비바이트(KiB) 문자 제한을 사용하여 클라이언트에서 생성된 불투명 값을 제공합니다. 이 헤더를 사용하여 클라이언트 쪽 활동과 서버가 수신하는 요청의 상관 관계를 지정하는 것이 좋습니다.

요청 본문

2012-02-12 및 이전 버전의 경우 요청 본문 형식은 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?>  
<StorageServiceProperties>  
    <Logging>  
        <Version>version-number</Version>  
        <Delete>true|false</Delete>  
        <Read>true|false</Read>  
        <Write>true|false</Write>  
        <RetentionPolicy>  
            <Enabled>true|false</Enabled>  
            <Days>number-of-days</Days>  
        </RetentionPolicy>  
    </Logging>  
    <Metrics>  
        <Version>version-number</Version>  
        <Enabled>true|false</Enabled>  
        <IncludeAPIs>true|false</IncludeAPIs>  
        <RetentionPolicy>  
            <Enabled>true|false</Enabled>  
            <Days>number-of-days</Days>  
        </RetentionPolicy>  
    </Metrics>  
</StorageServiceProperties>  

2013-08-15 및 이후 버전의 경우 요청 본문 형식은 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?>  
<StorageServiceProperties>  
    <Logging>  
        <Version>version-number</Version>  
        <Delete>true|false</Delete>  
        <Read>true|false</Read>  
        <Write>true|false</Write>  
        <RetentionPolicy>  
            <Enabled>true|false</Enabled>  
            <Days>number-of-days</Days>  
        </RetentionPolicy>  
    </Logging>  
    <HourMetrics>  
        <Version>version-number</Version>  
        <Enabled>true|false</Enabled>  
        <IncludeAPIs>true|false</IncludeAPIs>  
        <RetentionPolicy>  
            <Enabled>true|false</Enabled>  
            <Days>number-of-days</Days>  
        </RetentionPolicy>  
    </HourMetrics>  
    <MinuteMetrics>  
        <Version>version-number</Version>  
        <Enabled>true|false</Enabled>  
        <IncludeAPIs>true|false</IncludeAPIs>  
        <RetentionPolicy>  
            <Enabled>true|false</Enabled>  
            <Days>number-of-days</Days>  
        </RetentionPolicy>  
    </MinuteMetrics>  
    <Cors>  
        <CorsRule>  
            <AllowedOrigins>comma-separated-list-of-allowed-origins</AllowedOrigins>  
            <AllowedMethods>comma-separated-list-of-HTTP-verb</AllowedMethods>  
            <MaxAgeInSeconds>max-caching-age-in-seconds</MaxAgeInSeconds>  
            <ExposedHeaders>comma-separated-list-of-response-headers</ExposedHeaders>  
            <AllowedHeaders> comma-separated-list-of-request-headers </AllowedHeaders>  
        </CorsRule>  
    </Cors>  
</StorageServiceProperties>  

2013-08-15 버전부터는 요청 본문에 하나 이상의 루트 요소를 지정하여 Set Table Service Properties를 호출할 수 있습니다. 루트 요소에는 다음이 포함됩니다.

  • Logging

  • HourMetrics

  • MinuteMetrics

  • Cors

더 이상 요청의 모든 루트 요소를 지정할 필요가 없습니다. 루트 요소를 생략하면 해당 기능에 대한 서비스의 기존 설정이 유지됩니다. 그러나 루트 요소를 지정하는 경우 해당 요소에 대한 모든 자식 요소를 지정해야 합니다.

다음 표에서는 요청 본문의 요소에 대해 설명합니다.

요소 이름 Description
Logging 버전 2013-08-15 이상에 대한 선택 사항입니다. 이전 버전의 경우 필수 사항입니다. 스토리지 분석 Logging 설정을 그룹화합니다.
Metrics 2012-02-12 및 이전 버전의 경우 필수 사항입니다. 버전 2013-08-15 이상에서는 적용되지 않습니다. 스토리지 분석 Metrics 설정을 그룹화합니다. Metrics 설정은 테이블에 대한 시간별 집계에서 API로 그룹화된 요청 통계 요약을 제공합니다.
HourMetrics 버전 2013-08-15 이상에 대한 선택 사항입니다. 이전 버전에는 적용되지 않습니다. 스토리지 분석 HourMetrics 설정을 그룹화합니다. HourMetrics 설정은 테이블에 대한 시간별 집계에서 API로 그룹화된 요청 통계 요약을 제공합니다.
MinuteMetrics 버전 2013-08-15 이상에 대한 선택 사항입니다. 이전 버전에는 적용되지 않습니다. 스토리지 분석 MinuteMetrics 설정을 그룹화합니다. MinuteMetrics 설정은 테이블에 대해 매 분당 요청 통계를 제공합니다. 2013-08-15 이전 버전의 경우, MinuteMetrics는 응답 본문에 포함되지 않습니다.
Version 필수 요소. 구성할 스토리지 분석 버전을 나타냅니다.
Delete 필수 요소. 로깅 구성에만 적용됩니다. 모든 삭제 요청을 기록할지 여부를 나타냅니다.
Read 필수 요소. 로깅 구성에만 적용됩니다. 모든 읽기 요청을 기록할지 여부를 나타냅니다.
Write 필수 요소. 로깅 구성에만 적용됩니다. 모든 쓰기 요청을 기록할지 여부를 나타냅니다.
Enabled 필수 요소. Azure Storage 서비스에 대해 메트릭을 사용할 수 있는지 여부를 나타냅니다.

읽기 액세스 지리적 중복 복제가 설정되어 있는 경우 기본 및 보조 메트릭이 모두 수집됩니다. 읽기 액세스 지리적 중복 복제가 설정되어 있지 않은 경우에는 기본 메트릭만 수집됩니다.
IncludeAPIs 메트릭이 설정된 경우에만 필수 사항입니다. 메트릭 구성에만 적용됩니다. 호출된 API 작업에 대해 메트릭이 요약 통계를 생성할지 여부를 나타냅니다.
RetentionPolicy/Enabled 필수 요소. Azure Storage 서비스에 대해 보존 정책을 사용할 수 있는지 여부를 나타냅니다.
RetentionPolicy/Days 보존 정책이 설정된 경우에만 필수입니다. 메트릭 또는 로깅 데이터를 보존할 일 수를 나타냅니다. 이 값보다 오래된 데이터는 모두 삭제됩니다. 지정할 수 있는 최소값은 입니다 1. 가장 큰 값은 (1년)입니다 365 .
Cors 선택 사항입니다. 버전 2013-08-15 이상에서 지원됩니다. 모든 CORS 규칙을 그룹화합니다.

이 요소 그룹을 생략하면 기존 CORS 설정을 덮어쓰지 않습니다.
CorsRule 선택 사항입니다. Table Storage에 대한 CORS 규칙을 지정합니다. 요청에는 최대 5개의 CorsRule 요소가 포함될 수 있습니다. 요청 본문에 요소가 포함되지 않으면 CorsRule 모든 CORS 규칙이 삭제되고 Table Storage에 대해 CORS가 비활성화됩니다.
AllowedOrigins CorsRule 요소가 있으면 필수 사항입니다. CORS를 통해 허용되거나 모든 도메인을 허용하도록 포함하는 * 쉼표로 구분된 원본 도메인 목록을 제공합니다. 원본 도메인에는 도메인의 모든 하위 도메인에 대한 CORS를 통한 요청을 허용하는 와일드카드 문자가 하위 도메인에 포함될 수도 있습니다. 64개의 원본 도메인으로 제한됩니다. 허용되는 각 원본은 최대 256자만 포함할 수 있습니다.
ExposedHeaders 요소가 있는 CorsRule 경우 필수입니다. CORS 클라이언트에 노출할 응답 헤더의 쉼표로 구분된 목록을 제공합니다. 64개의 정의된 헤더 및 2개의 접두사 헤더로 제한됩니다. 각 헤더는 최대 256자까지 포함할 수 있습니다.
MaxAgeInSeconds 요소가 있는 CorsRule 경우 필수입니다. 클라이언트 또는 브라우저가 실행 전 응답을 캐시해야 하는 시간(초)을 나타냅니다.
AllowedHeaders 요소가 있는 경우 CorsRule 필수입니다. 원본 간 요청의 일부가 될 수 있는 헤더의 쉼표로 구분된 목록을 제공합니다. 64개의 정의된 헤더 및 2개의 접두사 헤더로 제한됩니다. 각 헤더는 최대 256자까지 포함할 수 있습니다.
AllowedMethods 요소가 있는 경우 CorsRule 필수입니다. 원본을 실행할 수 있는 HTTP 메서드의 쉼표로 구분된 목록을 제공합니다. Azure Storage의 경우 허용되는 메서드는 , , , HEAD, , 및 입니다DELETEPUT. OPTIONSPOSTMERGEGET

응답

응답에는 HTTP 상태 코드, 응답 헤더 집합 및 응답 본문이 포함되어 있습니다.

상태 코드

작업에 성공하면 상태 코드 202(수락됨)가 반환됩니다.

응답 헤더

이 작업의 응답에는 다음과 같은 헤더가 포함됩니다. 응답에는 추가 표준 HTTP 헤더도 포함될 수 있습니다. 모든 표준 헤더는 HTTP/1.1 프로토콜 사양을 준수합니다.

응답 헤더 Description
x-ms-request-id 서비스에 대한 요청을 고유하게 식별하는 값을 지정합니다.
x-ms-version 응답에 사용된 작업의 버전을 지정합니다. 자세한 내용은 Azure Storage 서비스에 대한 버전 관리를 참조하세요.
x-ms-client-request-id 요청 및 해당 응답 문제를 해결하는 데 사용할 수 있습니다. 이 헤더의 값은 헤더 값 x-ms-client-request-id 과 같으며, 요청에 있고 값이 최대 1,024자 표시 ASCII 문자인 경우 입니다. 헤더가 x-ms-client-request-id 요청에 없는 경우 이 헤더는 응답에 존재하지 않습니다.

응답 본문

없음

권한 부여

계정 소유자만 이 작업을 호출할 수 있습니다.

설명

Azure 저장소의 CORS 규칙에는 다음과 같은 제한 사항이 적용됩니다.

  • 최대 5개의 규칙을 저장할 수 있습니다.

  • XML 태그를 제외한 요청에 대한 모든 CORS 규칙 설정의 최대 크기는 2KiB를 초과하면 안 됩니다.

  • 허용되는 헤더, 표시되는 헤더 또는 허용되는 원본의 길이는 256자를 초과할 수 없습니다.

  • 허용되는 헤더 및 노출된 헤더는 다음 중 하나일 수 있습니다.

    • 정확한 헤더 이름이 제공되는 리터럴 헤더(예: x-ms-meta-processed). 요청에 대해 최대 64개의 리터럴 헤더를 지정할 수 있습니다.

    • 헤더의 접두사(예: x-ms-meta-data\)가 제공되는 접두사 헤더입니다. 이러한 방식으로 접두사를 지정하면 해당 접두사로 시작하는 헤더를 허용하거나 노출합니다. 요청에 최대 두 개의 접두사 헤더를 지정할 수 있습니다.

  • 요소에 AllowedMethods 지정된 메서드(또는 HTTP 동사)는 Azure Storage 서비스 API에서 지원하는 메서드를 준수해야 합니다. 지원되는 메서드는 , , GET, , , 및 입니다DELETEPUT. OPTIONSPOSTMERGEHEAD

요청에 CORS 규칙 지정은 선택 사항입니다. 요청 본문에 Cors 요소를 지정하지 않고 Set Table Service Properties를 호출하면 기존 CORS 규칙이 유지 관리됩니다.

CORS를 사용하지 않도록 설정하려면 내부 CORS 규칙이 없는 빈 CORS 규칙 설정(예: </Cors>)을 사용하여 를 호출 Set Table Service Properties 합니다. 이 호출은 기존 규칙을 삭제하고 Table Storage에 대해 CORS를 사용하지 않도록 설정합니다.

요소를 지정 CorsRule 하는 경우 모든 CORS 규칙 요소가 필요합니다. 요소가 누락된 경우 오류 코드 400(잘못된 요청)으로 요청이 실패합니다.

버전 2013-08-15부터 XML 설정에 대한 요소는 선택 사항입니다. 업데이트된 요소만 포함하고 다른 설정에 영향을 주지 않는 XML을 보내 특정 요소를 업데이트할 수 있습니다.

CORS 규칙 및 평가 논리에 대한 자세한 내용은 Azure Storage 서비스에 대한 CORS 지원을 참조하세요.

샘플 요청 및 응답

다음 샘플 URI는 myaccount라는 가상의 스토리지 계정에 대한 Table Storage 속성을 변경하도록 요청합니다.

PUT https://myaccount.table.core.windows.net/?restype=service&comp=properties HTTP/1.1  

이 요청은 다음 헤더와 함께 전송되었습니다.

x-ms-version: 2013-08-15  
x-ms-date: Mon, 21 Oct 2013 04:38:23 GMT  
Authorization: SharedKey  
myaccount:Z1lTLDwtq5o1UYQluucdsXk6/iB7YxEu0m6VofAEkUE=  
Host: myaccount.table.core.windows.net  

이 요청은 다음 XML 본문과 함께 전송되었습니다.

<?xml version="1.0" encoding="utf-8"?>  
<StorageServiceProperties>  
    <Logging>  
        <Version>1.0</Version>  
        <Delete>true</Delete>  
        <Read>false</Read>  
        <Write>true</Write>  
        <RetentionPolicy>  
            <Enabled>true</Enabled>  
            <Days>7</Days>  
        </RetentionPolicy>  
    </Logging>  
    <HourMetrics>  
        <Version>1.0</Version>  
        <Enabled>true</Enabled>  
        <IncludeAPIs>false</IncludeAPIs>  
        <RetentionPolicy>  
            <Enabled>true</Enabled>  
            <Days>7</Days>  
        </RetentionPolicy>  
    </HourMetrics>  
    <MinuteMetrics>  
        <Version>1.0</Version>  
        <Enabled>true</Enabled>  
        <IncludeAPIs>true</IncludeAPIs>  
        <RetentionPolicy>  
            <Enabled>true</Enabled>  
            <Days>7</Days>  
        </RetentionPolicy>  
    </MinuteMetrics>  
    <Cors>  
        <CorsRule>  
            <AllowedOrigins> http://www.fabrikam.com,http://www.contoso.com</AllowedOrigins>  
            <AllowedMethods>GET,PUT</AllowedMethods>  
            <MaxAgeInSeconds>500</MaxAgeInSeconds>  
            <ExposedHeaders>x-ms-meta-data*,x-ms-meta-customheader</ExposedHeaders>  
            <AllowedHeaders>x-ms-meta-target*,x-ms-meta-customheader</AllowedHeaders>  
        </CorsRule>  
    </Cors>  
</StorageServiceProperties>  
  

요청이 전송되면 다음 응답이 반환됩니다.

HTTP/1.1 202 Accepted  
Connection: Keep-Alive  
Transfer-Encoding: chunked  
Date: Mon, 21 Oct 2013 04:38:24 GMT  
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: cb939a31-0cc6-49bb-9fe5-3327691f2a30  
x-ms-version: 2013-08-15  
  

추가 정보