কীভাবে প্রমাণীকৃত ক্লাউড রান ফাংশনগুলি শুরু করতে হয় তা শিখুন৷

1. ভূমিকা

ওভারভিউ

ক্লাউড রান ফাংশন হল ডেভেলপারদের জন্য একক-উদ্দেশ্য, স্বতন্ত্র ফাংশন তৈরি করার জন্য একটি হালকা গণনা সমাধান যা HTTPS ব্যবহার করে ট্রিগার করা যেতে পারে বা সার্ভার বা রানটাইম পরিবেশ পরিচালনা করার প্রয়োজন ছাড়াই ক্লাউড ইভেন্টে প্রতিক্রিয়া জানাতে পারে। আমাদের ব্লগ পোস্টে ক্লাউড রান ফাংশন সম্পর্কে আরও জানুন।

ক্লাউড রান ফাংশনগুলিতে আমন্ত্রণগুলি নিয়ন্ত্রণ করার দুটি প্রধান পদ্ধতি রয়েছে: পরিচয়ের ভিত্তিতে অ্যাক্সেস সুরক্ষিত করা এবং নেটওয়ার্ক-ভিত্তিক অ্যাক্সেস নিয়ন্ত্রণগুলি ব্যবহার করে অ্যাক্সেস সুরক্ষিত করা। এই কোডল্যাবটি প্রথম পদ্ধতির উপর ফোকাস করে এবং একটি ফাংশন চালু করার জন্য পরিচয়ের উপর ভিত্তি করে অ্যাক্সেস সুরক্ষিত করার জন্য আপনাকে 3টি পরিস্থিতিতে নিয়ে যায়:

  1. স্থানীয় উন্নয়ন এবং পরীক্ষার উদ্দেশ্যে একটি ফাংশন আহ্বান করতে আপনার gcloud পরিচয় টোকেন ব্যবহার করুন
  2. উৎপাদনের মতোই শংসাপত্রগুলি ব্যবহার করার জন্য স্থানীয়ভাবে বিকাশ এবং পরীক্ষা করার সময় একটি পরিষেবা অ্যাকাউন্টের ছদ্মবেশ ধারণ করুন৷
  3. Google ক্লাউড এপিআই-তে প্রমাণীকরণ পরিচালনা করতে Google ক্লায়েন্ট লাইব্রেরি ব্যবহার করুন, যেমন যখন কোনো পরিষেবাকে কোনো ফাংশন চালু করতে হয়

আপনি কি শিখবেন

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

2. সেটআপ এবং প্রয়োজনীয়তা

পূর্বশর্ত

  • আপনি ক্লাউড কনসোলে লগ ইন করেছেন
  • আপনি পূর্বে একটি HTTP ট্রিগার করা ক্লাউড রান ফাংশন স্থাপন করেছেন৷ দ্রুত শুরু উদাহরণ দেখুন.
  • (ঐচ্ছিক) 3য় দৃশ্যের জন্য, এই কোডল্যাবটি উদাহরণ হিসাবে Node.js এবং npm ব্যবহার করে, কিন্তু আপনি Google Auth ক্লায়েন্ট লাইব্রেরি দ্বারা সমর্থিত যেকোন রানটাইম ব্যবহার করতে পারেন।

ক্লাউড শেল সক্রিয় করুন

  1. ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন d1264ca30785e435.png .

84688aa223b1c3a2.png

যদি এটি আপনার প্রথমবার ক্লাউড শেল শুরু হয়, তাহলে এটি কী তা বর্ণনা করে আপনাকে একটি মধ্যবর্তী স্ক্রীন উপস্থাপন করা হবে। যদি আপনি একটি মধ্যবর্তী স্ক্রীনের সাথে উপস্থাপিত হন, তবে চালিয়ে যান ক্লিক করুন।

d95252b003979716.png

ক্লাউড শেলের সাথে সংযোগ করতে এবং সংযোগ করতে এটির মাত্র কয়েক মুহূর্ত লাগবে৷

7833d5e1c5d18f54.png

এই ভার্চুয়াল মেশিনটি প্রয়োজনীয় সমস্ত বিকাশের সরঞ্জাম দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5 GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার অনেক কাজ, যদি সব না হয়, ব্রাউজার দিয়ে করা যেতে পারে।

একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি প্রমাণীকৃত হয়েছেন এবং প্রকল্পটি আপনার প্রকল্প আইডিতে সেট করা আছে।

  1. আপনি প্রমাণীকৃত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth list

কমান্ড আউটপুট

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud config list project

কমান্ড আউটপুট

[core]
project = <PROJECT_ID>

যদি এটি না হয়, আপনি এই কমান্ড দিয়ে এটি সেট করতে পারেন:

gcloud config set project <PROJECT_ID>

কমান্ড আউটপুট

Updated property [core/project].

3. একটি প্রমাণীকৃত ক্লাউড রান ফাংশন তৈরি করুন এবং পরীক্ষা করুন৷

প্রমাণীকরণের প্রয়োজন মানে যে নীতিটি ফাংশনটি আহ্বান করে তার ক্লাউড রান ইনভোকার ভূমিকা থাকতে হবে; অন্যথায়, ফাংশনটি একটি 403 নিষিদ্ধ ত্রুটি ফিরিয়ে দেবে। এই কোডল্যাবটি দেখাবে কিভাবে একটি নীতিতে উপযুক্ত আহ্বানকারীর ভূমিকা প্রদান করা যায়

সরলীকৃত gcloud কমান্ডের জন্য স্থানীয় পরিবেশ ভেরিয়েবল সেটআপ করুন

প্রথমে, আপনি এই কোডল্যাবে ব্যবহৃত gcloud কমান্ডের পঠনযোগ্যতা উন্নত করতে কয়েকটি পরিবেশের ভেরিয়েবল তৈরি করবেন।

REGION=us-central1
PROJECT_ID=$(gcloud config get-value project)

ফাংশনের জন্য সোর্স কোড তৈরি করুন

যদিও এই কোডল্যাব Node.js ব্যবহার করে, আপনি Google Auth ক্লায়েন্ট লাইব্রেরি দ্বারা সমর্থিত যেকোনো রানটাইম ব্যবহার করতে পারেন।

প্রথমে একটি ডিরেক্টরি তৈরি করুন এবং সেই ডিরেক্টরিতে সিডি করুন।

mkdir auth-function-codelab && cd $_

তারপর, package.json ফাইলটি তৈরি করুন।

touch package.json

echo '{
  "dependencies": {
    "@google-cloud/functions-framework": "^3.0.0"
  }
}
' > package.json

এরপর, index.js সোর্স ফাইল তৈরি করুন।

touch index.js

echo 'const functions = require("@google-cloud/functions-framework");

functions.http("helloWorld", (req, res) => {
 res.send(`Hello ${req.query.name || req.body.name || "World"}!`);
});' > index.js

প্রমাণীকৃত ফাংশন তৈরি করুন

এখানে nodejs20 রানটাইমের জন্য একটি প্রমাণীকৃত ফাংশন তৈরি করার পদক্ষেপ রয়েছে। যাইহোক, আপনি Google Auth ক্লায়েন্ট লাইব্রেরি দ্বারা সমর্থিত যেকোনো রানটাইম ব্যবহার করতে পারেন।

FUNCTION_NAME=authenticated-function-codelab
ENTRY_POINT=helloWorld

একটি ক্লাউড রান ফাংশন সরাসরি ক্লাউড রানে স্থাপন করতে, নিম্নলিখিত কমান্ডটি চালান:

gcloud beta run deploy $FUNCTION_NAME \
      --source . \
      --function helloWorld \
      --region $REGION \
      --no-allow-unauthenticated

এবং তারপর আপনি পরে ব্যবহার করার জন্য একটি পরিবেশ পরিবর্তনশীল হিসাবে ফাংশন URL সংরক্ষণ করতে পারেন।

FUNCTION_URL="$(gcloud run services describe $FUNCTION_NAME --region $REGION --format 'value(status.url)')"

আপনি যদি ক্লাউড ফাংশন 2nd জেনার হিসাবে স্থাপন করতে পছন্দ করেন তবে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

gcloud functions deploy nodejs-http-function \
  --gen2 \
  --runtime=nodejs20 \
  --region=$REGION \
  --source=. \
  --entry-point=helloWorld \
  --trigger-http \
  --no-allow-unauthenticated

এবং তারপর আপনি পরে ব্যবহার করার জন্য একটি পরিবেশ পরিবর্তনশীল হিসাবে ফাংশন URL সংরক্ষণ করতে পারেন।

