extension.yaml এর জন্য রেফারেন্স

আপনার এক্সটেনশনের স্পেসিফিকেশন ফাইল ( extension.yaml ) আপনার এক্সটেনশনের মেটাডেটা ধারণ করে, এক্সটেনশন দ্বারা তৈরি রিসোর্স এবং API এবং এক্সটেনশনের জন্য প্রয়োজনীয় অ্যাক্সেস ঘোষণা করে এবং এক্সটেনশন দ্বারা প্রদত্ত যেকোনো ব্যবহারকারী-কনফিগার করা প্যারামিটার সংজ্ঞায়িত করে।

এই পৃষ্ঠার টেবিলগুলি একটি extension.yaml ফাইলের জন্য উপলব্ধ ক্ষেত্রগুলি বর্ণনা করে।

মৌলিক এবং শনাক্তকারী তথ্য

name: your-extension-name
version: 1.0.0         # Semantic versioning (semver)
specVersion: v1beta    # Always "v1beta"
license: Apache-2.0    # Always "Apache-2.0" (required to publish on extensions.dev)
billingRequired: true  # Always "true"

displayName: Your extension name
description: >-
  Description of the extension. (One or two
  sentences.)
icon: icon.png
tags: [tag, anothertag]

sourceUrl: https://github.com/your-org/your-repo   # GitHub repo URL
releaseNotesUrl: https://github.com/your-org/your-repo/blob/main/CHANGELOG.md

author:
  authorName: Your Company
  email: extensions@example.com
  url: https://example.com/
contributors:
  - authorName: Your Name
  - authorName: Another Contributor
    email: colleague@example.net
    url: https://github.com/their-org/
মৌলিক ক্ষেত্র
name
স্ট্রিং
(প্রয়োজনীয়)

এক্সটেনশনের জন্য শনাক্তকারী।

শুধুমাত্র ছোট হাতের অক্ষর, সংখ্যা এবং ড্যাশ থাকতে পারে; ৪০ অক্ষরের সীমা।

দ্রষ্টব্য: এই মানটি এক্সটেনশনের ইনস্ট্যান্স আইডি তৈরি করতে ব্যবহৃত হয় (যা পরে এক্সটেনশনের পরিষেবা অ্যাকাউন্ট এবং এক্সটেনশন-নির্দিষ্ট সংস্থানগুলির নাম তৈরি করতে ব্যবহৃত হয়)।

version
স্ট্রিং
(প্রয়োজনীয়)

এক্সটেনশনের সংস্করণ।

সেমভার ভার্সনিং অনুসরণ করতে হবে (উদাহরণস্বরূপ, 1.2.0)।

specVersion
স্ট্রিং
(প্রয়োজনীয়)

ফায়ারবেস এক্সটেনশন স্পেসিফিকেশনের সংস্করণ।

বর্তমান মান: v1beta

license
স্ট্রিং
(ঐচ্ছিক)

এক্সটেনশনের জন্য লাইসেন্স।

আপনার এক্সটেনশনটি Apache-2.0 ব্যবহার করে লাইসেন্সপ্রাপ্ত হতে হবে।

billingRequired
বুলিয়ান
(ঐচ্ছিক)

এক্সটেনশন দ্বারা ব্যবহৃত পরিষেবাগুলির জন্য একটি পেইড-টায়ার ফায়ারবেস বিলিং অ্যাকাউন্টের প্রয়োজন কিনা।

সর্বদা true তে সেট করুন।

displayName
স্ট্রিং
(ঐচ্ছিক)

এক্সটেনশনটির জন্য বন্ধুত্বপূর্ণ প্রদর্শন নাম (৩-৫ শব্দ)।

৪০ অক্ষরের সীমা।

description
স্ট্রিং
(ঐচ্ছিক)
আপনার এক্সটেনশন যে কাজটি সম্পাদন করে তার সংক্ষিপ্ত বিবরণ (~১ বাক্য)।
icon
স্ট্রিং
(ঐচ্ছিক)

extensions.dev এবং Firebase কনসোলে আপনার এক্সটেনশনের আইকন হিসেবে ব্যবহার করার জন্য ফাইল।

এই ফাইলটি অবশ্যই 512x512 এবং 1024x1024 পিক্সেলের মধ্যে একটি বর্গাকার PNG হতে হবে। ফাইলটি extension.yaml এর মতো একই ডিরেক্টরিতে রাখুন; আপনি একটি সাবডিরেক্টরি নির্দিষ্ট করতে পারবেন না।

