REST Resource: projects.sites.customDomains

리소스: CustomDomain

CustomDomain는 도메인 이름을 Firebase 호스팅 사이트에 연결하는 항목입니다. 사이트에 CustomDomain를 추가하면 호스팅에서 도메인 이름에 대한 요청에 대한 응답으로 사이트의 콘텐츠를 제공할 수 있습니다.

JSON 표현
{
  "name": string,
  "annotations": {
    string: string,
    ...
  },
  "createTime": string,
  "updateTime": string,
  "deleteTime": string,
  "expireTime": string,
  "etag": string,
  "hostState": enum (HostState),
  "ownershipState": enum (OwnershipState),
  "requiredDnsUpdates": {
    object (DnsUpdates)
  },
  "issues": [
    {
      object (Status)
    }
  ],
  "certPreference": enum (Type),
  "cert": {
    object (Certificate)
  },
  "redirectTarget": string,
  "reconciling": boolean,
  "labels": {
    string: string,
    ...
  }
}
필드
name

string

출력 전용입니다. CustomDomain의 정규화된 이름입니다.

annotations

map (key: string, value: string)

CustomDomain에 관한 인간과 기계가 읽을 수 있는 메타데이터를 모두 남기기 위해 추가할 수 있는 주석입니다.

"key": value 쌍 목록을 포함하는 객체입니다. 예: { "name": "wrench", "mass": "1.3kg", "count": "3" }

createTime

string (Timestamp format)

출력 전용입니다. 커스텀 도메인의 생성 시간입니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

updateTime

string (Timestamp format)

출력 전용입니다. CustomDomain가 마지막으로 업데이트된 시간입니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

deleteTime

string (Timestamp format)

출력 전용입니다. CustomDomain가 삭제된 시간입니다. null - 삭제되지 않은 커스텀 도메인 삭제된 커스텀 도메인은 약 30일 동안 유지되며 그 이후에는 호스팅에서 완전히 삭제됩니다. 삭제된 커스텀 도메인을 복원하려면 customDomains.undelete 요청을 실행합니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

expireTime

string (Timestamp format)

출력 전용입니다. 소프트 삭제된 CustomDomain가 호스팅에서 완전히 삭제되기까지 걸리는 최소 시간입니다. null - 삭제되지 않은 커스텀 도메인

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

etag

string

출력 전용입니다. CustomDomain의 현재 상태를 나타내고 수정하는 요청에서 초기 상태를 확인할 수 있는 문자열입니다. customDomains.patch, customDomains.delete, customDomains.undelete 요청을 할 때 일관성을 유지하려면 태그를 사용합니다.

hostState

enum (HostState)

출력 전용입니다. 이 CustomDomain가 참조하는 도메인 이름의 HostState입니다.

ownershipState

enum (OwnershipState)

출력 전용입니다. 이 CustomDomain가 참조하는 도메인 이름의 OwnershipState입니다.

requiredDnsUpdates

object (DnsUpdates)

출력 전용입니다. 호스팅이 대신 보안 콘텐츠를 제공할 수 있도록 도메인 이름의 DNS 레코드에 적용해야 하는 업데이트 모음입니다.

issues[]

object (Status)

출력 전용입니다. 호스팅 시스템에서 도메인 이름에 보안 콘텐츠를 제공하는 기능을 설정하려고 할 때 발생한 오류 집합입니다. CustomDomain이 제대로 작동하는지 확인하려면 다음 문제를 해결하세요.

certPreference

enum (Type)

호스팅이 도메인 이름에 대해 생성하는 SSL 인증서 유형을 지정할 수 있는 필드입니다. Spark 요금제 커스텀 도메인은 GROUPED 인증서 유형에만 액세스할 수 있지만 Blaze 요금제 도메인은 모든 옵션을 선택할 수 있습니다.

cert

object (Certificate)

출력 전용입니다. 이 커스텀 도메인의 도메인 이름에 대한 SSL 인증서 호스팅입니다. 새 커스텀 도메인의 경우 이는 실제 인증서가 아닌 인증서를 만들려는 호스팅의 의도를 나타내는 경우가 많습니다. 자세한 내용은 state 필드를 확인하세요.

redirectTarget

string

CustomDomain에서 트래픽을 전달해야 하는 도메인 이름입니다. 지정하면 호스팅에서 HTTP 301 코드로 이 커스텀 도메인에 대한 요청에 응답하고 트래픽을 지정된 redirectTarget로 대신 라우팅합니다.

reconciling

boolean

