데이터 피드를 사용하면 Ordering End-to-End에서 음식점, 서비스, 메뉴를 제공할 수 있습니다.
이 문서에서는 샌드박스 및 프로덕션 인벤토리를 호스팅하고 일괄 처리를 사용하여 주문 엔드 투 엔드에서 인벤토리를 업데이트하는 방법을 설명합니다.
데이터 피드 환경
통합 개발에 사용할 수 있는 데이터 피드 환경은 세 가지입니다.
피드 환경 | 설명 | 오프라인 저장소로 |
---|---|---|
샌드박스 | 피드 개발을 위한 테스트 환경입니다. | 필수 |
프로덕션 | 출시하려는 인벤토리의 프로덕션 환경입니다. | 필수 |
데이터 피드 호스팅
주문 엔드 투 엔드에서 일괄 처리를 통해 샌드박스 및 프로덕션 데이터 피드를 처리하려면 Google Cloud Storage, Amazon S3 또는 HTTPS에서 데이터 피드 파일을 사이트맵과 함께 호스팅해야 합니다.
샌드박스 및 프로덕션 환경의 데이터 피드를 별도로 호스팅하는 것이 좋습니다. 이 접근 방식을 사용하면 변경사항을 프로덕션에 배포하기 전에 샌드박스 피드 환경에서 개발 및 테스트할 수 있습니다.
예를 들어 Google Cloud Storage를 호스팅 옵션으로 사용하는 경우 다음과 같은 경로가 있습니다.
- 샌드박스 피드:
gs://foorestaurant-google-feed-sandbox/
- 프로덕션 피드:
gs://foorestaurant-google-feed-prod/
인벤토리를 호스팅하려면 다음 단계를 따르세요.
- 데이터 피드 파일을 생성합니다.
- 호스팅 솔루션을 선택합니다.
- 데이터 피드를 호스팅합니다.
- 데이터 피드 파일이 정기적으로 업데이트되는지 확인합니다. 프로덕션 데이터 피드는 매일 업데이트해야 합니다.
인벤토리 피드를 만드는 방법에 관한 자세한 내용은 Restaurant
, Service
, Menu
항목의 문서와 데이터 피드 만들기 섹션을 참고하세요.
데이터 피드 파일 가이드라인
여러 항목을 포함할 수 있는 각 파일은 200MB 이하여야 합니다. 최상위 항목 Restaurant
, Service
, Menu
과 하위 항목을 합친 크기는 4MB를 초과해서는 안 됩니다.
호스팅 솔루션 선택
다음 표에는 데이터 피드를 호스팅하는 옵션과 이러한 호스트가 엔드 투 엔드 주문과 함께 작동하는 방식이 나와 있습니다.
Amazon S3 | Google Cloud Storage | 사이트맵이 있는 HTTPS | |
---|---|---|---|
사용자 인증 정보 및 액세스 |
Google에 다음 정보를 제공합니다.
S3 버킷에는 다음 정보가 포함되어야 합니다.
|
프로덕션 및 샌드박스 버킷 디렉터리와 Google 컨설턴트가 제공한 서비스 계정을 Google Cloud Storage 버킷의 리더로 추가합니다. Google Cloud Storage (GCS)의 액세스를 제어하는 방법에 관한 자세한 내용은 Google Cloud Platform 콘솔: 버킷 권한 설정을 참고하세요. GCS 버킷에는 다음 정보가 포함되어야 합니다.
|
Google에 다음 정보를 제공합니다.
|
Google에서 가져와야 하는 파일을 파악하는 방법 | 버킷의 모든 파일 디렉터리 목록입니다. | 버킷의 모든 파일 디렉터리 목록입니다. | 사이트맵에 나열된 파일의 개별 URL입니다. |
Google에서 파일을 가져올 준비가 되었다고 인식하는 방법 | 데이터 피드 생성을 완료한 후 marker.txt 파일을 최신 타임스탬프로 업데이트합니다. |
데이터 피드 생성을 완료한 후 marker.txt 파일을 최신 타임스탬프로 업데이트합니다. |
데이터 피드 생성을 완료한 후 sitemap.xml 의 응답 헤더 last-modified 를 최신 타임스탬프로 업데이트합니다. |
파일 한도 |
최대 파일 수: 100,000개 Amazon S3 버킷에 총 100,000개 미만의 파일이 있어야 합니다. |
최대 파일 수: 100,000개 Google Cloud Storage 버킷에 총 100,000개 미만의 파일이 있어야 합니다. |
최대 파일 수: 100,000개 사이트맵 XML 파일 내의 파일 경로 수는 100,000개 미만이어야 합니다. |
일괄 처리를 위해 데이터 피드 연결
피드를 호스팅한 후에는 Actions Center에서 피드를 프로젝트에 연결해야 합니다. 프로덕션 피드의 초기 구성은 온보딩 태스크 페이지에서 이루어집니다. 나중에 관리 역할이 있는 포털 사용자는 언제든지 구성 > 피드 페이지에서 프로덕션 및 샌드박스 피드 구성을 업데이트할 수 있습니다. 샌드박스 환경은 개발 및 테스트 목적으로 사용되며 프로덕션 피드는 사용자에게 표시됩니다.
Amazon S3로 데이터 피드를 호스팅하는 경우
- 작업 센터에서 구성 > 피드로 이동합니다.
-
수정을 클릭하고 피드 업데이트 양식을 작성합니다.
- 피드 전송 방법: Amazon S3로 설정합니다.
- 마커 파일:
marker.txt
파일의 URL을 입력합니다. - 데이터 파일: 데이터 피드가 포함된 S3 버킷의 URL을 입력합니다.
- 액세스 ID: S3 리소스에서 읽을 수 있는 권한이 있는 IAM 액세스 키 ID를 입력합니다.
- 액세스 키: S3 리소스에서 읽을 수 있는 권한이 있는 IAM 보안 비밀 액세스 키를 입력합니다.
- 제출을 클릭합니다.
- 1~2시간 후에 일괄 처리 처리에서 피드 파일을 가져오는지 확인합니다.
Google Cloud Storage로 데이터 피드를 호스팅하는 경우
- 작업 센터에서 구성 > 피드로 이동합니다.
-
수정을 클릭하고 피드 업데이트 양식을 작성합니다.
- 피드 전송 방법: Google Cloud Storage로 설정합니다.
- 마커 파일:
marker.txt
파일의 URL을 입력합니다. - 데이터 파일: 데이터 피드가 포함된 GCS 버킷의 URL을 제공합니다.
- 제출을 클릭합니다.
- GCS 버킷에 액세스하기 위한 서비스 계정이 생성됩니다. 계정 이름은 온보딩 작업이 완료된 후 구성 > 피드에서 확인할 수 있습니다. 이 서비스 계정에는 'Storage Legacy Object Reader' 역할이 필요합니다. 이 역할은 Google Cloud 콘솔의 IAM 페이지에서 서비스 계정에 부여할 수 있습니다.
- 1~2시간 후에 일괄 처리 처리에서 피드 파일을 가져오는지 확인합니다.
HTTPS로 데이터 피드를 호스팅하는 경우
- 작업 센터에서 구성 > 피드로 이동합니다.
-
수정을 클릭하고 피드 업데이트 양식을 작성합니다.
- 피드 전송 방법: HTTPS로 설정합니다.
- 사이트맵 파일:
sitemap.xml
파일의 URL을 입력합니다. - 사용자 이름: HTTPS 서버에 액세스할 사용자 이름 사용자 인증 정보를 입력합니다.
- 비밀번호: HTTPS 서버에 액세스하는 비밀번호를 입력합니다.
- 제출을 클릭합니다.
- 1~2시간 후에 일괄 처리 처리에서 피드 파일을 가져오는지 확인합니다.
경로 예
다음 표에는 각 호스팅 옵션의 경로 예시가 나와 있습니다.
Amazon S3 | Google Cloud Storage | 사이트맵이 있는 HTTPS | |
---|---|---|---|
경로 | s3://foorestaurant-google-feed-sandbox/ |
gs://foorestaurant-google-feed-sandbox/ |
https://sandbox-foorestaurant.com/sitemap.xml |
마커 파일 | s3://foorestaurant-google-feed-sandbox/marker.txt |
gs://foorestaurant-google-feed-sandbox/marker.txt |
해당 사항 없음 |
HTTPS 호스팅을 위한 사이트맵
사이트맵을 정의할 때는 다음 가이드라인을 따르세요.
- 사이트맵의 링크는 파일 자체를 가리켜야 합니다.
- 사이트맵에 자체 도메인 이름 대신 클라우드 제공업체에 대한 참조가 포함된 경우 URL 시작 부분(예:
https://www.yourcloudprovider.com/your_id
)이 일괄 작업에 대해 안정적이고 고유해야 합니다. - 부분적인 데이터 업로드의 경우와 같이 부분적인 사이트맵을 업로드하지 않도록 주의하세요. 이렇게 하면 Google에서 사이트맵의 파일만 처리하므로 인벤토리 수준이 떨어지고 피드 처리가 차단될 수 있습니다.
- 사이트맵에 참조된 파일의 경로가 변경되지 않았는지 확인합니다. 예를 들어 오늘은 사이트맵에서
https://www.yourcloudprovider.com/your_id/10000.json
를 참조하고 내일은https://www.yourcloudprovider.com/your_id/20000.json
를 참조하지 마세요.
사이트맵 예
다음은 데이터 피드 파일을 제공하는 sitemap.xml
파일의 예입니다.
예 1: 판매자별로 그룹화된 항목 (권장)
XML
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://your_fulfillment_url.com/restaurant_1.ndjson</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> <url> <loc>https://your_fulfillment_url.com/restaurant_2.ndjson</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> <url> <loc>https://your_fulfillment_url.com/restaurant_3.ndjson</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> </urlset>
예 2: 유형별로 그룹화된 항목
XML
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://your_fulfillment_url.com/restaurant.json</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> <url> <loc>https://your_fulfillment_url.com/menu.json</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> <url> <loc>https://your_fulfillment_url.com/service.json</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> </urlset>
데이터 피드 업데이트
데이터 피드가 연결되면 Google에서는 1시간마다 한 번 업데이트를 확인하지만 marker.txt
또는 sitemap.xml
파일이 수정된 경우에만 모든 데이터 피드를 처리합니다. 비활성 인벤토리를 방지하려면 하루에 한 번 데이터 피드를 업데이트하는 것이 좋습니다.
데이터 피드가 수정되었으며 일괄 처리할 준비가 되었음을 지정하려면 marker.txt
파일의 last-modified
객체 메타데이터 필드 (GCP 및 S3의 경우) 또는 sitemap.xml
파일의 last-modified
응답 헤더를 업데이트합니다. Google은 이러한 값을 사용하여 데이터 피드의 최신성을 판단합니다.
일괄 피드가 처리되는 동안
- 현재 주문 엔드 투 엔드 인벤토리에 없고 오류가 없는 새 항목이 삽입됩니다.
-
인벤토리에 이미 존재하며 처리 시 오류가 없고 현재 항목보다 최신
dateModified
가 있거나dateModified
가 없는 경우 피드 처리 시작 시간이 현재 항목보다 최신인 항목은 업데이트됩니다. 그렇지 않으면 비활성으로 표시됩니다. - 피드에 파일 수준 오류가 없는 경우 이전 피드의 일부였으나 더 이상 처리 중인 일괄 피드에 포함되지 않은 항목은 삭제됩니다.
타임스탬프 또는 last-modified
응답 헤더는 모든 데이터 피드 파일이 생성되고 업데이트된 후에만 업데이트해야 합니다. 데이터 피드를 업데이트하는 일괄 작업이 하루에 한 번만 실행되도록 제한합니다. 또는 각 일괄 작업 사이에 3시간 이상의 간격을 두세요. 이 단계를 수행하지 않으면 Google에서 오래된 파일을 가져올 수 있습니다.