আপনার এক্সটেনশনের জন্য আইকন ডিজাইন করার সময় নিম্নলিখিত নির্দেশিকাগুলি মনে রাখবেন:

  • আপনার ব্র্যান্ডের জন্য উপযুক্ত ব্যাকগ্রাউন্ড এবং আর্টওয়ার্ক রঙ নির্বাচন করুন।
  • আপনার আইকনের রঙগুলি সহজ রাখুন, মাত্র দুটি রঙ ব্যবহার করুন। একাধিক রঙ আপনার আইকনটিকে দৃশ্যত অপ্রতিরোধ্য করে তুলতে পারে।
  • একই কারণে, আপনার আইকনে গ্রেডিয়েন্ট ব্যবহার করবেন না। ছোট আকারে গ্রেডিয়েন্টগুলি সনাক্ত করা কঠিন এবং আইকনটিকে দৃশ্যত জটিল করে তোলে।
  • আপনার এক্সটেনশনের কার্যকারিতা প্রকাশ করে এমন সহজ, অনন্য চিত্র ব্যবহার করুন।
  • যদি আপনার কোম্পানি একাধিক এক্সটেনশন তৈরি করে, তাহলে আপনার লোগোটিকে আইকন হিসেবে ব্যবহার করবেন না। ব্যবহারকারীদের আপনার এক্সটেনশনগুলির মধ্যে পার্থক্য করতে অসুবিধা হবে।
  • শিল্পকর্মটি গ্রাফিক এবং সাহসী করুন। সূক্ষ্ম বা বিস্তৃত শিল্পকর্ম ব্যবহার করবেন না, যা ছোট আকারে ভালোভাবে রেন্ডার হবে না।
  • আপনার এক্সটেনশন কী করে তা ব্যাখ্যা করে এমন শব্দ অন্তর্ভুক্ত করবেন না। ছোট আকারে টেক্সট প্রায়শই অস্পষ্ট থাকে।
tags
স্ট্রিং এর তালিকা
(ঐচ্ছিক)
ব্যবহারকারীদের আপনার এক্সটেনশন আবিষ্কার করতে সাহায্য করার জন্য ট্যাগ। নিম্নলিখিত ট্যাগগুলি এক্সটেনশন হাবের বিভাগগুলিতে ম্যাপ করে: marketing , messaging , payments , search , shipping , social , utilities , ai
sourceUrl
স্ট্রিং
(ঐচ্ছিক)
পাবলিক URL যেখানে এক্সটেনশন ডিরেক্টরি অ্যাক্সেস করা যেতে পারে।
releaseNotesUrl
স্ট্রিং
(ঐচ্ছিক)
পাবলিক URL যেখানে এক্সটেনশনের রিলিজ নোট অ্যাক্সেস করা যেতে পারে।
author
একটি লেখকের বস্তু
(ঐচ্ছিক)

এক্সটেনশনের জন্য প্রাথমিক লেখক এবং যোগাযোগের ব্যক্তি।

author:
  authorName: Your Company
  email: extensions@example.com
  url: https://example.com/
লেখক ক্ষেত্র
authorName
স্ট্রিং
(প্রয়োজনীয়)

লেখকের নাম।

হতে পারে একজন ব্যক্তি, কোম্পানি, প্রতিষ্ঠান ইত্যাদি।

email
স্ট্রিং
(ঐচ্ছিক)
লেখকের ইমেল ঠিকানা।
url
স্ট্রিং
(ঐচ্ছিক)
পাবলিক URL যেখানে লেখক সম্পর্কে তথ্য অ্যাক্সেস করা যেতে পারে।
contributors
লেখকের বস্তুর তালিকা
(ঐচ্ছিক)

এক্সটেনশনের জন্য কোনও অতিরিক্ত অবদানকারী লেখক।

contributors:
  - authorName: Your Name
  - authorName: Another Contributor
    email: colleague@example.net
    url: https://github.com/their-org/
লেখক ক্ষেত্র
authorName
স্ট্রিং
(প্রয়োজনীয়)

লেখকের নাম।

হতে পারে একজন ব্যক্তি, কোম্পানি, প্রতিষ্ঠান ইত্যাদি।

email
স্ট্রিং
(ঐচ্ছিক)
লেখকের ইমেল ঠিকানা।
url
স্ট্রিং
(ঐচ্ছিক)
পাবলিক URL যেখানে লেখক সম্পর্কে তথ্য অ্যাক্সেস করা যেতে পারে।