출력 전용입니다. true인 경우 커스텀 도메인의 상태가 원하는 상태와 일치하도록 호스팅의 시스템에서 시도 중임을 나타내는 필드입니다. customDomains.create 요청 후 CustomDomain를 처음 프로비저닝하거나 customDomains.patch 요청 후 업데이트된 certPreference와 일치하도록 새 SSL 인증서를 만들 때 true 가장 자주 발생합니다.

labels

map (key: string, value: string)

추가 메타데이터 및/또는 필터링에 사용되는 라벨입니다.

"key": value 쌍 목록을 포함하는 객체입니다. 예: { "name": "wrench", "mass": "1.3kg", "count": "3" }

HostState

도메인 이름의 호스트 상태입니다. 호스트 상태는 도메인 이름과 연결된 각 IP 주소에서 호스팅 콘텐츠를 제공하고 있는지 확인하여 결정됩니다.

열거형
HOST_STATE_UNSPECIFIED 커스텀 도메인의 호스트 상태가 지정되지 않았습니다. 지정되지 않으면 메시지가 유효하지 않습니다.
HOST_UNHOSTED 커스텀 도메인의 도메인 이름이 IP 주소와 연결되어 있지 않습니다.
HOST_UNREACHABLE 커스텀 도메인의 도메인 이름에 연결할 수 없습니다. 호스팅 서비스 도메인 이름의 IP 주소를 찾기 위한 DNS 쿼리에서 오류가 발생했습니다. 자세한 내용은 CustomDomain 객체의 issues 필드를 참고하세요.
HOST_MISMATCH 커스텀 도메인의 도메인 이름에 최종적으로 호스팅으로 확인되지 않는 IP 주소가 있습니다.
HOST_CONFLICT 커스텀 도메인의 도메인 이름에는 호스팅 및 기타 서비스로 확인되는 IP 주소가 있습니다. 일관된 결과를 얻으려면 비호스팅 서비스와 관련된 AAAAA 레코드를 삭제하세요.
HOST_ACTIVE 커스텀 도메인의 도메인 이름에 대한 모든 요청은 호스팅에서 처리합니다. 커스텀 도메인의 OwnershipStateACTIVE이면 호스팅은 도메인 이름으로 호스팅 사이트의 콘텐츠를 제공합니다.

소유권 상태

도메인의 소유권 상태입니다. 하나의 도메인을 최대 하나의 Firebase 호스팅 사이트에서 소유할 수 있습니다. 소유권은 다음 두 가지 방법으로 확인할 수 있습니다.

* TXT records: A TXT record on the domain in the form
`hosting-site=[siteId]`.
* CNAME records: A CNAME record that points to a Hosting site's default
domain.

CustomDomain이(가) OWNERSHIP_ACTIVE 이외의 OwnershipState에 30일 넘게 있고 30일 이상 업데이트되지 않으면 호스팅의 소유권 시스템에서 CustomDomain을(를) 삭제합니다. 삭제된 CustomDomain을(를) 복원하려면 customDomains.undelete 요청을 실행합니다.

열거형
OWNERSHIP_STATE_UNSPECIFIED 커스텀 도메인의 소유권 상태가 지정되지 않았습니다. 이런 일이 발생해서는 안 됩니다.
OWNERSHIP_MISSING 커스텀 도메인의 도메인 이름에 호스팅 관련 소유권 레코드가 없습니다. 도메인 이름을 대신하여 작업할 권한이 있는 Firebase 프로젝트가 없습니다.
OWNERSHIP_UNREACHABLE 커스텀 도메인의 도메인 이름에 연결할 수 없습니다. 호스팅 서비스 도메인 이름의 소유권 레코드를 찾기 위한 DNS 쿼리에서 오류가 발생했습니다. 자세한 내용은 CustomDomain 객체의 issues 필드를 참고하세요.
OWNERSHIP_MISMATCH 다른 Firebase 프로젝트가 커스텀 도메인의 도메인 이름을 소유하고 있습니다. 충돌하는 TXT 레코드를 삭제하고 현재 Firebase 프로젝트의 프로젝트별 레코드로 바꿉니다.
OWNERSHIP_CONFLICT 커스텀 도메인의 도메인 이름에 현재 Firebase 프로젝트와 다른 프로젝트의 소유권을 나타내는 충돌하는 TXT 레코드가 있습니다. 다른 프로젝트의 소유권 레코드를 삭제하여 현재 프로젝트 소유권을 부여하세요.
OWNERSHIP_PENDING 커스텀 도메인의 DNS 레코드가 올바르게 구성되었습니다. 호스팅이 24시간 내에 도메인 소유권을 이 CustomDomain(으)로 이전합니다.
OWNERSHIP_ACTIVE 커스텀 도메인의 도메인 이름에 도메인을 대신할 수 있는 프로젝트 권한을 부여하는 레코드가 TXT개 있습니다.

