์ด ๋ฌธ์์์๋ ์ผ๊ด ์์ ๋ฐ ํ์คํฌ๋ฅผ ๋ณด๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
์์ํ๊ธฐ ์ ์
- Batch๋ฅผ ์ฌ์ฉํ ์ ์ด ์์ผ๋ฉด Batch ์์ํ๊ธฐ๋ฅผ ๊ฒํ ํ๊ณ ํ๋ก์ ํธ ๋ฐ ์ฌ์ฉ์ ๊ธฐ๋ณธ ์๊ฑด์ ์๋ฃํ์ฌ Batch๋ฅผ ์ฌ์ฉ ์ค์ ํ์ธ์.
-
์์ ๋ฐ ํ์คํฌ๋ฅผ ๋ณด๋ ๋ฐ ํ์ํ ๊ถํ์ ์ป์ผ๋ ค๋ฉด ๊ด๋ฆฌ์์๊ฒ ํ๋ก์ ํธ์ ๋ํ Batch ์์ ๋ทฐ์ด (
roles/batch.jobsViewer
) ๋๋ Batch ์์ ํธ์ง์ (roles/batch.jobsEditor
) IAM ์ญํ ์ ๋ถ์ฌํด ๋ฌ๋ผ๊ณ ์์ฒญํ์ธ์. ์ญํ ๋ถ์ฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ๋ํ ์ก์ธ์ค ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.์ปค์คํ ์ญํ ์ด๋ ๋ค๋ฅธ ์ฌ์ ์ ์๋ ์ญํ ์ ํตํด ํ์ํ ๊ถํ์ ์ป์ ์๋ ์์ต๋๋ค.
์์ ๋ณด๊ธฐ
์์ ์ ๋ณด๋ ค๋ฉด ๋ค์ ๋ฐฉ๋ฒ ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
ํ๋ก์ ํธ์ ๋ชจ๋ ์์ ์ ๋ณด๋ ค๋ฉด ์์ ๋ชฉ๋ก์ ํ์ธํฉ๋๋ค.
ํน์ ์์ ์ ๋ชจ๋ ๊ตฌ์ฑ ์ธ๋ถ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ์์ ์ธ๋ถ์ ๋ณด๋ฅผ ํ์ธํฉ๋๋ค.
์์ ๋ชฉ๋ก ๋ณด๊ธฐ
Google Cloud ์ฝ์, gcloud CLI, Batch API, Go, Java, Node.js, Python ๋๋ C++์ ์ฌ์ฉํ์ฌ ํ์ฌ ํ๋ก์ ํธ์ ์์ ๋ชฉ๋ก์ ๋ณผ ์ ์์ต๋๋ค.
์ฝ์
Google Cloud ์ฝ์์ ์ฌ์ฉํ์ฌ ํ์ฌ ํ๋ก์ ํธ์ ์์ ๋ชฉ๋ก์ ๋ณด๋ ค๋ฉด ์์ ๋ชฉ๋ก ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์์ ๋ชฉ๋ก์ ํ์ด์ง๊ฐ ์ฌ๋ฌ ๊ฐ์ผ ์ ์์ต๋๋ค. ๋ค์ ํ์ด์ง๋ก ๊ณ์ ์งํํด์ผ ํ๋ ๊ฒฝ์ฐ ํ๋ฉด ํ๋จ์์
๋ค์์ ํด๋ฆญํ์ธ์.(์ ํ์ฌํญ) ์์ ๋ชฉ๋ก์ ํํฐ๋งํ๋ ค๋ฉด
ํํฐ๋ฅผ ํด๋ฆญํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์์ฑ ๋ฐ ๊ฐ์ ์ ๋ ฅํ๊ฑฐ๋ ์ ํํฉ๋๋ค.์๋ฅผ ๋ค์ด ํน์ ์ํ์ ์์ ๋ง ํฌํจํ๋๋ก ๋ชฉ๋ก์ ํํฐ๋งํ๋ ค๋ฉด ๋ค์์ ์ ๋ ฅํฉ๋๋ค.
Status:JOB_STATE
JOB_STATE
์ ์์ ์ํ๋ก ๋ฐ๊ฟ๋๋ค(์:FAILED
).
gcloud
๋ชจ๋ ์์ ๋ณด๊ธฐ
gcloud CLI๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฌ ํ๋ก์ ํธ์ ์์
๋ชฉ๋ก์ ๋ณด๋ ค๋ฉด gcloud batch jobs list
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
gcloud batch jobs list
ํํฐ๋ง๋ ์์ ๋ชฉ๋ก ๋ณด๊ธฐ
ํ์ํ ๊ฒฝ์ฐ ํ๋ ์ด์์ ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ์ฌ ํํฐ๋ง๋ ์์ ๋ชฉ๋ก์ ๋ณผ ์ ์์ต๋๋ค.
ํน์ ์์น์ ์์ ๋ง ๋ณด๋ ค๋ฉด
--location
ํ๋๊ทธ๋ฅผ ํฌํจํฉ๋๋ค.ํํฐ ํํ์์ ๊ธฐ์ค์ผ๋ก ์์ ๋ง ๋ณด๋ ค๋ฉด
--filter
ํ๋๊ทธ๋ฅผ ์ง์ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
gcloud batch jobs list \
--location=LOCATION \
--filter="FILTER_EXPRESSION"
๋ค์์ ๋ฐ๊ฟ๋๋ค.
LOCATION
: ํ๋ ์ด์์ ์์ ์ด ์๋ ์์นFILTER_EXPRESSION
: ๋์ดํ ์์ ์ ์ ์ํ๋ ํํฐ ํํ์. ํํฐ ํํ์์ 0๊ฐ ์ด์์ ๋ถ๋ฆฌ์ธ ์ฐ์ฐ์(AND
,OR
,NOT
)๋ก ๊ตฌ๋ถ๋ ํ๋ ์ด์์ ์์ฑ-๊ฐ ์์ ์ ์ํด์ผ ํฉ๋๋ค.์๋ฅผ ๋ค์ด ๋ค์ ํํฐ ํํ์์ ์ฐธ๊ณ ํ์ธ์.
์์ ์ํ ๊ธฐ๋ฐ ํํฐ๋ง: ํน์ ์ํ์ ์์ ๋ง ํ์ํ๋ ค๋ฉด ๋ค์ ํํฐ ํํ์์ ์ฌ์ฉํฉ๋๋ค.
status.state="JOB_STATE"
JOB_STATE
์ ์์ ์ํ๋ก ๋ฐ๊ฟ๋๋ค(์:FAILED
).๋ผ๋ฒจ ๊ธฐ๋ฐ ํํฐ๋ง: ํ๋ก์ ํธ์์ ๋ค์ ์ปค์คํ ๋ผ๋ฒจ์ ์ ์ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
Cloud Billing ๋ณด๊ณ ์๋ฅผ ๋ณผ ๋ ๋ฆฌ์์นํ์์ ๋ง๋ ์์ ๊ณผ ํด๋น ๋ฆฌ์์ค๋ฅผ ํ์ํ๊ธฐ ์ํด ์ผ๋ถ ์์ ๋ฐ ํด๋น ๋ฆฌ์์ค์๋
research
๋ก ์ค์ ๋team
๋ผ๋ฒจ์ด ์์ต๋๋ค.์๊ฐ์ ๋ฏผ๊ฐํ ์ํฌ๋ก๋๋ฅผ ํ์ํ๊ธฐ ์ํด ์ผ๋ถ ์์ ์๋ ๋ค์ํ ๊ฐ์ผ๋ก ์ค์ ๋
deadline
๋ผ๋ฒจ์ด ์์ต๋๋ค.๊ฐ๋ฐํ์ด ์ฑ๊ณต์ ์ผ๋ก ํ ์คํธํ ์คํ ๊ฐ๋ฅ ํญ๋ชฉ์ ๋ํ๋ด๊ธฐ ์ํด ์ผ๋ถ ์คํ ๊ฐ๋ฅ ํญ๋ชฉ์๋
true
๋ก ์ค์ ๋tested
๋ผ๋ฒจ์ด ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์, ๋ค์ ํํฐ ํํ์์ ์ง์ ํ ์ ์์ต๋๋ค.
(allocationPolicy.labels.team=research) AND ((labels.deadline:*) OR (runnables.labels.tested=true))
์ด ํํฐ ํํ์์ ๋ค์ ๊ธฐ์ค์ ๋ชจ๋ ์ถฉ์กฑํ๋ ์์ ๋ง ๋์ดํฉ๋๋ค.
research
๋ก ์ค์ ๋ ์์ ํ ๋น ์ ์ฑ ์team
๋ผ๋ฒจ์ด ์๋ ๋ฆฌ์์นํ์ ์์ ์ ๋๋ค.๋ค์ ๊ธฐ์ค ์ค ํ๋ ์ด์์ ์ถฉ์กฑํ๋ ์์ :
์์์ ๊ฐ์ผ๋ก ์ค์ ๋ ์์ ์
deadline
๋ผ๋ฒจ์ด ์๋ ์๊ฐ์ ๋ฏผ๊ฐํ ์์์ฑ๊ณต์ ์ผ๋ก ํ ์คํธ๋ ์คํ ๊ฐ๋ฅํ ํญ๋ชฉ์ด ํ๋ ์ด์ ์๋ ์์ , ์ฆ
true
๋ก ์ค์ ๋tested
๋ผ๋ฒจ์ ์ฌ์ฉํ ์คํ ๊ฐ๋ฅํ ํญ๋ชฉ์ด ํ๋ ์ด์ ์๋ ์์
API
๋ชจ๋ ์์ ๋ณด๊ธฐ
Batch API๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ์์น์ ํ์ฌ ํ๋ก์ ํธ์ ์๋ ์์
๋ชฉ๋ก์ ๋ณด๋ ค๋ฉด jobs.list
๋ฉ์๋์ ๋ํด GET
์์ฒญ์ ์คํํฉ๋๋ค.
GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs
๋ค์์ ๋ฐ๊ฟ๋๋ค.
PROJECT_ID
: ํ์ฌ ํ๋ก์ ํธ์ ํ๋ก์ ํธ IDLOCATION
: ์์ ์ด ์๋ ์์น
ํํฐ๋ง๋ ์์ ๋ชฉ๋ก ๋ณด๊ธฐ
ํ์ํ ๊ฒฝ์ฐ ํํฐ ํํ์์ ๋ฐ๋ผ ํํฐ๋ง๋ ์์
๋ชฉ๋ก์ ๋ณด๊ธฐ ์ํด filter
์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์ GET
์์ฒญ์ ์ํํฉ๋๋ค.
GET https://batch.googleapis.com/v1/projects/example-project/locations/us-central1/jobs?filter=FILTER_EXPRESSION
FILTER_EXPRESSION
์ URL ์ธ์ฝ๋ฉ์ ์ฌ์ฉํ๋ ํํฐ ํํ์์ผ๋ก ๋ฐ๊ฟ๋๋ค.
ํํฐ ํํ์์ 0๊ฐ ์ด์์ ๋ถ๋ฆฌ์ธ ์ฐ์ฐ์(AND
, OR
, NOT
)๋ก ๊ตฌ๋ถ๋ ํ๋ ์ด์์ ์์ฑ-๊ฐ ์์ ์ ์ํด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์ ํํฐ ํํ์์ ์ฐธ๊ณ ํ์ธ์.
์์ ์ํ ๊ธฐ๋ฐ ํํฐ๋ง: ํน์ ์ํ์ ์์ ๋ง ํ์ํ๋ ค๋ฉด ๋ค์ ํํฐ ํํ์์ ์ฌ์ฉํฉ๋๋ค.
status.state="JOB_STATE"
JOB_STATE
์ ์์ ์ํ๋ก ๋ฐ๊ฟ๋๋ค(์:FAILED
).๋ผ๋ฒจ ๊ธฐ๋ฐ ํํฐ๋ง: ํ๋ก์ ํธ์์ ๋ค์ ์ปค์คํ ๋ผ๋ฒจ์ ์ ์ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
Cloud Billing ๋ณด๊ณ ์๋ฅผ ๋ณผ ๋ ๋ฆฌ์์นํ์์ ๋ง๋ ์์ ๊ณผ ํด๋น ๋ฆฌ์์ค๋ฅผ ํ์ํ๊ธฐ ์ํด ์ผ๋ถ ์์ ๋ฐ ํด๋น ๋ฆฌ์์ค์๋
research
๋ก ์ค์ ๋team
๋ผ๋ฒจ์ด ์์ต๋๋ค.์๊ฐ์ ๋ฏผ๊ฐํ ์ํฌ๋ก๋๋ฅผ ํ์ํ๊ธฐ ์ํด ์ผ๋ถ ์์ ์๋ ๋ค์ํ ๊ฐ์ผ๋ก ์ค์ ๋
deadline
๋ผ๋ฒจ์ด ์์ต๋๋ค.๊ฐ๋ฐํ์ด ์ฑ๊ณต์ ์ผ๋ก ํ ์คํธํ ์คํ ๊ฐ๋ฅ ํญ๋ชฉ์ ๋ํ๋ด๊ธฐ ์ํด ์ผ๋ถ ์คํ ๊ฐ๋ฅ ํญ๋ชฉ์๋
true
๋ก ์ค์ ๋tested
๋ผ๋ฒจ์ด ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์, ๋ค์ ํํฐ ํํ์์ ์ง์ ํ ์ ์์ต๋๋ค.
(allocationPolicy.labels.team%3Dresearch)%20AND%20((labels.deadline%3A*)%20OR%20(runnables.labels.tested%3Dtrue))
์ด ํํฐ ํํ์์ ๋ค์ ๊ธฐ์ค์ ๋ชจ๋ ์ถฉ์กฑํ๋ ์์ ๋ง ๋์ดํฉ๋๋ค.
research
๋ก ์ค์ ๋ ์์ ํ ๋น ์ ์ฑ ์team
๋ผ๋ฒจ์ด ์๋ ๋ฆฌ์์นํ์ ์์ ์ ๋๋ค.๋ค์ ๊ธฐ์ค ์ค ํ๋ ์ด์์ ์ถฉ์กฑํ๋ ์์ :
์์์ ๊ฐ์ผ๋ก ์ค์ ๋ ์์ ์
deadline
๋ผ๋ฒจ์ด ์๋ ์๊ฐ์ ๋ฏผ๊ฐํ ์์์ฑ๊ณต์ ์ผ๋ก ํ ์คํธ๋ ์คํ ๊ฐ๋ฅํ ํญ๋ชฉ์ด ํ๋ ์ด์ ์๋ ์์ , ์ฆ
true
๋ก ์ค์ ๋tested
๋ผ๋ฒจ์ ์ฌ์ฉํ ์คํ ๊ฐ๋ฅํ ํญ๋ชฉ์ด ํ๋ ์ด์ ์๋ ์์
Go
Go
์์ธํ ๋ด์ฉ์ Batch Go API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Batch์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
์๋ฐ
Java
์์ธํ ๋ด์ฉ์ Batch Java API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Batch์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Node.js
Node.js
์์ธํ ๋ด์ฉ์ Batch Node.js API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Batch์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Python
Python
์์ธํ ๋ด์ฉ์ Batch Python API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Batch์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
C++
C++
์์ธํ ๋ด์ฉ์ Batch C++ API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Batch์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
์์ ์ธ๋ถ์ ๋ณด ๋ณด๊ธฐ
Google Cloud ์ฝ์, gcloud CLI, Batch API, Go, Java, Node.js, Python ๋๋ C++์ ์ฌ์ฉํ์ฌ ํ์ฌ ํ๋ก์ ํธ์ ์์ ์ธ๋ถ์ ๋ณด๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
์ฝ์
Google Cloud ์ฝ์์ ์ฌ์ฉํ์ฌ ํ์ฌ ํ๋ก์ ํธ์ ์์ ์ธ๋ถ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
Google Cloud ์ฝ์์์ ์์ ๋ชฉ๋ก ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์์ ์ด๋ฆ ์ด์์ ์์ ์ด๋ฆ์ ํด๋ฆญํฉ๋๋ค.
์์ ์ธ๋ถ์ ๋ณด ํ์ด์ง๊ฐ ์ด๋ฆฝ๋๋ค.
์ธ๋ถ์ ๋ณด ํญ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ฆฝ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ณด๋ ค๋ฉด ๋ค๋ฅธ ํญ์ ํด๋ฆญํ์ธ์.
gcloud
gcloud CLI๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฌ ํ๋ก์ ํธ์ ์์
์ธ๋ถ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด --location
ํ๋๊ทธ์ ํจ๊ป gcloud batch jobs describe
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
gcloud batch jobs describe JOB_NAME \
--location=LOCATION
๋ค์์ ๋ฐ๊ฟ๋๋ค.
JOB_NAME
: ๊ธฐ์กด ์์ ์ ์ด๋ฆ์ ๋๋ค.LOCATION
: ์์ ์ด ์๋ ์์น์ ๋๋ค.
API
Batch API๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฌ ํ๋ก์ ํธ์ ์์
์ธ๋ถ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด jobs.get
๋ฉ์๋์ GET
์์ฒญ์ ์ํํฉ๋๋ค.
GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME
๋ค์์ ๋ฐ๊ฟ๋๋ค.
PROJECT_ID
: ํ์ฌ ํ๋ก์ ํธ์ ํ๋ก์ ํธ ID์ ๋๋ค.LOCATION
: ์์ ์ด ์๋ ์์น์ ๋๋ค.JOB_NAME
: ๊ธฐ์กด ์์ ์ ์ด๋ฆ์ ๋๋ค.
Go
Go
์์ธํ ๋ด์ฉ์ Batch Go API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Batch์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
์๋ฐ
Java
์์ธํ ๋ด์ฉ์ Batch Java API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Batch์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Node.js
Node.js
์์ธํ ๋ด์ฉ์ Batch Node.js API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Batch์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Python
Python
์์ธํ ๋ด์ฉ์ Batch Python API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Batch์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
C++
C++
์์ธํ ๋ด์ฉ์ Batch C++ API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Batch์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
ํ ์ผ ๋ณด๊ธฐ
์์ ์ค ํ๋์ ํ์คํฌ๋ฅผ ๋ณด๋ ค๋ฉด ๋ค์ ๋ฐฉ๋ฒ ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
์์ ๋๋ ์์ ์ ํ์คํฌ ๊ทธ๋ฃน์ ์๋ ๋ชจ๋ ํ์คํฌ๋ฅผ ๋ณด๋ ค๋ฉด ์์ ์ ํ์คํฌ ๋ชฉ๋ก์ ํ์ธํฉ๋๋ค.
ํน์ ํ์คํฌ์ ๋ชจ๋ ๊ตฌ์ฑ ์ธ๋ถ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ํ์คํฌ ์ธ๋ถ์ ๋ณด๋ฅผ ํ์ธํฉ๋๋ค.
์์ ํ์คํฌ ๋ชฉ๋ก ๋ณด๊ธฐ
Google Cloud ์ฝ์, gcloud CLI, Batch API, Go, Java, Node.js, Python ๋๋ C++์ ์ฌ์ฉํ์ฌ ์์ ๋๋ ์์ ์ ํ์คํฌ ๊ทธ๋ฃน์์ ํ์คํฌ ๋ชฉ๋ก์ ๋ณผ ์ ์์ต๋๋ค.
์์ ๋๋ ์์ ์ ํ์คํฌ ๊ทธ๋ฃน์ ์๋ ํ์คํฌ ๋ชฉ๋ก์ ํํฐ๋งํ๋ ค๋ฉด(์: ์คํ์ด ์๋ฃ๋ ์์ ๋ง ๋์ด) gcloud CLI ๋๋ Batch API๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์ ์ฌ์ฉํ์ฌ ์์ ์ ํ์คํฌ ์์ฝ์ ๋ณด๋ ค๋ฉด ์์ ์ธ๋ถ์ ๋ณด๋ฅผ ํ์ธํ์ฌ ์์ ์ธ๋ถ์ ๋ณด ํ์ด์ง๋ฅผ ์ฝ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํ์คํฌ ์ธ๋ถ์ ๋ณด ์น์ ์ ํ์ธํฉ๋๋ค.
gcloud
gcloud CLI๋ฅผ ์ฌ์ฉํ์ฌ ์์
ํ์คํฌ ๊ทธ๋ฃน์ ํ์คํฌ ๋ชฉ๋ก์ ๋ณด๋ ค๋ฉด ๋ค์ ํ๋๊ทธ์ ํจ๊ป gcloud batch tasks list
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
gcloud batch tasks list \
--job=JOB_NAME \
--location=LOCATION
๋ค์์ ๋ฐ๊ฟ๋๋ค.
JOB_NAME
: ๊ธฐ์กด ์์ ์ ์ด๋ฆ์ ๋๋ค.LOCATION
: ์์ ์ด ์๋ ์์น์ ๋๋ค.
์ํ๋ ๊ฒฝ์ฐ --filter
ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ์ฌ ํํฐ ํํ์์ ๊ธฐ์ค์ผ๋ก ์์
์ ํ์คํฌ ๊ทธ๋ฃน์ ์๋ ํํฐ๋ง๋ ํ์คํฌ ๋ชฉ๋ก์ ํ์ธํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
gcloud batch tasks list \
--job=example-job \
--location=us-central1 \
--filter="FILTER_EXPRESSION"
FILTER_EXPRESSION
์ ํํฐ ํํ์์ผ๋ก ๋ฐ๊ฟ๋๋ค.
์๋ฅผ ๋ค์ด ์คํ ์ค์ด๊ฑฐ๋ ์คํ์ ์ฑ๊ณต์ ์ผ๋ก ๋ง์น ์์ ์ ํ์คํฌ ๊ทธ๋ฃน์ ์๋ ํ์คํฌ๋ง ํ์ํ๋๋ก ๋ค์ ํํฐ ํํ์์ ์ง์ ํ ์ ์์ต๋๋ค.
STATE=RUNNING OR STATE=SUCCEEDED
API
Batch API๋ฅผ ์ฌ์ฉํ์ฌ ์์
์ ํ์คํฌ ๊ทธ๋ฃน์ ์๋ ํ์คํฌ ๋ชฉ๋ก์ ๋ณด๋ ค๋ฉด tasks.list
๋ฉ์๋์ ๋ํGET
์์ฒญ์ ์ํํฉ๋๋ค.
GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME/taskGroups/TASK_GROUP_NAME/tasks
๋ค์์ ๋ฐ๊ฟ๋๋ค.
PROJECT_ID
: ํ์ฌ ํ๋ก์ ํธ์ ํ๋ก์ ํธ ID์ ๋๋ค.LOCATION
: ์์ ์ด ์๋ ์์น์ ๋๋ค.JOB_NAME
: ๊ธฐ์กด ์์ ์ ์ด๋ฆ์ ๋๋ค.TASK_GROUP_NAME
: ์ธ๋ถ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ ํ์คํฌ ๊ทธ๋ฃน์ ์ด๋ฆ์ ๋๋ค. ๊ฐ์group0
์ผ๋ก ์ค์ ํด์ผ ํฉ๋๋ค.
์ํ๋ ๊ฒฝ์ฐ ํํฐ ํํ์์ ๋ฐ๋ผ ์์
์ ํ์คํฌ ๊ทธ๋ฃน์ ์๋ ํํฐ๋ง๋ ํ์คํฌ ๋ชฉ๋ก์ ๋ณด๊ธฐ ์ํด filter
์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์ GET
์์ฒญ์ ์ํํฉ๋๋ค.
GET https://batch.googleapis.com/v1/projects/example-project/locations/us-central1/jobs/example-job/taskGroups/group0/tasks?filter=FILTER_EXPRESSION
FILTER_EXPRESSION
์ URL ์ธ์ฝ๋ฉ์ ์ฌ์ฉํ๋ ํํฐ ํํ์์ผ๋ก ๋ฐ๊ฟ๋๋ค.
์๋ฅผ ๋ค์ด ์คํ ์ค์ด๊ฑฐ๋ ์คํ์ ์ฑ๊ณต์ ์ผ๋ก ๋ง์น ์์ ์ ํ์คํฌ ๊ทธ๋ฃน์ ์๋ ํ์คํฌ๋ง ํ์ํ๋๋ก ๋ค์ ํํฐ ํํ์์ ์ง์ ํ ์ ์์ต๋๋ค.
STATE=RUNNING%20OR%20STATE=SUCCEEDED
URL๋ก ์ธ์ฝ๋ฉ๋ ํํฐ ํํ์์ ๋ค์ ๋์ฝ๋ฉ๋ ํํฐ ํํ์์ ๋ํ๋ ๋๋ค.
STATE=RUNNING OR STATE=SUCCEEDED
Go
Go
์์ธํ ๋ด์ฉ์ Batch Go API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Batch์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
์๋ฐ
Java
์์ธํ ๋ด์ฉ์ Batch Java API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Batch์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Node.js
Node.js
์์ธํ ๋ด์ฉ์ Batch Node.js API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Batch์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Python
Python
์์ธํ ๋ด์ฉ์ Batch Python API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Batch์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
C++
C++
์์ธํ ๋ด์ฉ์ Batch C++ API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Batch์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
ํ์คํฌ ์ธ๋ถ์ ๋ณด ๋ณด๊ธฐ
Google Cloud ์ฝ์, gcloud CLI, Batch API, Go, Java, Node.js, Python ๋๋ C++์ ์ฌ์ฉํ์ฌ ํ์คํฌ์ ์ธ๋ถ์ ๋ณด๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
์ฝ์
Google Cloud ์ฝ์์ ์ฌ์ฉํ์ฌ ํ์คํฌ ์ธ๋ถ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ์์ ์ธ๋ถ์ ๋ณด๋ฅผ ํ์ธํ์ฌ ์์ ์ธ๋ถ์ ๋ณด ํ์ด์ง๋ฅผ ์ฝ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํ์คํฌ ์ธ๋ถ์ ๋ณด ์น์ ์ ํ์ธํฉ๋๋ค.
gcloud
gcloud CLI๋ฅผ ์ฌ์ฉํ์ฌ ํ์คํฌ์ ์ธ๋ถ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ๋ค์ ํ๋๊ทธ์ ํจ๊ป gcloud batch tasks describe
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
gcloud batch tasks describe TASK_INDEX \
--location=LOCATION \
--job=JOB_NAME \
--task_group=TASK_GROUP_NAME
๋ค์์ ๋ฐ๊ฟ๋๋ค.
TASK_INDEX
: ์ธ๋ถ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ ํ์คํฌ์ ์์ธ์ ๋๋ค. ํ์คํฌ ๊ทธ๋ฃน์ ํ์คํฌ ์์ธ์ ์ฒซ ๋ฒ์งธ ํ์คํฌ์์ 0๋ถํฐ ์์ํ์ฌ ํ์คํฌ๋ฅผ ์ถ๊ฐํ ๋๋ง๋ค 1์ฉ ์ฆ๊ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํ์คํฌ 4๊ฐ๊ฐ ํฌํจ๋ ํ์คํฌ ๊ทธ๋ฃน์ ์์ธ์0
,1
,2
,3
์ ๋๋ค.TASK_GROUP_NAME
: ์ธ๋ถ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ ํ์คํฌ๊ฐ ํฌํจ๋ ํ์คํฌ ๊ทธ๋ฃน์ ์ด๋ฆ์ ๋๋ค. ๊ฐ์group0
์ผ๋ก ์ค์ ํด์ผ ํฉ๋๋ค.JOB_NAME
: ๊ธฐ์กด ์์ ์ ์ด๋ฆ์ ๋๋ค.LOCATION
: ์์ ์ด ์๋ ์์น์ ๋๋ค.
API
Batch API๋ฅผ ์ฌ์ฉํ์ฌ ํ์คํฌ์ ์ธ๋ถ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด tasks.get
๋ฉ์๋์ ๋ํด GET
์์ฒญ์ ์ํํฉ๋๋ค.
GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME/taskGroups/TASK_GROUP_NAME/tasks/TASK_INDEX
๋ค์์ ๋ฐ๊ฟ๋๋ค.
PROJECT_ID
: ํ์ฌ ํ๋ก์ ํธ์ ํ๋ก์ ํธ ID์ ๋๋ค.LOCATION
: ์์ ์ด ์๋ ์์น์ ๋๋ค.JOB_NAME
: ๊ธฐ์กด ์์ ์ ์ด๋ฆ์ ๋๋ค.TASK_GROUP_NAME
: ์ธ๋ถ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ ํ์คํฌ๊ฐ ํฌํจ๋ ํ์คํฌ ๊ทธ๋ฃน์ ์ด๋ฆ์ ๋๋ค. ๊ฐ์group0
์ผ๋ก ์ค์ ํด์ผ ํฉ๋๋ค.TASK_INDEX
: ์ธ๋ถ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ ํ์คํฌ์ ์์ธ์ ๋๋ค. ํ์คํฌ ๊ทธ๋ฃน์ ํ์คํฌ ์์ธ์ ์ฒซ ๋ฒ์งธ ํ์คํฌ์์ 0๋ถํฐ ์์ํ์ฌ ํ์คํฌ๋ฅผ ์ถ๊ฐํ ๋๋ง๋ค 1์ฉ ์ฆ๊ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํ์คํฌ 4๊ฐ๊ฐ ํฌํจ๋ ํ์คํฌ ๊ทธ๋ฃน์ ์์ธ์0
,1
,2
,3
์ ๋๋ค.
Go
Go
์์ธํ ๋ด์ฉ์ Batch Go API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Batch์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
์๋ฐ
Java
์์ธํ ๋ด์ฉ์ Batch Java API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Batch์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Node.js
Node.js
์์ธํ ๋ด์ฉ์ Batch Node.js API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Batch์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Python
Python
์์ธํ ๋ด์ฉ์ Batch Python API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Batch์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
C++
C++
์์ธํ ๋ด์ฉ์ Batch C++ API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Batch์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
๋ค์ ๋จ๊ณ
๋ฌธ์ ํด๊ฒฐ์ ๋ํด ์์๋ณด๊ธฐ
์์ ์ ๋ชจ๋ํฐ๋งํ๊ณ ๋ถ์ํ๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
์ธก์ ํญ๋ชฉ์ ํ์ธํ์ฌ ์์ ๋ฆฌ์์ค ๋ชจ๋ํฐ๋ง ๋ฐ ์ต์ ํ
์์ ์ ๋ก๊ทธ๋ฅผ ๊ตฌ์ฑํ ๊ฒฝ์ฐ ๋ก๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์ ๋ถ์ํ ์ ์์ต๋๋ค.
์ํ ์๋ฆผ์ ๊ตฌ์ฑํ ๊ฒฝ์ฐ Pub/Sub ์๋ฆผ์ ์ฌ์ฉํ์ฌ ์์ ์ ๋ชจ๋ํฐ๋งํ๊ณ BigQuery๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฆผ์ ๋ถ์ํ ์ ์์ต๋๋ค.
์์ ๊ด๋ฆฌ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