ফায়ারবেস এবং গুগল ক্লাউড এপিআই

এই ক্ষেত্রগুলি এক্সটেনশনটি ব্যবহার করে এমন Firebase এবং Google API গুলি নির্দিষ্ট করে। ব্যবহারকারীরা যখন এক্সটেনশনটি ইনস্টল করেন, তখন তারা তাদের প্রকল্পে এই API গুলি স্বয়ংক্রিয়ভাবে সক্ষম করতে পারেন।

apis:
  - apiName: apiname.googleapis.com
    reason: Explanation of why the extension uses this API
  - apiName: anotherapiname.googleapis.com
    reason: Explanation of why the extension uses this API
API ক্ষেত্রগুলি
apiName
স্ট্রিং
(প্রয়োজনীয়)

গুগল এপিআই এর নাম

গুগল ক্লাউড এপিআই লাইব্রেরিতে প্রতিটি এপিআই-এর ওভারভিউ পৃষ্ঠায় ( উদাহরণস্বরূপ ) তালিকাভুক্ত পরিষেবার নাম ক্ষেত্রের সাথে সঙ্গতিপূর্ণ হতে হবে।

reason
স্ট্রিং
(প্রয়োজনীয়)
এক্সটেনশনটির কেন এই API ব্যবহার করা প্রয়োজন তার সংক্ষিপ্ত বিবরণ

আইএএম ভূমিকা

এই ক্ষেত্রগুলি এক্সটেনশনটির জন্য প্রয়োজনীয় ক্লাউড IAM ভূমিকাগুলি নির্দিষ্ট করে। এক্সটেনশনের জন্য প্রভিশন করা পরিষেবা অ্যাকাউন্টটি এই ভূমিকাগুলি মঞ্জুর করে।

আপনি শুধুমাত্র সমর্থিত ভূমিকাগুলির মধ্যে একটি নির্দিষ্ট করতে পারেন।