DNS 업데이트

호스팅이 도메인 이름에 대한 요청에 응답하여 보안 콘텐츠를 제공할 수 있도록 하기 위해 수행해야 하는 DNS 레코드 업데이트 모음입니다. 이러한 업데이트는 호스팅에서 마지막으로 쿼리했을 때 도메인 이름의 DNS 레코드의 현재 상태와 커스텀 도메인이 완전히 활성화되기 전에 호스팅에서 확인해야 하는 원하는 레코드 집합을 나타냅니다.

JSON 표현
{
  "discovered": [
    {
      object (DnsRecordSet)
    }
  ],
  "desired": [
    {
      object (DnsRecordSet)
    }
  ],
  "checkTime": string
}
필드
discovered[]

object (DnsRecordSet)

도메인을 검사할 때 발견한 호스팅의 DNS 레코드 집합입니다.

desired[]

object (DnsRecordSet)

호스팅이 도메인에 보안 콘텐츠를 제공해야 하는 DNS 레코드 모음입니다.

checkTime

string (Timestamp format)

호스팅에서 커스텀 도메인의 DNS 레코드를 마지막으로 확인한 시간입니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

DnsRecordSet

Firebase 호스팅의 커스텀 도메인 설정 및 유지보수와 관련된 DNS 레코드 모음입니다.

JSON 표현
{
  "domainName": string,
  "checkError": {
    object (Status)
  },
  "records": [
    {
      object (DnsRecord)
    }
  ]
}
필드
domainName

string

출력 전용입니다. 레코드 세트가 속한 도메인 이름입니다.

checkError

object (Status)

출력 전용입니다. 도메인 이름의 DNS 레코드를 쿼리할 때 호스팅 서비스에서 오류가 발생했습니다. 참고: NXDOMAIN 오류는 일반적으로 도메인 이름이 아직 설정되지 않았음을 의미하기 때문에 호스팅은 무시합니다.

records[]

object (DnsRecord)

출력 전용입니다. 도메인의 레코드

DNS 레코드

DNS 레코드는 도메인 이름에 대한 요청을 처리할 때 시스템과 서비스의 작동 방식을 정의하는 리소스 레코드입니다. 예를 들어 도메인 이름의 DNS 레코드에 A 레코드를 추가하면 다른 시스템 (예: 사용자의 웹브라우저)에 해당 IPv4 주소에 연결하여 도메인 이름과 관련된 리소스 (예: 호스팅 사이트 파일)를 검색하도록 알립니다.

JSON 표현
{
  "domainName": string,
  "type": enum (Type),
  "rdata": string,
  "requiredAction": enum (Action)
}
필드
domainName

string

출력 전용입니다. 레코드가 속한 도메인 이름입니다. 예: foo.bar.com.

type

enum (Type)

출력 전용입니다. 레코드의 유형으로, 레코드에 포함된 데이터가 결정됩니다.

rdata

string

출력 전용입니다. 레코드의 데이터입니다. 값의 의미는 레코드 유형에 따라 다릅니다. - A 및 AAAA: 도메인 이름의 IP 주소 - CNAME: 레코드를 확인할 다른 도메인입니다. - TXT: 도메인 이름과 연결된 임의의 텍스트 문자열입니다. 호스팅은 TXT 레코드를 사용하여 도메인 이름을 대신하여 작업할 권한이 있는 Firebase 프로젝트를 확인합니다. - CAA: 레코드의 플래그, 태그 및 값입니다. 예: 0 issue "pki.goog"

requiredAction

enum (Action)

출력 전용입니다. 이 레코드에 필요한 작업을 나타내는 enum입니다.

유형

A, TXT, AAAA, CAA 등 DNS 레코드의 유형입니다.