FUNCTION_URL="$(gcloud functions describe $FUNCTION_NAME --gen2 --region us-central1 --format='get(serviceConfig.uri)')"

একটি বেনামী কলার হিসাবে আহ্বান করার চেষ্টা করে ফাংশনটির প্রমাণীকরণের প্রয়োজন যাচাই করুন৷

আপনি একটি প্রত্যাশিত 403 ত্রুটি পেয়েছেন তা যাচাই করতে আপনি প্রমাণীকরণ ছাড়াই ফাংশনটি চালু করবেন।

একটি কমান্ড লাইন থেকে, নিম্নলিখিত curl কমান্ড চালান:

curl -i $FUNCTION_URL

আপনি নিম্নলিখিত ফলাফল দেখতে পাবেন:

<html><head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>403 Forbidden</title>
</head>
<body text=#000000 bgcolor=#ffffff>
<h1>Error: Forbidden</h1>
<h2>Your client does not have permission to get URL <code>/</code> from this server.</h2>
<h2></h2>
</body></html>

এখন আপনি 3টি পরিস্থিতির মধ্য দিয়ে চলার জন্য প্রস্তুত যেখানে আপনি প্রমাণীকরণ প্রদান করে আপনার ফাংশনটি শুরু করতে পারেন।

4. দৃশ্যকল্প 1: আপনার gcloud পরিচয় টোকেন ব্যবহার করুন

একজন বিকাশকারী হিসাবে, আপনি স্থানীয়ভাবে এটি বিকাশ করার সময় আপনার ফাংশনটি পরীক্ষা করার একটি উপায় চাইবেন। এই বিভাগে, আপনার নিজের পরিচয় ব্যবহার করে ফাংশনটি সঠিকভাবে প্রমাণীকৃত হয়েছে তা যাচাই করার জন্য আপনি একটি দ্রুত পরীক্ষা করবেন।

নিম্নলিখিত কমান্ডটি চালিয়ে আপনি gcloud ব্যবহার করে প্রমাণীকরণ করেছেন তা যাচাই করুন:

gcloud auth list

আপনার সক্রিয় পরিচয়ের পাশে একটি তারকাচিহ্ন দেখতে হবে, উদাহরণস্বরূপ:

Credentialed Accounts
ACTIVE  ACCOUNT