roles:
  - role: product.role
    reason: Explanation of why the extension needs this level of access
  - role: anotherproduct.role
    resource: projects/${project_id}/resource_type/*
    reason: Explanation of why the extension needs this level of access
ভূমিকা ক্ষেত্র
role
স্ট্রিং
(প্রয়োজনীয়)

এক্সটেনশনটি পরিচালনা করার জন্য প্রয়োজনীয় IAM ভূমিকার নাম

সমর্থিত ভূমিকাগুলির মধ্যে একটি হতে হবে

reason
স্ট্রিং
(প্রয়োজনীয়)
এই ভূমিকার মাধ্যমে এক্সটেনশনটির কেন অ্যাক্সেস প্রয়োজন তার সংক্ষিপ্ত বিবরণ
resource
স্ট্রিং
(ঐচ্ছিক)

এই সম্পদের মধ্যে ভূমিকার পরিধি সীমাবদ্ধ রাখুন।

বাদ দেওয়া হলে, ডিফল্টভাবে projects/${project_id} হয়। ভূমিকার সুযোগ হ্রাস করুন দেখুন।

বহিরাগত পরিষেবা

এই ক্ষেত্রগুলি এক্সটেনশনটি যে নন-ফায়ারবেস এবং নন-গুগল পরিষেবাগুলি ব্যবহার করে (সাধারণত REST API) তা নির্দিষ্ট করে। ফায়ারবেস এক্সটেনশন প্ল্যাটফর্ম এই পরিষেবাগুলির জন্য স্বয়ংক্রিয়ভাবে সক্ষম বা অনুমোদন সম্পাদনের কোনও উপায় প্রদান করে না।

externalServices:
  - name: Example API
    pricingUri: https://developers.example.com/pricing
  - name: Another Example API
    pricingUri: https://developers.example.com/pricing
বহিরাগত পরিষেবা ক্ষেত্র
name
স্ট্রিং
(প্রয়োজনীয়)
এক্সটেনশনটি পরিচালনা করার জন্য প্রয়োজনীয় বহিরাগত পরিষেবার নাম
pricingUri
স্ট্রিং
(প্রয়োজনীয়)
পরিষেবার মূল্য নির্ধারণের তথ্যের URI

ব্যবহারকারী-কনফিগারযোগ্য পরামিতি

এই ক্ষেত্রগুলি ব্যবহারকারীদের কনফিগার করার জন্য এক্সটেনশনটি যে প্যারামিটারগুলি উপলব্ধ করে তা সংজ্ঞায়িত করে।

params:
  - param: PARAM_ID
    label: Short description of the parameter
    description: >-
      What do you want to set PARAM_ID to?
      This is a longer description of the parameter, often phrased as a prompt
      to the user.
  - param: ANOTHER_PARAM_ID
    label: Short description of the parameter
    description: >
      What do you want to set ANOTHER_PARAM_ID to?
      This is a longer description of the parameter.
    example: example-input
    validationRegex: "^[a-zA-Z][a-zA-Z-]*[a-zA-Z]?$"
    validationErrorMessage:
      Must be a hyphen-delimited string of alphabetic characters
    default: default-value
    required: false
    immutable: true
প্যারামিটার ক্ষেত্র
param
স্ট্রিং
(প্রয়োজনীয়)
প্যারামিটারের নাম। কোডে প্যারামিটারের মান উল্লেখ করার জন্য আপনি এই নামটি ব্যবহার করেন।
label
স্ট্রিং
(প্রয়োজনীয়)
প্যারামিটারের সংক্ষিপ্ত বিবরণ। ব্যবহারকারীকে প্যারামিটারের মান জিজ্ঞাসা করা হলে তা প্রদর্শিত হয়।
description
স্ট্রিং
(ঐচ্ছিক)

প্যারামিটারের বিস্তারিত বিবরণ। ব্যবহারকারীকে প্যারামিটারের মান জিজ্ঞাসা করা হলে তা প্রদর্শিত হয়।

মার্কডাউন সমর্থন করে।

example
স্ট্রিং
(ঐচ্ছিক)
প্যারামিটারের উদাহরণ মান।
default
স্ট্রিং
(ঐচ্ছিক)
ব্যবহারকারী যদি প্যারামিটারের মান খালি রাখে, তাহলে প্যারামিটারের ডিফল্ট মান।
validationRegex
স্ট্রিং
(ঐচ্ছিক)
প্যারামিটারের ব্যবহারকারী-কনফিগার করা মানের বৈধতার জন্য নিয়মিত অভিব্যক্তি। Google RE2 সিনট্যাক্স
validationErrorMessage
স্ট্রিং
(ঐচ্ছিক)
রেজেক্স যাচাইকরণ ব্যর্থ হলে ত্রুটি বার্তা প্রদর্শন করা হবে।
required
বুলিয়ান
(ঐচ্ছিক)
ব্যবহারকারীকে প্যারামিটারের মান জিজ্ঞাসা করা হলে তারা একটি খালি স্ট্রিং জমা দিতে পারবে কিনা তা নির্ধারণ করে। ডিফল্টভাবে true থাকে।
immutable
বুলিয়ান
(ঐচ্ছিক)

ইনস্টলেশনের পরে ব্যবহারকারী প্যারামিটারের মান পরিবর্তন করতে পারবে কিনা তা নির্ধারণ করে (যেমন যদি তারা এক্সটেনশনটি পুনরায় কনফিগার করে)। ডিফল্টভাবে false থাকে।

দ্রষ্টব্য: যদি আপনি আপনার এক্সটেনশনের ডিপ্লয় করা ফাংশনের জন্য একটি "location" প্যারামিটার সংজ্ঞায়িত করেন, তাহলে এই ক্ষেত্রটিকে true তে সেট করুন।

type
স্ট্রিং
(ঐচ্ছিক)
প্যারামিটারের ধরণ। বিশেষ প্যারামিটারের ধরণগুলির অতিরিক্ত প্রয়োজনীয়তা বা ভিন্ন UI উপস্থাপনা থাকতে পারে। নিম্নলিখিত বিভাগগুলি দেখুন।

নির্বাচনযোগ্য এবং বহু-নির্বাচনযোগ্য পরামিতি

নির্বাচনযোগ্য এবং বহু-নির্বাচনযোগ্য পরামিতি ব্যবহারকারীদের পূর্বনির্ধারিত বিকল্পগুলির তালিকা থেকে নির্বাচন করতে প্ররোচিত করে।

params:
  - param: PARAM_ID
    label: Short description of the parameter
    description: >-
      Do you want to enable the option?
    type: select
    options:
      - label: Yes
        value: true
      - label: No
        value: false
  - param: ANOTHER_PARAM_ID
    label: Short description of the parameter
    description: >-
      Which options do you want to enable?
    type: multiSelect
    options:
      - value: red
      - value: green
      - value: blue
বহুনির্বাচনী প্যারামিটার ক্ষেত্র
type
স্ট্রিং

select অথবা multiSelect

নির্দিষ্ট করে যে প্যারামিটারটি পূর্বনির্ধারিত পছন্দের একটি সেট থেকে নির্বাচিত একটি মান ( select ) অথবা একাধিক মান ( multiSelect ) হতে পারে।

options
বিকল্পগুলির তালিকা
(প্রয়োজনীয়)

ব্যবহারকারী যে বিকল্পগুলি থেকে বেছে নিতে পারেন

বিকল্প ক্ষেত্র
value
স্ট্রিং
(প্রয়োজনীয়)
ব্যবহারকারী যে মানগুলি বেছে নিতে পারেন তার মধ্যে একটি। কোডে প্যারামিটার মান পড়লে আপনি এই মানটি পাবেন।
label
স্ট্রিং
(ঐচ্ছিক)
নির্বাচনযোগ্য বিকল্পের সংক্ষিপ্ত বিবরণ। বাদ দিলে, ডিফল্ট value

নির্বাচনযোগ্য রিসোর্স প্যারামিটার

নির্বাচনযোগ্য রিসোর্স প্যারামিটার ব্যবহারকারীদের তাদের প্রকল্প থেকে একটি রিসোর্স (ডাটাবেস ইনস্ট্যান্স, স্টোরেজ বাকেট, ইত্যাদি) নির্বাচন করতে অনুরোধ করে।

params:
  - param: PARAM_ID
    label: Short description of the parameter
    description: >-
      Which resource do you want to use?
    type: selectresource
    resourceType: product.googleapis.com/ResourceType
রিসোর্স প্যারামিটার ক্ষেত্র
type
স্ট্রিং

selectresource

নির্দিষ্ট করে যে প্যারামিটারটি একটি প্রকল্প সম্পদের প্রতিনিধিত্ব করে।

resourceType
স্ট্রিং
(প্রয়োজনীয়)

ব্যবহারকারীকে যে ধরণের রিসোর্স নির্বাচন করতে বলা হবে।

বৈধ মান:

  • storage.googleapis.com/Bucket
  • firestore.googleapis.com/Database
  • firebasedatabase.googleapis.com/DatabaseInstance

তবে, বর্তমানে শুধুমাত্র ক্লাউড স্টোরেজ বাকেটগুলিতে একটি নির্বাচন UI রয়েছে (অন্যান্য রিসোর্সের ধরণগুলি ফ্রি-ফর্ম টেক্সট ইনপুট ক্ষেত্র হিসাবে উপস্থাপিত হয়)।

গোপন পরামিতি

ব্যবহারকারীর দ্বারা প্রদত্ত গোপন মান (যেমন API কী) ভিন্নভাবে পরিচালনা করা হয়:

  • গোপন মানগুলি ক্লাউড সিক্রেট ম্যানেজার ব্যবহার করে সংরক্ষণ করা হয়। কেবলমাত্র অনুমোদিত ক্লায়েন্টরা (যেমন কোনও এক্সটেনশনের ইনস্টল করা উদাহরণ) এই মানগুলি অ্যাক্সেস করতে পারে।
  • যখন ব্যবহারকারীদের এই মানগুলি প্রদান করতে বলা হয়, তখন তাদের ইনপুট প্রদর্শিত হয় না।
params:
  - param: PARAM_ID
    label: Short description of the parameter
    description: >-
      What is the secret value?
    type: secret
গোপন প্যারামিটার ক্ষেত্র
type
স্ট্রিং

secret

প্যারামিটারটি একটি গোপন মান তা নির্দিষ্ট করে।

ক্লাউড ফাংশন রিসোর্স

এই ক্ষেত্রগুলি একটি এক্সটেনশনে অন্তর্ভুক্ত ক্লাউড ফাংশনগুলি ঘোষণা করে। রিসোর্স ঘোষণার সিনট্যাক্সটি 1st-gen এবং 2nd-gen ফাংশনগুলির মধ্যে একটু আলাদা দেখায়, যা একটি এক্সটেনশনে সহাবস্থান করতে পারে।

প্রথম প্রজন্মের ক্লাউড ফাংশন

resources:
  - name: functionName
    type: firebaseextensions.v1beta.function
    description: >-
      Description of what the function does. (One or two
      sentences.)
    properties:
      runtime: runtime-version
      eventTrigger:
        eventType: google.product.event
        resource: projects/_/resource/specifier
রিসোর্স ক্ষেত্র
name
স্ট্রিং
(প্রয়োজনীয়)

এক্সপোর্ট করা ফাংশনের জন্য ব্যবহারকারী-বান্ধব নাম।

যদি আপনি entryPoint বৈশিষ্ট্যটি নির্দিষ্ট না করেন (নীচে দেখুন), তাহলে এই মানটি অবশ্যই আপনার ফাংশন সোর্স কোডে ফাংশনের নামের সাথে মিলবে।

স্থাপন করা ফাংশনের চূড়ান্ত নাম নিম্নলিখিত বিন্যাসে হবে: ext- extension-instance-id - name

type
স্ট্রিং
(প্রয়োজনীয়)
প্রথম প্রজন্মের ফাংশন রিসোর্সের জন্য: firebaseextensions.v1beta.function
description
স্ট্রিং
(প্রয়োজনীয়)

এক্সটেনশনের জন্য ফাংশনটি কী কাজ সম্পাদন করে তার সংক্ষিপ্ত বিবরণ।

properties
(প্রয়োজনীয়)

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

বৈশিষ্ট্য
location
(ঐচ্ছিক)

ফাংশনটি কোন স্থানে স্থাপন করতে হবে। ডিফল্ট হিসেবে us-central1

entryPoint
(ঐচ্ছিক)
আপনার ফাংশন সোর্স কোডের মধ্যে এক্সপোর্ট করা ফাংশনের নাম যা এক্সটেনশনটি খুঁজবে। উপরে name এর মান অনুসারে ডিফল্ট।
sourceDirectory
(ঐচ্ছিক)

যে ডিরেক্টরির মূলে আপনার package.json আছে। আপনার ফাংশনের সোর্স কোডের ফাইলটি অবশ্যই এই ডিরেক্টরিতে থাকতে হবে। ডিফল্ট হিসেবে functions ব্যবহার করা হয়

দ্রষ্টব্য: package.json এর main ক্ষেত্রটি আপনার ফাংশনের সোর্স কোডের ফাইলটি নির্দিষ্ট করে (যেমন index.js )।

timeout
(ঐচ্ছিক)

ফাংশনটির সর্বোচ্চ কার্যকর করার সময়।

  • ডিফল্ট: 60s
  • সর্বোচ্চ মান: 540s
availableMemoryMb
(ঐচ্ছিক)

ফাংশনের জন্য উপলব্ধ মেমোরির পরিমাণ মেগাবাইট।

  • ডিফল্ট: 256
  • বৈধ মান: 128 , 256 , 512 , 1024 , এবং 2048
runtime
(প্রস্তাবিত)

ফাংশনের জন্য রানটাইম পরিবেশ।

httpsTrigger
অথবা
eventTrigger
অথবা
scheduleTrigger
অথবা
taskQueueTrigger
(এই ফাংশন ট্রিগার প্রকারগুলির মধ্যে একটি প্রয়োজন)
প্রতিটি ট্রিগার টাইপ সম্পর্কে নির্দিষ্ট তথ্যের জন্য একটি এক্সটেনশনের জন্য Write Cloud Functions দেখুন।

দ্বিতীয় প্রজন্মের ক্লাউড ফাংশন

resources:
  - name: functionName
    type: firebaseextensions.v1beta.v2function
    description: >-
      Description of what the function does. (One or two
      sentences.)
    properties:
      buildConfig:
        runtime: nodejs16
      serviceConfig:
        availableMemory: 512M
      eventTrigger:
        eventType: google.firebase.firebasealerts.alerts.v1.published
        triggerRegion: global
        eventFilters:
          - attribute: alerttype
            value: crashlytics.newFatalIssue

রিসোর্স ক্ষেত্র
name
স্ট্রিং
(প্রয়োজনীয়)

এক্সপোর্ট করা ফাংশনের জন্য ব্যবহারকারী-বান্ধব নাম।

যদি আপনি entryPoint বৈশিষ্ট্যটি নির্দিষ্ট না করেন (নীচে দেখুন), তাহলে এই মানটি অবশ্যই আপনার ফাংশন সোর্স কোডে ফাংশনের নামের সাথে মিলবে।

স্থাপন করা ফাংশনের চূড়ান্ত নাম নিম্নলিখিত বিন্যাসে হবে: ext- extension-instance-id - name

type
স্ট্রিং
(প্রয়োজনীয়)
দ্বিতীয় প্রজন্মের ফাংশন রিসোর্সের জন্য: firebaseextensions.v1beta.v2function
description
স্ট্রিং
(প্রয়োজনীয়)

এক্সটেনশনের জন্য ফাংশনটি কী কাজ সম্পাদন করে তার সংক্ষিপ্ত বিবরণ।

properties
(প্রয়োজনীয়)

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

বৈশিষ্ট্য
location
(ঐচ্ছিক)

ফাংশনটি কোন স্থানে স্থাপন করতে হবে। ডিফল্ট হিসেবে us-central1

sourceDirectory
(ঐচ্ছিক)

যে ডিরেক্টরির মূলে আপনার package.json আছে। আপনার ফাংশনের সোর্স কোডের ফাইলটি অবশ্যই এই ডিরেক্টরিতে থাকতে হবে। ডিফল্ট হিসেবে functions ব্যবহার করা হয়

দ্রষ্টব্য: package.json এর main ক্ষেত্রটি আপনার ফাংশনের সোর্স কোডের ফাইলটি নির্দিষ্ট করে (যেমন index.js )।

এছাড়াও তিনটি অবজেক্ট-টাইপ ক্ষেত্র রয়েছে যার নিজস্ব বৈশিষ্ট্য রয়েছে:

বিল্ডকনফিগ বৈশিষ্ট্য
buildConfig.runtime
(প্রস্তাবিত)

ফাংশনের জন্য রানটাইম পরিবেশ।

buildConfig.entryPoint
(ঐচ্ছিক)
আপনার ফাংশন সোর্স কোডের মধ্যে এক্সপোর্ট করা ফাংশনের নাম যা এক্সটেনশনটি খুঁজবে। উপরে name এর মান অনুসারে ডিফল্ট।
serviceConfig বৈশিষ্ট্য
serviceConfig.timeoutSeconds
(ঐচ্ছিক)

ফাংশনটির সর্বোচ্চ কার্যকর করার সময়।

  • ডিফল্ট: 60
  • সর্বোচ্চ মান: 540
serviceConfig.availableMemory
(ঐচ্ছিক)
একটি ফাংশনের জন্য উপলব্ধ মেমোরির পরিমাণ। ডিফল্ট হিসেবে 256M থাকে। সমর্থিত ইউনিটগুলি হল k , M , G , Mi , Gi । যদি কোনও ইউনিট সরবরাহ না করা হয়, তাহলে মানটি বাইট হিসাবে ব্যাখ্যা করা হয়।
ইভেন্টট্রিগার বৈশিষ্ট্য
eventTrigger.eventType
(প্রয়োজনীয়)
কোন ধরণের ইভেন্ট শুনতে হবে। প্রতিটি পণ্যের জন্য উপলব্ধ ইভেন্টের ধরণের এক্সটেনশনের জন্য Write Cloud Functions দেখুন।
eventTrigger.eventFilters
(ঐচ্ছিক)
যেসব ফিল্টার ইভেন্ট শোনার জন্য আরও সীমাবদ্ধ করে। উদাহরণস্বরূপ, আপনি শুধুমাত্র একটি নির্দিষ্ট রিসোর্স প্যাটার্নের সাথে মিলে যাওয়া ইভেন্টগুলি শুনতে পারবেন। প্রতিটি ধরণের ইভেন্ট ফিল্টার করার তথ্যের জন্য একটি এক্সটেনশনের জন্য Write Cloud Functions দেখুন।
eventTrigger.channel
(ঐচ্ছিক)
projects/{project}/locations/{location}/channels/{channel} ফর্ম্যাটে ট্রিগারের সাথে যুক্ত চ্যানেলের নাম। যদি আপনি এই বৈশিষ্ট্যটি বাদ দেন, তাহলে ফাংশনটি প্রকল্পের ডিফল্ট চ্যানেলে ইভেন্টগুলি শুনবে।
eventTrigger.triggerRegion
(ঐচ্ছিক)
ট্রিগারটি শুধুমাত্র এই অঞ্চলে উৎপন্ন ইভেন্টগুলি গ্রহণ করবে। এটি ফাংশনের একই অঞ্চল, ভিন্ন অঞ্চল বা বহু-অঞ্চল, অথবা বিশ্বব্যাপী অঞ্চল হতে পারে। যদি সরবরাহ না করা হয়, তাহলে ফাংশনের একই অঞ্চলে ডিফল্টভাবে সেট করা হবে।

জীবনচক্রের ইভেন্ট

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

lifecycleEvents:
  onInstall:
    function: myTaskFunction
    processingMessage: Describes the task being completed
  onUpdate:
    function: myOtherTaskFunction
    processingMessage: Describes the task being completed
  onConfigure:
    function: myOtherTaskFunction
    processingMessage: Describes the task being completed
জীবনচক্র ইভেন্ট ক্ষেত্র
onInstall
(ঐচ্ছিক)

ব্যবহারকারী যখন এক্সটেনশনটি ইনস্টল করে তখন এমন একটি ফাংশন নির্দিষ্ট করে যা চলে।

ফাংশন স্পেসিফিকেশন
function
স্ট্রিং
(প্রয়োজনীয়)

ইভেন্টটি পরিচালনা করবে এমন টাস্ক কিউ-ট্রিগার করা ফাংশনের নাম।

এই ফাংশনটি অবশ্যই resources বিভাগে ঘোষণা করতে হবে এবং থাকতে হবে টাস্ককিউ সংজ্ঞায়িত।

processingMessage
স্ট্রিং
(প্রয়োজনীয়)
কাজটি চলাকালীন Firebase কনসোলে প্রদর্শিত বার্তা।
onUpdate
(ঐচ্ছিক)

ব্যবহারকারী যখন এক্সটেনশন আপডেট করে তখন যে ফাংশনটি চলে তা নির্দিষ্ট করে।

ফাংশন স্পেসিফিকেশন
function
স্ট্রিং
(প্রয়োজনীয়)

ইভেন্টটি পরিচালনা করবে এমন টাস্ক কিউ-ট্রিগার করা ফাংশনের নাম।

এই ফাংশনটি অবশ্যই resources বিভাগে ঘোষণা করতে হবে এবং থাকতে হবে টাস্ককিউ সংজ্ঞায়িত।

processingMessage
স্ট্রিং
(প্রয়োজনীয়)
কাজটি চলাকালীন Firebase কনসোলে প্রদর্শিত বার্তা।
onConfigure
(ঐচ্ছিক)

ব্যবহারকারী যখন এক্সটেনশনটি পুনরায় কনফিগার করেন তখন যে ফাংশনটি চলে তা নির্দিষ্ট করে।

ফাংশন স্পেসিফিকেশন
function
স্ট্রিং
(প্রয়োজনীয়)

ইভেন্টটি পরিচালনা করবে এমন টাস্ক কিউ-ট্রিগার করা ফাংশনের নাম।

এই ফাংশনটি অবশ্যই resources বিভাগে ঘোষণা করতে হবে এবং থাকতে হবে টাস্ককিউ সংজ্ঞায়িত।

processingMessage
স্ট্রিং
(প্রয়োজনীয়)
কাজটি চলাকালীন Firebase কনসোলে প্রদর্শিত বার্তা।

কাস্টম ইভেন্ট (ইভেন্টার্ক)

কাস্টম ইভেন্ট হলো এমন ইভেন্ট যা আপনার এক্সটেনশন ব্যবহারকারীদের আপনার এক্সটেনশনে তাদের নিজস্ব লজিক সন্নিবেশ করার অনুমতি দেওয়ার জন্য নির্গত করে। অ্যাড ইউজার হুকস টু অ্যান এক্সটেনশনের Eventarc বিভাগটি দেখুন।

events:
  - type: publisher-id.extension-name.version.event-name
    description: Description of the event
  - type: publisher-id.extension-name.version.another-event-name
    description: Description of the other event
কাস্টম ইভেন্ট ক্ষেত্র
type
স্ট্রিং
(প্রয়োজনীয়)
ইভেন্টের ধরণ শনাক্তকারী। ৩-৪টি ডট-ডিলিমিটেড ফিল্ড থেকে শনাক্তকারী তৈরি করুন: প্রকাশক আইডি, এক্সটেনশনের নাম এবং ইভেন্টের নাম ফিল্ড প্রয়োজন; সংস্করণ ফিল্ডটি সুপারিশ করা হয়। আপনার প্রকাশিত প্রতিটি ইভেন্টের ধরণের জন্য একটি অনন্য এবং বর্ণনামূলক ইভেন্ট নাম চয়ন করুন।
description
স্ট্রিং
(প্রয়োজনীয়)
অনুষ্ঠানের বর্ণনা।