열거형
TYPE_UNSPECIFIED 레코드 유형이 지정되지 않았습니다. 지정되지 않으면 메시지가 유효하지 않습니다.
A RFC 1035에 정의된 A 레코드 레코드는 도메인 이름이 트래픽을 전달하는 IPv4 주소를 결정합니다.
CNAME RFC 1035에 정의된 CNAME 레코드 CNAME 또는 표준 이름 레코드는 도메인 이름을 다른 표준 도메인 이름에 매핑합니다. CNAME 레코드가 있는 경우 이 레코드가 도메인 이름의 유일한 레코드여야 합니다.
TXT RFC 1035에 정의된 TXT 레코드 TXT 레코드에는 도메인 이름에 대한 임의의 텍스트 데이터가 포함됩니다. 호스팅은 TXT 레코드를 사용하여 도메인 이름에 대해 작업할 권한이 있는 Firebase 프로젝트를 지정합니다.
AAAA RFC 3596에 정의된 AAAA 레코드는 도메인 이름이 트래픽을 보내는 IPv6 주소를 결정합니다.
CAA

RFC 6844에 정의된 CAA 레코드 CAA(인증 기관 승인) 레코드는 도메인 이름에 대한 인증서를 발급할 수 있는 인증 기관(SSL 인증서 발급 조직)을 결정합니다. Firebase 호스팅은 pki.goog을 기본 CA로 사용합니다.

CAA 레코드는 하위로 전파됩니다. bar.foo.com에 자체 CAA 레코드 세트가 없으면 foo.com의 CAA 레코드는 bar.foo.com에도 적용됩니다.

CAA 레코드는 선택사항입니다. 도메인 이름과 상위 도메인에 CAA 레코드가 없는 경우 모든 CA는 이 도메인을 대신하여 인증서를 발급할 수 있습니다. 일반적으로 호스팅은 SSL 인증서 생성을 차단 해제하는 데 필요한 경우에만 CAA 레코드 수정을 요청합니다.

작업

작업은 Firebase 호스팅에서 사용하도록 도메인을 구성하기 위해 이 DNS 레코드에 수행해야 하는 작업 유형입니다.

열거형
NONE 별도의 조치가 필요하지 않습니다.
ADD 이 레코드를 DNS 레코드에 추가합니다.
REMOVE DNS 레코드에서 이 레코드를 삭제합니다.

유형

인증서 유형입니다. 호스팅 시스템에서 인증서 생성 및 유지관리를 처리하는 방법을 결정합니다.

열거형
TYPE_UNSPECIFIED 인증서 유형이 지정되지 않았습니다. 지정되지 않으면 메시지가 유효하지 않습니다.
TEMPORARY 호스팅은 보다 영구적인 인증서를 만드는 반면, 도메인 이름을 일시적으로 포함하는 단기 인증서 유형입니다.
GROUPED Spark 요금제 커스텀 도메인의 표준 인증서입니다.
PROJECT_GROUPED Blaze 요금제만 해당됩니다. 동일한 Firebase 프로젝트에 있는 커스텀 도메인이 있는 도메인 이름 1~100개를 다루는 인증서입니다.
DEDICATED Blaze 요금제만 해당됩니다. 단일 도메인 이름을 다루는 인증서입니다.

인증서

도메인 이름에 대한 요청에 엔드 투 엔드 암호화를 제공하는 데 사용되는 SSL 인증서입니다. Certificate는 실제 SSL 인증서이거나 새로 만든 커스텀 도메인의 경우 인증서를 만들려는 호스팅의 인텐트일 수 있습니다.

JSON 표현
{
  "type": enum (Type),
  "state": enum (CertState),
  "verification": {
    object (CertVerification)
  },
  "issues": [
    {
      object (Status)
    }
  ],
  "createTime": string,
  "expireTime": string
}
필드
type

enum (Type)

출력 전용입니다. 인증서 유형입니다.

state

enum (CertState)

출력 전용입니다. 인증서의 상태입니다. CERT_ACTIVECERT_EXPIRING_SOON 상태만 도메인 이름에 SSL 적용 범위를 제공합니다. 상태가 PROPAGATING이고 호스팅에 이전에 도메인 이름에 대한 활성 인증서가 있는 경우 이전 활성 인증서는 현재 인증서가 전파될 때까지 도메인 이름에 대한 SSL 적용 범위를 제공합니다.

verification

object (CertVerification)

출력 전용입니다. DNS 레코드 또는 기존의 비호스팅 호스팅 업체에 추가할 수 있는 ACME 자격 확인 방법은 트래픽이 호스팅을 가리키도록 하기 전에 호스팅에서 도메인 이름에 대한 SSL 인증서를 만들 수 있도록 허용합니다. 기존 제공업체에서 호스팅으로 전환하는 다운타임 없이 이 문제를 해결할 수 있습니다.

issues[]

object (Status)

출력 전용입니다. 호스팅에서 도메인 이름에 대한 인증서를 만들려고 할 때 발생한 오류 집합입니다. 호스팅에서 사이트 방문자와 안전한 커뮤니케이션을 제공할 수 있도록 다음 문제를 해결하세요.

