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

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

এই পৃষ্ঠার সারণিগুলোতে 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
স্ট্রিং
(প্রয়োজনীয়)

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

অবশ্যই সেমভার ভার্সনিং অনুসরণ করতে হবে (উদাহরণস্বরূপ, ১.২.০)।

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
স্ট্রিং
(ঐচ্ছিক)
পাবলিক ইউআরএল যেখান থেকে এক্সটেনশন ডিরেক্টরিটি অ্যাক্সেস করা যাবে।
releaseNotesUrl
স্ট্রিং
(ঐচ্ছিক)
পাবলিক ইউআরএল যেখানে এক্সটেনশনটির রিলিজ নোট পাওয়া যাবে।
author
একজন লেখকের একটি বস্তু
(ঐচ্ছিক)

সম্প্রসারণের প্রধান লেখক এবং যোগাযোগ ব্যক্তি।

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

লেখকের নাম।

ব্যক্তি, কোম্পানি, সংস্থা ইত্যাদি হতে পারে।

email
স্ট্রিং
(ঐচ্ছিক)
লেখকের ইমেইল ঠিকানা।
url
স্ট্রিং
(ঐচ্ছিক)
সর্বজনীন ইউআরএল যেখানে লেখক সম্পর্কে তথ্য পাওয়া যাবে।
contributors
লেখকের বস্তুসমূহের তালিকা
(ঐচ্ছিক)

এই সম্প্রসারণের জন্য অন্য কোনো অতিরিক্ত অবদানকারী লেখক।

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

লেখকের নাম।

ব্যক্তি, কোম্পানি, সংস্থা ইত্যাদি হতে পারে।

email
স্ট্রিং
(ঐচ্ছিক)
লেখকের ইমেইল ঠিকানা।
url
স্ট্রিং
(ঐচ্ছিক)
সর্বজনীন ইউআরএল যেখানে লেখক সম্পর্কে তথ্য পাওয়া যাবে।

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

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

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
এপিআই ক্ষেত্রগুলি
apiName
স্ট্রিং
(প্রয়োজনীয়)

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

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

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

আইএএম ভূমিকা

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

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

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
স্ট্রিং
(ঐচ্ছিক)
প্যারামিটারের ব্যবহারকারী-নির্ধারিত মান যাচাই করার জন্য রেগুলার এক্সপ্রেশন। গুগল 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 রয়েছে (অন্যান্য রিসোর্স টাইপগুলো ফ্রি-ফর্ম টেক্সট ইনপুট ফিল্ড হিসেবে প্রদর্শিত হয়)।

গোপন পরামিতি

ব্যবহারকারীর দেওয়া গোপনীয় মান (যেমন এপিআই কী) ভিন্নভাবে পরিচালনা করা হয়:

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

secret

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

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

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

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

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 সোর্স কোডের ফাইলটি অবশ্যই এই ডিরেক্টরিতে থাকতে হবে। ডিফল্ট হিসেবে functions ব্যবহৃত হয়।

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

timeout
(ঐচ্ছিক)

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

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

ফাংশনটির জন্য উপলব্ধ মেমরির পরিমাণ (এমবি-তে)।

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

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

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

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

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 সোর্স কোডের ফাইলটি অবশ্যই এই ডিরেক্টরিতে থাকতে হবে। ডিফল্ট হিসেবে functions ব্যবহৃত হয়।

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

এছাড়াও তিনটি অবজেক্ট-টাইপ ফিল্ড রয়েছে, যেগুলোর নিজস্ব প্রোপার্টি আছে:

বিল্ডকনফিগ প্রোপার্টি
buildConfig.runtime
(সুপারিশকৃত)

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

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

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

  • ডিফল্ট: 60
  • সর্বোচ্চ মান: 540
serviceConfig.availableMemory
(ঐচ্ছিক)
একটি ফাংশনের জন্য উপলব্ধ মেমরির পরিমাণ। ডিফল্ট মান হলো 256M । সমর্থিত এককগুলো হলো k , M , G , Mi , Gi । যদি কোনো একক সরবরাহ করা না হয়, তবে মানটি বাইট হিসাবে গণ্য করা হয়।
ইভেন্টট্রিগার বৈশিষ্ট্য
eventTrigger.eventType
(প্রয়োজনীয়)
কোন ধরনের ইভেন্টের জন্য শুনতে হবে। প্রতিটি পণ্যের জন্য উপলব্ধ ইভেন্টের প্রকারগুলির একটি এক্সটেনশনের জন্য ‘রাইট ক্লাউড ফাংশনস’ দেখুন।
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
স্ট্রিং
(প্রয়োজনীয়)
কাজটি চলাকালীন ফায়ারবেস কনসোলে প্রদর্শিতব্য বার্তা।
onUpdate
(ঐচ্ছিক)

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

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

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

এই ফাংশনটি অবশ্যই resources সেকশনে ডিক্লেয়ার করতে হবে এবং এর থাকতে হবে টাস্ককিউ সংজ্ঞায়িত করা হয়েছে।

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

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

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

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

এই ফাংশনটি অবশ্যই resources সেকশনে ডিক্লেয়ার করতে হবে এবং এর থাকতে হবে টাস্ককিউ সংজ্ঞায়িত করা হয়েছে।

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

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

কাস্টম ইভেন্ট হলো এমন ইভেন্ট যা আপনার এক্সটেনশন ব্যবহারকারীদের নিজস্ব লজিক যুক্ত করার সুযোগ দিতে নির্গত করে। 'একটি এক্সটেনশনে ইউজার হুক যোগ করুন' -এর ইভেন্টআর্ক (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
স্ট্রিং
(প্রয়োজনীয়)
ঘটনাটির বিবরণ।