অ্যাজুর ফাংশন ব্যবহার করে , আমি কি আমার সি # ফাংশনে নুগেট প্যাকেজগুলি উল্লেখ করতে এবং ব্যবহার করতে পারি?
অ্যাজুর ফাংশন ব্যবহার করে , আমি কি আমার সি # ফাংশনে নুগেট প্যাকেজগুলি উল্লেখ করতে এবং ব্যবহার করতে পারি?
উত্তর:
হ্যাঁ! যদিও অ্যাজুরে ফাংশন পোর্টাল বর্তমানে ন্যুগেট প্যাকেজ যুক্ত এবং পরিচালনা করার জন্য কোনও প্রক্রিয়া সরবরাহ করে না, রানটাইম নুগেট রেফারেন্সগুলিকে সমর্থন করে এবং আপনার ফাংশনগুলি সংকলন ও সম্পাদন করার সময় সেগুলি সঠিকভাবে ব্যবহৃত হয়েছে কিনা তা নিশ্চিত করবে।
আপনার নির্ভরতা সংজ্ঞায়িত করার জন্য, আপনাকে Project.json
প্রয়োজনীয় নুগেট প্যাকেজ রেফারেন্স সহ একটি ফাইল তৈরি করতে হবে। এখানে একটি উদাহরণ যা Microsoft.ProjectOxford.Face
সংস্করণ 1.1.0 এ একটি রেফারেন্স যুক্ত করেছে :
{
"frameworks": {
"net46":{
"dependencies": {
"Microsoft.ProjectOxford.Face": "1.1.0"
}
}
}
}
অ্যাজুরে ফাংশন পোর্টাল আপনার ফাংশন ফাইলগুলি পরিচালনা করার জন্য একটি সুবিধাজনক উপায় সরবরাহ করে, যা আমরা আমাদের তৈরি করতে (বা আপলোড) করতে পারি project.json
:
project.json
ফাইলproject.json
এবং আপনার প্যাকেজ উল্লেখগুলি সংজ্ঞায়িত করুন (আপনি উপরের উদাহরণটি টেম্পলেট হিসাবে ব্যবহার করতে পারেন)।প্যাকেজ পুনরুদ্ধার প্রক্রিয়া শুরু হবে এবং আপনার লগ উইন্ডোতে নীচের মতো আউটপুট দেখতে হবে:
2016-04-04T19:02:48.745 Restoring packages.
2016-04-04T19:02:48.745 Starting NuGet restore
2016-04-04T19:02:50.183 MSBuild auto-detection: using msbuild version '14.0' from 'D:\Program Files (x86)\MSBuild\14.0\bin'.
2016-04-04T19:02:50.261 Feeds used:
2016-04-04T19:02:50.261 C:\DWASFiles\Sites\facavalfunctest\LocalAppData\NuGet\Cache
2016-04-04T19:02:50.261 https://api.nuget.org/v3/index.json
2016-04-04T19:02:50.261
2016-04-04T19:02:50.511 Restoring packages for D:\home\site\wwwroot\HttpTriggerCSharp1\Project.json...
2016-04-04T19:02:52.800 Installing Newtonsoft.Json 6.0.8.
2016-04-04T19:02:52.800 Installing Microsoft.ProjectOxford.Face 1.1.0.
2016-04-04T19:02:57.095 All packages are compatible with .NETFramework,Version=v4.6.
2016-04-04T19:02:57.189
2016-04-04T19:02:57.189
2016-04-04T19:02:57.455 Packages restored.
যেমনটি প্রত্যাশিত, অ্যাজুরে ফাংশন রানটাইম প্যাকেজ অ্যাসেমব্লিতে স্বয়ংক্রিয়ভাবে উল্লেখগুলি যুক্ত করবে, সুতরাং আপনার স্পষ্ট করে অ্যাসেমব্লিক রেফারেন্সগুলি ব্যবহার #r "AssemblyName"
করে প্রয়োজন হবে না, আপনি কেবল using
আপনার ফাংশনে প্রয়োজনীয় বিবৃতিগুলি যুক্ত করতে পারেন এবং নুগেট প্যাকেজটিতে সংজ্ঞায়িত ধরণগুলি ব্যবহার করতে পারেন ' রেফারেন্স
যেহেতু অ্যাজুরে ফাংশনগুলি অ্যাপ্লিকেশন পরিষেবাগুলির শীর্ষে নির্মিত হয়েছে, উপরের পদক্ষেপগুলির বিকল্প হিসাবে, আপনার কাছে স্ট্যান্ডার্ড অ্যাজুর ওয়েব অ্যাপ্লিকেশনগুলিতে (অ্যাজুরি ওয়েবসাইটগুলি) উপলব্ধ সমস্ত দুর্দান্ত স্থাপনার বিকল্পের অ্যাক্সেসও রয়েছে।
এখানে কিছু উদাহরন:
অ্যাপ্লিকেশন পরিষেবা সম্পাদক (মোনাকো) ব্যবহার করে আপনার ব্রাউজার থেকে সরাসরি আপনার ফাইলগুলি পরিচালনা করতে:
Function app settings
Go to App Service Settings
Tools
বাটনOn
ইতিমধ্যে সক্ষম না থাকলে এটি চালু করুন এবং ক্লিক করুনGo
project.json
ফাইলটিকে আপনার ফাংশনের ফোল্ডারে (আপনার ফাংশনের নামে নামকরণ করা ফোল্ডার) এ টানুন এবং ফেলে দিন ।https://<function_app_name>.scm.azurewebsites.net
D:\home\site\wwwroot\<function_name>
Project.json
ফোল্ডারে আপনার ফাইলটি টানুন এবং ছেড়ে দিন (ফাইল গ্রিডের উপরে)একবার সংযুক্ত হয়ে গেলে (উপরের নির্দেশাবলী অনুসরণ করে) আপনার Project.json
ফাইলটি অনুলিপি করুন/site/wwwroot/<function_name>
অতিরিক্ত স্থাপনার বিকল্পগুলির জন্য, দেখুন: https://azure.microsoft.com/en-us/docamentation/articles/web-sites-deploy/
আপনি যদি অবিচ্ছিন্ন ইন্টিগ্রেশন সক্ষম করে থাকেন এবং project.json
আপনার ফাংশন অ্যাপ চালু না থাকাকালীন কোনও ফাইলের সাথে আপনার ফাংশন মোতায়েন করেন , আপনার ফাংশন অ্যাপ্লিকেশন আরম্ভ হয়ে গেলে প্যাকেজ পুনরুদ্ধার স্বয়ংক্রিয়ভাবে ঘটবে। এটি প্রস্তাবিত হয় যে আপনি উত্স নিয়ন্ত্রণে আপনার ফাইল যুক্ত করবেন নাproject.lock.json
।
কার্যগুলি পূর্ব-সংকলিত সমাবেশ হিসাবেও মোতায়েন করা যেতে পারে এবং এই ক্ষেত্রে সমস্ত নির্ভরতা পরিচালনা ভিজ্যুয়াল স্টুডিওতে পরিচালিত হয়। এই বিকল্পটি ভিজ্যুয়াল স্টুডিওর যে কোনও সংস্করণে স্ট্যান্ডার্ড শ্রেণীর লাইব্রেরি হিসাবে বা ভিজ্যুয়াল স্টুডিও 2017 অ্যাজুরি ফাংশন সরঞ্জামগুলি ব্যবহার করে ব্যবহার করা যেতে পারে ।
function script root
আপনার শেষ অনুচ্ছেদে? আমি বুঝতে পারি এটি কোথায় project.json
রয়েছে। এটা কি ঠিক?
project.json
আপনার ফাংশন ফোল্ডারের, যা স্ক্রিপ্ট রুট সন্তান ফোল্ডার রয়েছে। স্ক্রিপ্ট রুটটি আপনার wwwroot
ফোল্ডারে অ্যাজুরে maps
এই থ্রেডটি আমাকে অনেক সাহায্য করেছিল - তবে আমি প্রকল্প.জসনকে কাজ করার জন্য চেষ্টা করতে কয়েক ঘন্টা নষ্ট করেছি - কোনও লাভ হয়নি।
আপনি যদি সংস্করণ ২.x এ একটি অ্যাজুরে ফাংশন করেন তবে আপনাকে এটি অন্যভাবে করতে হবে।
উল্লিখিত হিসাবে একটি নতুন ফাইল তৈরি করুন তবে এটি ফাংশন.প্রজ নাম । এই ফাইলটিতে নুগেটের মাধ্যমে লাইব্রেরি আমদানির জন্য একটি এক্সএমএল কাঠামো রয়েছে।
। নেট এর জন্য আমাজন এস 3 এসডিকে আমদানি করা আমার উদাহরণ এখানে;
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AWSSDK.S3" Version="3.3.26.3"/>
<PackageReference Include="AWSSDK.Core" Version="3.3.29.1"/>
</ItemGroup>
</Project>
এটি সংরক্ষণ করার পরে আপনার প্যাকেজ ইনস্টল হচ্ছে কনসোল আপডেট দেখতে হবে। এটি সত্যই সঠিকভাবে নথিভুক্ত নয় এবং এটি খুঁজে পেতে আমার বেশ কয়েক ঘন্টা সময় লেগেছে। সুতরাং আমি আশা করি এটি কারও সাহায্য করবে।
আপনি আপনার অ্যাজুর ফাংশনগুলিতে নুগেট প্যাকেজগুলি ব্যবহার করতে পারেন। সবচেয়ে সহজ উপায় ভিজ্যুয়াল স্টুডিও 2017 15.4 ব্যবহার করা হবে যেখানে অ্যাজুরে ফাংশনগুলির জন্য একটি টেম্পলেট রয়েছে। নীচের পদক্ষেপগুলি অনুসরণ করুন
1) অ্যাজুরে ফাংশন যুক্ত করুন প্রকল্প: সমাধানটিতে ডান ক্লিক করুন এবং নতুন প্রকল্প যুক্ত করুন নির্বাচন করুন। ক্লাউড অপশনে যান সেখানে আপনি "অ্যাজুরে ফাংশন" প্রকল্পটি পাবেন।
2) এখন কোনও নিউজ প্যাকেজ যুক্ত করা বেশ সুন্দর। "ডিপেন্ডেনসিআইএস" প্রসারিত করুন এবং "নিউজ প্যাকেজগুলি পরিচালনা করুন" বিকল্পটি নির্বাচন করতে ডান ক্লিক করুন। নুগেট প্যাকেজ ডায়ালগটি উপস্থিত হবে, আপনি যে কোনও নুগেট প্যাকেজটি ইনস্টল করতে চান তা নির্বাচন করুন। নীচে স্ক্রিনশট দেখুন
3) এখন আপনার অ্যাজুরে ফাংশন প্রকাশ করুন, ভিজ্যুয়াল স্টুডিও সমস্ত সেটিংস ইত্যাদির যত্ন নেবে etc.
এই পদ্ধতিটি কেবল তখনই কাজ করবে যদি আপনি ভিজ্যুয়াল স্টুডিও 2017 15.4 বা তার বেশি ব্যবহার করেন তবে তা না হলে আপনাকে অন্যদের দ্বারা বর্ণিত হিসাবে অন্য পদ্ধতি অনুসরণ করতে হবে।
ধরে নেওয়া যাক আমরা SFTP
ক্লায়েন্টটি ব্যবহার করতে চাই , এটি একটি বাহ্যিক গ্রন্থাগার, কোথাও সঞ্চিতNuGet
।
এটি সম্পাদন করতে সর্বশেষতম অ্যাজুরে ফাংশনগুলির স্পেসিফিকেশন অনুসারে নিম্নলিখিতটি করুন:
আপনার অ্যাজুরে ফাংশনের অভ্যন্তরে ফাইল বিভাগ খুলুন এবং নতুন একটি ফাইল যুক্ত করুন function.proj
।
আরও তথ্যের জন্য মাইক্রোসফ্ট ডকুমেন্টেশন দেখুন ।
এর অভ্যন্তরে কাঠামোটি ব্যবহার function.proj
করে Nuget
প্যাকেজ রেফারেন্স রাখুন XML
( *.csproj
আপনি ভিজ্যুয়াল স্টুডিওর সাহায্যে কোনও স্থানীয় প্রকল্প তৈরি করেন এবং এতে কিছু NuGet
প্যাকেজ ইনস্টল করেন তবে একই ধরণের কাঠামোটি আপনি ফাইলের অভ্যন্তরে খুঁজে পেতে পারেন )।
এর পরে, প্রকল্পের গ্রন্থাগারটি উল্লেখ অন্তর্ভুক্ত করা যাক:
এখানে যা প্রয়োজনীয় তা হ'ল আপনার লাইব্রেরির পুরো পথ সরবরাহ করা উচিত, উদাহরণস্বরূপ আপনি দেখতে পাচ্ছেন: "D:\home\site\wwwroot\bin\your_custom_library.dll"
অবশেষে লগস বিভাগটি খুলুন এবং কোডটি সংরক্ষণ করুন। কিছু সময়ের পরে আপনার NuGet
প্যাকেজগুলি পুনরায় পুনরুদ্ধার করা উচিত ।
দ্রষ্টব্য: এই লগগুলি function.proj
ফাইল সংরক্ষণ করার সময় বা প্রকল্পটি চালানোর সময় উপস্থিত হতে পারে ।
যদি গ্রন্থাগারটি এখনও অজানা হিসাবে উপস্থিত হয় তবে ভিজ্যুয়াল স্টুডিও থেকে আজুর ক্লাউড এক্সপ্লোরারDll
ব্যবহার করে এটি ম্যানুয়ালি বিন ফোল্ডারে যুক্ত করার চেষ্টা করুন ।
function.proj
, এর জন্য অবস্থানটি dll
কিছু সময়ের পরে লগস বিভাগে উপস্থিত হবে। কখনও কখনও আপনাকে আবার অ্যাজুরে ফাংশনের জন্য পৃষ্ঠাটি পুনরায় লোড করতে হবে, কখনও কখনও নুগেট প্যাকেজ ইনস্টলেশন এবং অবস্থান দেখতে "রান" বোতামটি চাপুন। অবস্থান হিসাবে লগ বিভাগে কি মুদ্রণ করছে তা পরীক্ষা করুন এবং এটি রাখার চেষ্টা করুন।
নোট করুন যে ভিজ্যুয়াল স্টুডিও 2017 এর নতুন .csproj ফর্ম্যাটটিও সমর্থিত। আপনি যদি এএসপনেট ওয়েব প্রকল্প হিসাবে আপনার প্রকল্পটি তৈরি করেন তবে অ্যাজুরে ফাংশন রানটাইম আপনার প্রকল্পটি তৈরি করার আগে প্রয়োজনীয় সমস্ত নুগেট প্যাকেজগুলি ডাউনলোড করে।