*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`

আপনি ডক্সে gcloud init এবং gcloud auth লগইন সেট আপ করার বিষয়ে আরও তথ্য পেতে পারেন।

এরপরে, ফাংশনটি চালু করুন এবং এটিকে আপনার পরিচয় টোকেন দিন।

curl $FUNCTION_URL -H "Authorization: bearer $(gcloud auth print-identity-token)"

এখন আপনি ফলাফল দেখতে পাবেন:

Hello World!

সমস্যা সমাধান

আপনি যদি একটি 403 নিষিদ্ধ ত্রুটি পান তবে নিশ্চিত করুন যে আপনার পরিচয়ে ক্লাউড রান ইনভোকার ভূমিকা রয়েছে৷ একজন প্রিন্সিপালকে দেওয়া ভূমিকা যাচাই করতে আপনি IAM কনসোল ব্যবহার করতে পারেন।

যদিও আপনার নিজস্ব পরিচয় টোকেন ব্যবহার করা আপনার ফাংশনটি বিকাশের সময় পরীক্ষা করার একটি দ্রুত উপায়, আপনার প্রমাণীকৃত ফাংশনের কলারের উপযুক্ত ভূমিকার প্রয়োজন হবে; অন্যথায়, কলকারী একটি 403 নিষিদ্ধ ত্রুটি পাবেন।

আপনি পরিচিতি এবং পরিষেবা অ্যাকাউন্টের সংখ্যা সীমিত করে ন্যূনতম বিশেষাধিকারের নীতি অনুসরণ করতে চাইবেন যেগুলি ফাংশনটি শুরু করতে ভূমিকা রাখে৷ পরবর্তী পরিস্থিতিতে, আপনি শিখবেন কীভাবে একটি নতুন পরিষেবা অ্যাকাউন্ট তৈরি করতে হয় এবং ফাংশনটি শুরু করার জন্য এটিকে উপযুক্ত ভূমিকা প্রদান করতে হয়।

5. দৃশ্যকল্প 2: একটি পরিষেবা অ্যাকাউন্টের ছদ্মবেশ ধারণ করুন

এই পরিস্থিতিতে, আপনি স্থানীয়ভাবে বিকাশ এবং পরীক্ষা করার সময় একটি ফাংশন চালু করার জন্য একটি পরিষেবা অ্যাকাউন্টের ছদ্মবেশ (অর্থাৎ অনুমতিগুলি অনুমান করুন) করবেন। একটি পরিষেবা অ্যাকাউন্টের ছদ্মবেশ ধারণ করে, আপনি উত্পাদনের মতো একই শংসাপত্রগুলি আপনার ফাংশন পরীক্ষা করতে পারেন৷

এটি করার মাধ্যমে, আপনি শুধুমাত্র ভূমিকা যাচাই করবেন না, তবে শুধুমাত্র স্থানীয় পরীক্ষার উদ্দেশ্যে অন্যান্য পরিচয়ে ক্লাউড ফাংশন ইনভোকার ভূমিকা না দিয়ে ন্যূনতম বিশেষাধিকারের নীতি অনুসরণ করবেন৷

এই কোডল্যাবের উদ্দেশ্যে, আপনি একটি নতুন পরিষেবা অ্যাকাউন্ট তৈরি করবেন যেটিতে শুধুমাত্র এই কোডল্যাবে আপনার তৈরি করা ফাংশনটি চালু করার ভূমিকা রয়েছে৷

একটি নতুন পরিষেবা অ্যাকাউন্ট তৈরি করুন

প্রথমে, আপনি gcloud কমান্ডগুলিতে ব্যবহৃত পরিষেবা অ্যাকাউন্টগুলির প্রতিনিধিত্ব করার জন্য কয়েকটি অতিরিক্ত পরিবেশের ভেরিয়েবল তৈরি করবেন।

SERVICE_ACCOUNT_NAME="invoke-functions-codelab"
SERVICE_ACCOUNT_ADDRESS=$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com

এর পরে, আপনি পরিষেবা অ্যাকাউন্ট তৈরি করবেন।

gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME \
  --display-name="Cloud Run function Authentication codelab"

এবং পরিষেবা অ্যাকাউন্ট ক্লাউড রান ইনভোকার ভূমিকা মঞ্জুর করুন:

gcloud run services add-iam-policy-binding $FUNCTION_NAME \
  --region=us-central1  \
  --member serviceAccount:$SERVICE_ACCOUNT_ADDRESS \
  --role='roles/run.invoker'

পরিষেবা অ্যাকাউন্টের ছদ্মবেশী করে ফাংশনটি চালু করুন

এর জন্য, আপনি আইডি টোকেন পেয়ে নতুন তৈরি পরিষেবা অ্যাকাউন্টের ছদ্মবেশ ধারণ করবেন।

ছদ্মবেশের জন্য প্রয়োজনীয় ভূমিকা যোগ করুন

একটি পরিষেবা অ্যাকাউন্টের ছদ্মবেশী করার জন্য, পরিষেবা অ্যাকাউন্টের জন্য একটি আইডি টোকেন তৈরি করতে আপনার ব্যবহারকারীর অ্যাকাউন্টে পরিষেবা অ্যাকাউন্ট টোকেন ক্রিয়েটর (roles/iam.serviceAccountTokenCreator) ভূমিকা থাকা দরকার৷

আপনার সক্রিয় ব্যবহারকারী অ্যাকাউন্টকে এই ভূমিকা প্রদান করতে আপনি নিম্নলিখিত কমান্ডগুলি চালাতে পারেন:

ACCOUNT_EMAIL=$(gcloud auth list --filter=status:ACTIVE --format="value(account)")

gcloud iam service-accounts add-iam-policy-binding $SERVICE_ACCOUNT_ADDRESS  \
  --member user:$ACCOUNT_EMAIL \
  --role='roles/iam.serviceAccountTokenCreator'

পরিষেবা অ্যাকাউন্টের আইডি টোকেন ব্যবহার করুন

প্রচারের অনুমতির জন্য কয়েক মিনিট অপেক্ষা করুন। এখন আপনি পরিষেবা অ্যাকাউন্টের আইডি টোকেন পাস করে ফাংশনটি শুরু করতে পারেন।

curl $FUNCTION_URL -H "Authorization: bearer $(gcloud auth print-identity-token --impersonate-service-account $SERVICE_ACCOUNT_ADDRESS)" 

এবং আপনি নিম্নলিখিত দেখতে পাবেন:

WARNING: This command is using service account impersonation. All API calls will be executed as [invoke-functions-codelab@<project-id>.iam.gserviceaccount.com].

Hello World!

6. দৃশ্যকল্প 3: Google ক্লায়েন্ট লাইব্রেরি ব্যবহার করুন

কোডল্যাবের এই শেষ অংশের জন্য, আপনি একটি পরিষেবা অ্যাকাউন্টের জন্য একটি আইডি টোকেন তৈরি করতে স্থানীয়ভাবে একটি ছোট পরিষেবা চালাবেন এবং তারপরে Google Auth ক্লায়েন্ট লাইব্রেরি এবং অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র (ADC) ব্যবহার করে প্রোগ্রাম্যাটিকভাবে ফাংশনটি কল করবেন৷ আপনি ডক্সের ক্লায়েন্ট লাইব্রেরি ব্যাখ্যা করা বিভাগে Google ক্লায়েন্ট লাইব্রেরি সম্পর্কে আরও পড়তে পারেন।

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

একটি পরিষেবা অ্যাকাউন্ট ছদ্মবেশী করতে gcloud কমান্ড চালান

ADC স্বয়ংক্রিয়ভাবে অ্যাপ্লিকেশন পরিবেশের উপর ভিত্তি করে শংসাপত্রগুলি খুঁজে পায় এবং Google ক্লাউড API-এ প্রমাণীকরণ করতে সেই শংসাপত্রগুলি ব্যবহার করে৷ ছদ্মবেশী-পরিষেবা-অ্যাকাউন্ট পতাকা আপনাকে Google ক্লাউড API-এর বিরুদ্ধে প্রমাণীকরণের জন্য একটি পরিষেবা অ্যাকাউন্টের পরিচয় ব্যবহার করে ছদ্মবেশ ধারণ করতে দেয়।

একটি পরিষেবা অ্যাকাউন্টের ছদ্মবেশী করতে, আপনি নিম্নলিখিত কমান্ডটি চালাতে পারেন:

gcloud auth application-default login --impersonate-service-account=$SERVICE_ACCOUNT_ADDRESS

এখন আপনি আপনার পরিচয়ের পরিবর্তে সেই পরিষেবা অ্যাকাউন্ট হিসাবে gcloud কমান্ড চালাচ্ছেন।

একটি প্রমাণীকৃত ফাংশন আহ্বান করতে একটি পরিষেবা তৈরি করুন এবং চালান৷

প্রতিটি রানটাইমের নিজস্ব Google Auth ক্লায়েন্ট লাইব্রেরি থাকে যা আপনি ইনস্টল করতে পারেন। এই কোডল্যাব আপনাকে স্থানীয়ভাবে একটি Node.js অ্যাপ তৈরি এবং চালানোর মাধ্যমে নিয়ে যায়।

এখানে Node.js এর জন্য ধাপগুলি রয়েছে:

  1. একটি নতুন ডিরেক্টরি তৈরি করুন
mkdir local-dev && cd $_
  1. একটি নতুন Node.js অ্যাপ তৈরি করুন
npm init -y
  1. Google Auth ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন
npm install google-auth-library
  1. একটি index.js ফাইল তৈরি করুন
  2. আপনার ক্লাউড রান ফাংশনের URL পুনরুদ্ধার করুন, যা আপনি নিম্নলিখিত ধাপে আপনার কোডে যোগ করবেন।
echo $FUNCTION_URL
  1. index.js এ নিম্নলিখিত কোড যোগ করুন। আপনার ক্লাউড রান ফাংশন URL-এ targetAudience ভেরিয়েবল পরিবর্তন করা নিশ্চিত করুন।

index.js

// Cloud Functions uses your function's url as the `targetAudience` value

const targetAudience = '<YOUR-CLOUD-RUN-FUNCTION-URL>';

// For Cloud Functions, endpoint(`url`) and `targetAudience` should be equal

const url = targetAudience;

const { GoogleAuth } = require('google-auth-library');
const auth = new GoogleAuth();

async function request() {
    console.info(`request ${url} with target audience ${targetAudience}`);

    // this call retrieves the ID token for the impersonated service account
    const client = await auth.getIdTokenClient(targetAudience);

    const res = await client.request({ url });
    console.info(res.data);
}

request().catch(err => {
    console.error(err.message);
    process.exitCode = 1;
});
  1. অ্যাপটি চালান
node index.js

এবং আপনি ফলাফল দেখতে হবে "হ্যালো ওয়ার্ল্ড!"

সমস্যা সমাধান

আপনি যদি দেখেন একটি ত্রুটি অনুমতি 'iam.serviceAccounts.getOpenIdToken' রিসোর্সে অস্বীকার করা হয়েছে (অথবা এটি বিদ্যমান নাও থাকতে পারে), দয়া করে পরিষেবা অ্যাকাউন্ট টোকেন নির্মাতা ভূমিকা প্রচারের জন্য কয়েক মিনিট অপেক্ষা করুন।

আপনি যদি এই পরিবেশে আইডি টোকেন আনতে পারবেন না এই ত্রুটিটি পেয়ে থাকেন, তাহলে GCE ব্যবহার করুন বা GOOGLE_APPLICATION_CREDENTIALS এনভায়রনমেন্ট ভেরিয়েবলটিকে একটি পরিষেবা অ্যাকাউন্টের শংসাপত্র JSON ফাইলে সেট করুন, আপনি হয়ত কমান্ডটি চালাতে ভুলে গেছেন

gcloud auth application-default login --impersonate-service-account=$SERVICE_ACCOUNT_ADDRESS

7. অভিনন্দন!

কোডল্যাব সম্পূর্ণ করার জন্য অভিনন্দন!

ক্লাউড রান ফাংশনগুলি কীভাবে সুরক্ষিত করা যায় সে সম্পর্কে আমরা ডকুমেন্টেশন পর্যালোচনা করার পরামর্শ দিই।

আপনার স্থানীয় বিকাশকারী পরিবেশে কীভাবে আপনার ক্লাউড রান ফাংশন বিকাশ এবং পরীক্ষা করতে হয় তা শিখতে আমরা ক্লাউড রান ফাংশন সহ স্থানীয় বিকাশের এই ব্লগ পোস্টটিও সুপারিশ করি৷

আমরা কভার করেছি কি

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

8. পরিষ্কার করুন

অসাবধানতাবশত চার্জ এড়াতে, (উদাহরণস্বরূপ এই ক্লাউড ফাংশনটি আপনার মাসিক ক্লাউড রান ফাংশন ইনভোকমেন্ট বরাদ্দের চেয়ে অজান্তেই মুক্ত স্তরে বেশি বার আহ্বান করা হয়েছে), আপনি হয় ক্লাউড ফাংশনটি মুছে ফেলতে পারেন বা ধাপ 2 এ আপনার তৈরি করা প্রকল্পটি মুছে ফেলতে পারেন।

পরিষেবা অ্যাকাউন্টের ছদ্মবেশ বন্ধ করতে, আপনি আপনার পরিচয় ব্যবহার করে পুনরায় লগইন করতে পারেন:

gcloud auth application-default login

ক্লাউড রান ফাংশনটি মুছে ফেলতে, https://console.cloud.google.com/functions/- এ ক্লাউড রান ফাংশন ক্লাউড কনসোলে যান নিশ্চিত করুন যে ধাপ 2 এ আপনি যে প্রকল্পটি তৈরি করেছেন সেটি বর্তমানে নির্বাচিত প্রকল্প।

আপনি আগে স্থাপন করা আমার-প্রমাণিত-ফাংশন নির্বাচন করুন। তারপর Delete চাপুন।

আপনি যদি সম্পূর্ণ প্রকল্প মুছে ফেলার সিদ্ধান্ত নেন, আপনি https://console.cloud.google.com/cloud-resource-manager- এ যেতে পারেন, ধাপ 2-এ আপনার তৈরি করা প্রকল্পটি নির্বাচন করুন এবং মুছুন নির্বাচন করুন৷ আপনি যদি প্রকল্পটি মুছে ফেলেন, তাহলে আপনাকে আপনার ক্লাউড SDK-এ প্রকল্পগুলি পরিবর্তন করতে হবে৷ আপনি gcloud projects list চালিয়ে সমস্ত উপলব্ধ প্রকল্পের তালিকা দেখতে পারেন।