gcloud μ νΈλ¦¬ν°μ μ μΆνλ©΄ λ§€μ° λΆμ‘±ν©λλ€.
Gsutilμ μλΉμ€ κ³μ μΉμΈμ μ 곡ν©λλ€. gsutil config -e
λ μλΉμ€ κ³μ μ격 μ¦λͺ
μ΄ ν¬ν¨λ κ°μΈ ν€ νμΌμ 묻λ λ©μμ§λ₯Ό νμν©λλ€. λ€λ₯Έ ννμ μλΉμ€ κ³μ μΈμ¦μ λν΄ λ¬Έμνμ
¨μ΅λκΉ?
μ΄κ²μ μ€ν¬λ¦½νΈμμ μ¬μ©νκΈ°μ μ ν©νμ§ μμ΅λλ€. ν€κ° μλ νμΌμ΄ μμ λ. κ·Έλ¦¬κ³ promtλ₯Ό μ¬μ©ν μ μμ΅λλ€. gcloud μ νΈλ¦¬ν°λ₯Ό μ¬μ©νλ©΄ ν€ νμΌμ ν΅ν΄ λΉλνν μΉμΈμ μ¬μ©ν μ μμ΅λλ€.
λͺ κ°μ§ μ μ¬μ μΈ ν΄κ²° λ°©λ²:
ν΄κ²° λ°©λ²μ΄ νμνμ§ μμ΅λλ€. gsutilμ΄ μλΉμ€ κ³μ μΉμΈμΌλ‘ gcloudμ ν¨κ» μλνλλ‘ νκ³ μΆμ΅λλ€. μ΄κ²μ μλν μμ μ ν¬κ² μ΄μ§ν κ²μ λλ€.
λͺ¨λ κ·Ήλ¨μ μΈ κ²½μ° λλ¬Έμ μλμ μΌλ‘ gsutil config
νλ‘μΈμ€λ₯Ό λνμμΌλ‘ λ§λλλ€. κ°μ₯ μ€μν κ²μ JSON λλ P12 ν€ νμΌμ μ§μ νλμ§ μ¬λΆμ λ°λΌ κ΅¬μ± νμΌμ μμ±νλ λ° λ€λ₯Έ μ λ³΄κ° νμνλ€λ κ²μ
λλ€. μ ν¨ν κ΅¬μ± νμΌμ΄ μμΌλ©΄ μλ μ€ν¬λ¦½νΈμ ν¨κ» μ¬μ©ν μ μλλ‘ λ³κ²½νκ³ ν¨ν€μ§ν μ μμ΅λλ€(μ΄λ―Έ ν¨ν€μ§νκ³ μλ ν€ νμΌκ³Ό ν¨κ»). κ·Έλ¦¬κ³ gcloudμ μ격 μ¦λͺ
κ΄λ¦¬ μμ€ν
μ gsutilκ³Ό ν¨κ» μ¬μ©νλ €λ κ²½μ° gcloudλ₯Ό μ€μΉ λ° κ΅¬μ±νλ©΄ μ½κ² λ¬μ±ν μ μμ΅λλ€.
gsutil config
λͺ
λ Ήμ μ€ννλ κ²μ λ€μκ³Ό κ°μ 짧μ boto νμΌμ ꡬμ±νλ κ²λ§νΌμ΄λ μ½μ΅λλ€.
[Credentials]
gs_service_key_file = /path/to/keyfile.json
[GSUtil]
default_project_id = id-for-my-project
λλ λλΆλΆμ κ΅¬μ± μ΅μ μ λν΄ gcloudκ° λ΄λΆμ μΌλ‘ μννλ μμ μ μννλ €λ©΄ λͺ λ Ήμ€μμ gsutilμ μΈμλ‘ μ λ¬ν©λλ€. μ΄κ²μ νμΌ μμ±μ λ§μ§μκ±°λ¦¬μ§ μλλ€λ μ΄μ μ΄ μμ΅λλ€.
gsutil -o "Credentials:gs_service_key_file=/path/to/keyfile.json" \
-o "default_project_id=id-for-my-project" \
<rest of command>
μ΄κ²μ νλ₯ν κΈ°λ₯μ λλ€. μ λ μκ³ μμ΅λλ€. κ·Έλ¬λ μ΄κ²μ λΆνΈν©λλ€. gcloud μ νΈλ¦¬ν°μ ν΅ν©νλ €λ κ²½μ° λ€λ₯Έ νμΌμ΄ νμν μ΄μ λ 무μμΈκ°μ?
μΆκ° νμΌ μμ΄ key.json νμΌμ 맀κ°λ³μλ‘ μ§μ νλ κΈ°λ₯μ μΆκ°νκΈ°λ§ νλ©΄ λ©λλ€. μ΄κ²μ λ§μ μ¬λλ€μ μΆμ λ μ½κ² λ§λ€μ΄ μ€ κ²μ λλ€.
κ·Έλ¦¬κ³ μ΄ μ¬λ‘λ₯Ό ꡬ체μ μΈ μκ° μλ λ¬Έμλ‘ μ§μ νλ κ²μ΄ μ’μ κ²μ λλ€. κ°μ¬ν©λλ€!
μ΄κ²μ΄ λ¬Έμ λ₯Ό μΌμΌν€λ ꡬ체μ μΈ μ: μμμ μΈκΈν μΌλΆ λνΌ μ€ν¬λ¦½νΈ λ΄μμ μ¬μ©λλ gs_service_key_file
ν΄κ²° λ°©λ²μ μ¬μ©νκ³ μμ΅λλ€. κ·Έλ¬λ μ¬μ©μκ° gcloud auth application-default login
λ₯Ό ν΅ν΄ κΈ°λ³Έ μ¬μ©μ κ³μ λ ꡬμ±ν κ²½μ° μ΄ λͺ
λ Ήμ λ€μ λμμ΄ λμ§ μλ μ€λ₯μ ν¨κ» μ€ν¨ν©λλ€.
$ gsutil -o "Credentials:gs_service_key_file=/path/to/keyfile.json" rsync ...
Caught non-retryable exception while listing gs://<snip>/: CommandException: \
You have multiple types of configured credentials ([u'Oauth 2.0 User Account', u'OAuth 2.0 \
Service Account']), which is not supported. One common way this happens is if you run gsutil \
config to create credentials and later run gcloud auth, and create a second set of credentials. Your \
boto config path is: ['<snip>']. For more help, see "gsutil help creds".
CommandException: Caught non-retryable exception - aborting rsync
λλ λν --auth
λͺ
λ Ήμ€ νλκ·Έκ° ν¨μ¬ λ κ°λ¨ν κ²μ΄λΌκ³ μ£Όμ₯ν©λλ€. κ°μ¬ ν΄μ.
μΈκΈλ ν΄κ²° λ°©λ²μ΄ λ μ΄μ μλνμ§ μλ κ² κ°μ΅λλ€.
μ€λ₯ λ©μμ§λ λλ²κ·Έ λ‘κ·Έ μμ΄ λμλ§ λ©μμ§λ₯Ό μΈμνκ³ μ€μ§ν©λλ€.
λ λ€λ₯Έ μ΄μ λ₯Ό μ€λͺ
νμλ©΄ μ€ν¬λ¦½νΈμμ μ μ§μλλ λ°©λ²μ μ¬μ©νλ κ²μ΄ νΈλ¦¬ν κ²μ
λλ€.
λ§μ κ°λ³ gsutil λͺ
λ Ή μ€νμ μμνλ μ€ν¬λ¦½νΈκ° μμΌλ©° λ§€λ² μ¬λ¬ μλΉμ€ κ³μ μ€ νλλ₯Ό μ¬μ©ν μ μμ΅λλ€. λ¨μν gsutil λͺ
λ Ήμ λ€λ₯Έ μλΉμ€ κ³μ jsonμ μ§μ ν μ μλ κ²μ΄ μ΄ λ¬Έμ λ₯Ό μ²λ¦¬νλ κ°μ₯ μ¬μ΄ λ°©λ²μ
λλ€. μΈκΈν κ²μ²λΌ μ΄λ¬ν μλ‘ λ€λ₯Έ gsutil μ€νμμ λ§μ μλΉμ€ κ³μ κ°μ μμ£Ό κ΅νμ΄ μκΈ° λλ¬Έμ boto νμΌλ‘ μ΄ μμ
μ μννλ λ°©λ²μ‘°μ°¨ μ λͺ¨λ₯΄κ² μ΅λλ€.
νμ¬ Credentials:gs_service_key_file
ν΄κ²° λ°©λ²μ΄ μλ μ€μ΄μ§λ§ μ΄μ λ²μ μ gsutilμ μ¬μ© μ€μ
λλ€. μμμ μΈκΈν @NikkyAI κ° λ μ΄μ μλνμ§ μκΈ° λλ¬Έμ μ
κ·Έλ μ΄λν λ μλμ΄ μ€μ§λ μ μλ€λ μ μ΄ μ°λ €λ©λλ€.
@NikkyAI @AndrewJDR λμΌν μ€λ₯κ° λ°μνμ§λ§ GSUtilμ default_project_idμ μΆκ°ν ν ν¨κ³Όκ° μμμ΅λλ€.
λ€μμ λͺ
λ Ήμ
λλ€.
gsutil -o " μ격 μ¦λͺ
:gs_service_key_file=/κ²½λ‘/to/keyfile.json " \
-o " GSUtil:default_project_id=id-for-my-project " \
κ°μ₯ μ μ©ν λκΈ
μ΄κ²μ νλ₯ν κΈ°λ₯μ λλ€. μ λ μκ³ μμ΅λλ€. κ·Έλ¬λ μ΄κ²μ λΆνΈν©λλ€. gcloud μ νΈλ¦¬ν°μ ν΅ν©νλ €λ κ²½μ° λ€λ₯Έ νμΌμ΄ νμν μ΄μ λ 무μμΈκ°μ?
μΆκ° νμΌ μμ΄ key.json νμΌμ 맀κ°λ³μλ‘ μ§μ νλ κΈ°λ₯μ μΆκ°νκΈ°λ§ νλ©΄ λ©λλ€. μ΄κ²μ λ§μ μ¬λλ€μ μΆμ λ μ½κ² λ§λ€μ΄ μ€ κ²μ λλ€.