সার্ভারে গ্লকআউড সহ কীভাবে GOOGLE_APPLICATION_CREDENTIALS ব্যবহার করবেন?


11

gcloudজিএসইর বাইরে কোনও সার্ভিস অ্যাকাউন্টের সাথে অ-ইন্টারেক্টিভভাবে কমান্ড লাইনটি ব্যবহার করার সহজ উপায় কী ? প্রাথমিকভাবে শংসাপত্রের ফাইলগুলির সাথে ফাইল সিস্টেম লিটার ছাড়াই, যা তা gcloud auth activate-service-account --key-file=...করে।

gcloudপরিষেবা অ্যাকাউন্টের সাথে ব্যবহারের জন্য অনেকগুলি ব্যবহারের কেস রয়েছে । উদাহরণস্বরূপ, একটি সার্ভারে, আমি পরীক্ষা করতে চাই যে GOOGLE_APPLICATION_CREDENTIALSআমার অ্যাপ্লিকেশন চালানোর আগে সঠিকভাবে সেট করা আছে এবং প্রয়োজনীয় অনুমতি রয়েছে has অথবা, আমি কিছু সেটআপ স্ক্রিপ্ট বা ক্রোন স্ক্রিপ্টগুলি চালাতে চাই যা gcloudকমান্ড লাইনের সাথে কিছু পরীক্ষা করে ।

গুগল ক্লাউড লাইব্রেরি (যেমন পাইথন , জাভা ) GOOGLE_APPLICATION_CREDENTIALSগুগল ক্লাউডে প্রমাণীকরণের জন্য স্বয়ংক্রিয়ভাবে পরিবেশ পরিবর্তনশীল ব্যবহার করে । তবে দুর্ভাগ্যক্রমে, এই কমান্ড লাইনের কোনও প্রভাব নেই বলে মনে হচ্ছে gcloudgcloudফাইল সিস্টেম অটুট রেখে যাওয়ার জন্য ব্যবহার করার একটি পরিষ্কার উপায় কী ?

$ GOOGLE_APPLICATION_CREDENTIALS=/etc/my-service-account-4b4b6e63aaed.json gcloud alpha pubsub topics publish testtopic hello
ERROR: (gcloud.alpha.pubsub.topics.publish) You do not currently have an active account selected.
Please run:

  $ gcloud auth login

to obtain new credentials, or if you have already logged in with a
different account:

  $ gcloud config set account ACCOUNT

to select an already authenticated account to use.

আপনার ব্যবহারের কেসগুলি উল্লেখ করে Google পাবলিক ইস্যু ট্র্যাকারে কোনও বৈশিষ্ট্য অনুরোধটি নির্দ্বিধায় খোলার অনুগ্রহ করে: ইস্যুজেট্রেকার.কম
কামরান

1
আমি ইস্যু 38098801
yonran

উত্তর:


20

gcloudসাধারণত GOOGLE_APPLICATION_CREDENTIALSপরিবেশ পরিবর্তনশীল ব্যবহার করে না । এর মধ্যে এই অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রগুলি সেট আপ করার সুবিধার্থে কেবল কিছু আদেশ রয়েছে gcloud auth application-default [login|revoke|print-access-token...]

ডিফল্টরূপে gcloudএটির কনফিগারেশনটি {OME হোম} /। কনফিগারেশন / গ্লকউডে সঞ্চয় করে। CLOUDSDK_CONFIGপরিবেশের পরিবর্তনশীল সেট করে সেই অবস্থানটি ওভাররাইড করা সম্ভব ।

এছাড়াও বেশিরভাগ সেটিং ওভাররাইড করা সম্ভব (যদিও আরও বেশি ক্লান্তিকর) যাতে তাদের gcloud config set ...এবং / অথবা এর মাধ্যমে পূর্বনির্ধারিত হওয়া প্রয়োজন না gcloud auth activate-service-account। প্রতিটি সেটিংয়ের জন্য একটি পরিবেশের পরিবর্তনশীল নির্দিষ্ট করতে পারে।

উদাহরণস্বরূপ, পরিষেবা অ্যাকাউন্ট কী ফাইলটি আপনি যে সমতুল্য আদেশটি ব্যবহার করার চেষ্টা করেছিলেন তা হ'ল:

$ CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE=/etc/my-service-account-4b4b6e63aaed.json \
    gcloud alpha pubsub topics publish testtopic hello

নোট করুন যে এটি এখনও শংসাপত্রগুলিকে ক্যাশে করবে CLOUDSDK_CONFIGযেহেতু এটি অ্যাক্সেস-টোকেন ক্যাশে করা দরকার, যাতে এটি প্রতিটি অনুরোধে এটি রিফ্রেশ করতে না পারে।

আপনার ব্যবহারের ক্ষেত্রে আমার দৃষ্টিতে সেরা বিকল্পটি হবে

  1. CLOUDSDK_CONFIGকিছু অস্থায়ী ডিরেক্টরিতে সেট করুন
  2. gcloud auth activate-service-account --key-file=...
  3. ... gcloudআপনার কাজ করতে ব্যবহার করুন ...
  4. অস্থায়ী CLOUDSDK_CONFIGডিরেক্টরি সরান ।

1

আপনি --accountবিকল্পটি তাকান? মত

$gcloud --account="foo" ...

( রেফারেন্স )

"শংসাপত্রগুলির সাথে ফাইল সিস্টেমে লিটারিং না করে" সম্পর্কিত, এটি অর্জন সম্ভব কিনা তা সম্পর্কে আমি নিশ্চিত নই।


আমি মনে করি যে ওপি সার্ভিস অ্যাকাউন্টের শংসাপত্রগুলিকে সক্রিয় না করে কীভাবে প্রমাণীকরণ করবে সে সম্পর্কে জিজ্ঞাসা করছে যা অন্য কোথাও শংসাপত্রগুলি ক্যাশে করে। আমি মনে করি --account=শংসাপত্রগুলি সক্রিয় হওয়ার পরে আপনি কেবলমাত্র ব্যবহার করতে পারবেন ।
ডেভিড জিয়া

1

1) জিসিপি আইএমে একটি পরিষেবা অ্যাকাউন্ট তৈরি করুন। "একটি নতুন ব্যক্তিগত কী সজ্জিত করতে" বাক্সটি চেক করুন এবং ফাইলের ধরণ হিসাবে জেএসএন নির্বাচন করুন।

2) আপনার সার্ভারে JSON ফাইলটি ডাউনলোড করুন এবং টাইপ করুন: gcloud auth activate-service-account --key-file serviceaccount.json

3) যাচাই শংসাপত্রগুলি চালিয়ে প্রয়োগ করা হয়েছিল gcloud auth list

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.