createTime

string (Timestamp format)

출력 전용입니다. 인증서 생성 시간입니다. TEMPORARY 인증서의 경우 호스팅에서 도메인 이름에 대한 본인 확인 요청을 처음 생성한 시간입니다. 다른 모든 인증서 유형의 경우 실제 인증서가 생성된 시간입니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

expireTime

string (Timestamp format)

출력 전용입니다. 인증서의 만료 시간입니다. 15일 후에는 이 인증서를 더 이상 호스팅과 사이트 방문자 간의 보안 통신을 제공하는 데 사용할 수 없습니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

인증 상태

도메인 이름에 대한 SSL 인증서 호스팅의 상태입니다. 실제 인증서의 상태 또는 새 커스텀 도메인의 경우 호스팅의 인증서 생성 시도를 나타낼 수 있습니다.

열거형
CERT_STATE_UNSPECIFIED 인증서 상태가 지정되지 않았습니다. 지정되지 않으면 메시지가 유효하지 않습니다.
CERT_PREPARING 모든 인증서의 초기 상태는 인증 기관에 요청이 전송되기 전에 인증서를 만들려는 호스팅의 의도를 나타냅니다.
CERT_VALIDATING 호스팅은 도메인 이름의 DNS 레코드가 자신을 대신하여 인증서 생성을 허용하는 상태인지 확인합니다.
CERT_PROPAGATING 인증서가 최근에 생성되었으며 호스팅의 CDN에 전파되는 데 시간이 필요합니다.
CERT_ACTIVE 인증서가 활성 상태이며, 인증서가 나타내는 도메인 이름에 보안 연결을 제공합니다.
CERT_EXPIRING_SOON 인증서가 곧 만료됩니다. 모든 도메인 이름에 새 인증서가 제공됩니다.
CERT_EXPIRED 인증서가 만료되었습니다. 호스팅에서 더 이상 도메인 이름에 보안 콘텐츠를 제공할 수 없습니다.

인증서 확인

트래픽을 호스팅 서버로 전달하기 전에 호스팅에서 도메인 이름의 SSL 인증서를 만들도록 허용하는 데 사용할 수 있는 ACME 질문 모음입니다. DNS 또는 HTTP 챌린지를 사용합니다. 둘 다 제공할 필요는 없습니다

JSON 표현
{
  "dns": {
    object (DnsUpdates)
  },
  "http": {
    object (HttpUpdate)
  }
}
필드
dns

object (DnsUpdates)

출력 전용입니다. 호스팅에서 도메인 이름의 SSL 인증서를 만들도록 허용하는 의도를 확인하는 TXT 레코드입니다.

http

object (HttpUpdate)

출력 전용입니다. 호스팅에서 도메인 이름의 SSL 인증서를 만들도록 허용할 의도를 확인하는 기존 비호스팅 호스팅 서비스에 추가할 파일입니다.

HTTP 업데이트

호스팅의 인증 기관에서 도메인의 SSL 인증서를 만들도록 허용할 의도를 확인하는 기존 비호스팅 호스팅 서비스에 추가할 수 있는 파일입니다.

JSON 표현
{
  "path": string,
  "desired": string,
  "discovered": string,
  "lastCheckTime": string,
  "checkError": {
    object (Status)
  }
}
필드
path

string

출력 전용입니다. 파일의 경로입니다.

desired

string

출력 전용입니다. 경로에서 제공할 텍스트 문자열입니다.

discovered

string

출력 전용입니다. 호스팅이 마지막 검사 중에 지정된 경로에서 필요한 파일 콘텐츠를 찾을 수 있었는지 여부입니다.

lastCheckTime

string (Timestamp format)

출력 전용입니다. 호스팅 시스템에서 마지막으로 파일 콘텐츠를 확인한 시간입니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

checkError

object (Status)

출력 전용입니다. 마지막 콘텐츠를 확인하는 중에 오류가 발생했습니다. null이면 검사가 성공적으로 완료된 것입니다.

메소드

create

CustomDomain를 만듭니다.

delete

지정된 CustomDomain를 삭제합니다.

get

지정된 CustomDomain를 가져옵니다.

list

지정된 상위 호스팅 사이트와 연결된 각 CustomDomain를 나열합니다.

patch

지정된 CustomDomain를 업데이트합니다.

undelete

지정된 CustomDomain가 소프트 삭제된 경우 삭제를 취소합니다.