আমি কীভাবে আমার আজুর ফাংশনগুলিতে নিউগেট প্যাকেজ ব্যবহার করতে পারি?


112

অ্যাজুর ফাংশন ব্যবহার করে , আমি কি আমার সি # ফাংশনে নুগেট প্যাকেজগুলি উল্লেখ করতে এবং ব্যবহার করতে পারি?


ফাংশন পরিষেবাটি পুনরায় চালু করার জন্য আমাকে আমার প্রজেক্ট.জসন ফাইলটি ম্যানুয়ালি আপডেট করতে হয়েছিল .. তবে এটি আমার ন্যুগেট প্যাকেজগুলি পুনরুদ্ধার করেছে। প্যাকেজগুলি পুনরুদ্ধার করার জন্য পরিষেবাটি পুনঃসূচনা করার আরও ভাল উপায় যে কেউ জানেন? কুডু সাহায্য করেনি
এরিক বার্গস্টেট

1
আপনি ফাংশন অ্যাপ্লিকেশন সেটিংসে স্ট্যান্ডার্ড সাইট রিস্টোর বিকল্পটি ব্যবহার করতে পারেন। তবে মনে রাখবেন যে, কোনও ফাংশন প্রথম কার্যকর হলে, প্রজেক্ট.জসন ফাইলটিতে এমন একটি রেফারেন্সের সেট থাকে যা পূর্বে পুনরুদ্ধার করা হয়েছিল তার থেকে পৃথক হয়, তখন পুনরুদ্ধার অপারেশনটি স্বয়ংক্রিয়ভাবে ঘটবে।
ফ্যাবিও ক্যাভালঙ্কেটে

উত্তর:


141

হ্যাঁ! যদিও অ্যাজুরে ফাংশন পোর্টাল বর্তমানে ন্যুগেট প্যাকেজ যুক্ত এবং পরিচালনা করার জন্য কোনও প্রক্রিয়া সরবরাহ করে না, রানটাইম নুগেট রেফারেন্সগুলিকে সমর্থন করে এবং আপনার ফাংশনগুলি সংকলন ও সম্পাদন করার সময় সেগুলি সঠিকভাবে ব্যবহৃত হয়েছে কিনা তা নিশ্চিত করবে।

আপনার নির্ভরতা সংজ্ঞায়িত করার জন্য, আপনাকে Project.jsonপ্রয়োজনীয় নুগেট প্যাকেজ রেফারেন্স সহ একটি ফাইল তৈরি করতে হবে। এখানে একটি উদাহরণ যা Microsoft.ProjectOxford.Faceসংস্করণ 1.1.0 এ একটি রেফারেন্স যুক্ত করেছে :

{
  "frameworks": {
    "net46":{
      "dependencies": {
        "Microsoft.ProjectOxford.Face": "1.1.0"
      }
    }
   }
}

অ্যাজুরে ফাংশন পোর্টাল আপনার ফাংশন ফাইলগুলি পরিচালনা করার জন্য একটি সুবিধাজনক উপায় সরবরাহ করে, যা আমরা আমাদের তৈরি করতে (বা আপলোড) করতে পারি project.json:

  1. ফাংশনের বিকাশ বিভাগে, ভিউ ফাইলগুলিতে ক্লিক করুন
  2. একটি ফাইল তৈরি করতে বিকল্পে ক্লিক করুন (আপনি যদি পূর্বে একটি তৈরি করে থাকেন তবে ফাইল আপলোড করার বিকল্পটিতে ক্লিক করতে পারেন)project.json ফাইল
  3. ফাইলটির নাম দিন 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আপনার ফাংশনে প্রয়োজনীয় বিবৃতিগুলি যুক্ত করতে পারেন এবং নুগেট প্যাকেজটিতে সংজ্ঞায়িত ধরণগুলি ব্যবহার করতে পারেন ' রেফারেন্স

অতিরিক্ত স্থাপনার বিকল্পসমূহ

যেহেতু অ্যাজুরে ফাংশনগুলি অ্যাপ্লিকেশন পরিষেবাগুলির শীর্ষে নির্মিত হয়েছে, উপরের পদক্ষেপগুলির বিকল্প হিসাবে, আপনার কাছে স্ট্যান্ডার্ড অ্যাজুর ওয়েব অ্যাপ্লিকেশনগুলিতে (অ্যাজুরি ওয়েবসাইটগুলি) উপলব্ধ সমস্ত দুর্দান্ত স্থাপনার বিকল্পের অ্যাক্সেসও রয়েছে।

এখানে কিছু উদাহরন:

অ্যাপ্লিকেশন পরিষেবা সম্পাদক (মোনাকো) ব্যবহার করে

অ্যাপ্লিকেশন পরিষেবা সম্পাদক (মোনাকো) ব্যবহার করে আপনার ব্রাউজার থেকে সরাসরি আপনার ফাইলগুলি পরিচালনা করতে:

  • আজুর ফাংশন পোর্টালে ক্লিক করুন click 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ফোল্ডারে আপনার ফাইলটি টানুন এবং ছেড়ে দিন (ফাইল গ্রিডের উপরে)

FTP- র

  • এফটিপি কনফিগার করার জন্য এখানে নির্দেশাবলী অনুসরণ করুন
  • একবার সংযুক্ত হয়ে গেলে (উপরের নির্দেশাবলী অনুসরণ করে) আপনার Project.jsonফাইলটি অনুলিপি করুন/site/wwwroot/<function_name>

    অতিরিক্ত স্থাপনার বিকল্পগুলির জন্য, দেখুন: https://azure.microsoft.com/en-us/docamentation/articles/web-sites-deploy/

একটানা সমাকলান

আপনি যদি অবিচ্ছিন্ন ইন্টিগ্রেশন সক্ষম করে থাকেন এবং project.jsonআপনার ফাংশন অ্যাপ চালু না থাকাকালীন কোনও ফাইলের সাথে আপনার ফাংশন মোতায়েন করেন , আপনার ফাংশন অ্যাপ্লিকেশন আরম্ভ হয়ে গেলে প্যাকেজ পুনরুদ্ধার স্বয়ংক্রিয়ভাবে ঘটবে। এটি প্রস্তাবিত হয় যে আপনি উত্স নিয়ন্ত্রণে আপনার ফাইল যুক্ত করবেন নাproject.lock.json

প্রাক-সংকলিত সমাবেশগুলি

কার্যগুলি পূর্ব-সংকলিত সমাবেশ হিসাবেও মোতায়েন করা যেতে পারে এবং এই ক্ষেত্রে সমস্ত নির্ভরতা পরিচালনা ভিজ্যুয়াল স্টুডিওতে পরিচালিত হয়। এই বিকল্পটি ভিজ্যুয়াল স্টুডিওর যে কোনও সংস্করণে স্ট্যান্ডার্ড শ্রেণীর লাইব্রেরি হিসাবে বা ভিজ্যুয়াল স্টুডিও 2017 অ্যাজুরি ফাংশন সরঞ্জামগুলি ব্যবহার করে ব্যবহার করা যেতে পারে ।


1
কি function script rootআপনার শেষ অনুচ্ছেদে? আমি বুঝতে পারি এটি কোথায় project.jsonরয়েছে। এটা কি ঠিক?
justinyoo

2
@ জাস্টআইন ক্রনিকলস, এটি আসলে এটির থেকে একটি ফোল্ডার। project.jsonআপনার ফাংশন ফোল্ডারের, যা স্ক্রিপ্ট রুট সন্তান ফোল্ডার রয়েছে। স্ক্রিপ্ট রুটটি আপনার wwwrootফোল্ডারে অ্যাজুরে maps
ফ্যাবিও ক্যাভালঙ্কেট

স্পষ্টতার জন্য ধন্যবাদ!
justinyoo

@ ফ্যাবিও ক্যালক্যান্ট, আপনি যে নুগেট প্যাকেজটি উদাহরণস্বরূপ রেখেছেন সেগুলি ভালোবাসুন, তাই আশ্চর্যজনক বিষয় যা আজুর জ্ঞানীয় পরিষেবাদি !!!
থমাস

দয়া করে মনে রাখবেন 'ভিসুয়াল স্টুডিও অনলাইন' উপরে Stackoverflow উত্তর উল্লেখিত stackoverflow.com/a/36411537/5288052 'অ্যাপ্লিকেশান পরিষেবা সম্পাদক' হিসেবে নভোনীল সরঞ্জাম থেকে পাওয়া যায় (দেখুন stackoverflow.com/a/38173438/5288052 )
স্টেফানো Spinucci

35

এই থ্রেডটি আমাকে অনেক সাহায্য করেছিল - তবে আমি প্রকল্প.জসনকে কাজ করার জন্য চেষ্টা করতে কয়েক ঘন্টা নষ্ট করেছি - কোনও লাভ হয়নি।

আপনি যদি সংস্করণ ২.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>

এটি সংরক্ষণ করার পরে আপনার প্যাকেজ ইনস্টল হচ্ছে কনসোল আপডেট দেখতে হবে। এটি সত্যই সঠিকভাবে নথিভুক্ত নয় এবং এটি খুঁজে পেতে আমার বেশ কয়েক ঘন্টা সময় লেগেছে। সুতরাং আমি আশা করি এটি কারও সাহায্য করবে।


2
পোস্টিং করার জন্য ধন্যবাদ এটি একটি বড় সহায়তা ছিল। এখানে আরও তথ্যের সাথে একটি লিঙ্ক দেওয়া আছে।

1
আপনার মত, আমিও একই কাজ করতে ঘন্টা সময় ব্যয় করেছি। ওই কাজগুলো. অনেক ধন্যবাদ. স্ট্যাকওভারফ্লো!
কের্তোজাল

13

আপনি আপনার অ্যাজুর ফাংশনগুলিতে নুগেট প্যাকেজগুলি ব্যবহার করতে পারেন। সবচেয়ে সহজ উপায় ভিজ্যুয়াল স্টুডিও 2017 15.4 ব্যবহার করা হবে যেখানে অ্যাজুরে ফাংশনগুলির জন্য একটি টেম্পলেট রয়েছে। নীচের পদক্ষেপগুলি অনুসরণ করুন

1) অ্যাজুরে ফাংশন যুক্ত করুন প্রকল্প: সমাধানটিতে ডান ক্লিক করুন এবং নতুন প্রকল্প যুক্ত করুন নির্বাচন করুন। ক্লাউড অপশনে যান সেখানে আপনি "অ্যাজুরে ফাংশন" প্রকল্পটি পাবেন।

Azure ফাংশন

2) এখন কোনও নিউজ প্যাকেজ যুক্ত করা বেশ সুন্দর। "ডিপেন্ডেনসিআইএস" প্রসারিত করুন এবং "নিউজ প্যাকেজগুলি পরিচালনা করুন" বিকল্পটি নির্বাচন করতে ডান ক্লিক করুন। নুগেট প্যাকেজ ডায়ালগটি উপস্থিত হবে, আপনি যে কোনও নুগেট প্যাকেজটি ইনস্টল করতে চান তা নির্বাচন করুন। নীচে স্ক্রিনশট দেখুন

3) এখন আপনার অ্যাজুরে ফাংশন প্রকাশ করুন, ভিজ্যুয়াল স্টুডিও সমস্ত সেটিংস ইত্যাদির যত্ন নেবে etc.

এই পদ্ধতিটি কেবল তখনই কাজ করবে যদি আপনি ভিজ্যুয়াল স্টুডিও 2017 15.4 বা তার বেশি ব্যবহার করেন তবে তা না হলে আপনাকে অন্যদের দ্বারা বর্ণিত হিসাবে অন্য পদ্ধতি অনুসরণ করতে হবে।


1
এটি ভিএস / ক্লাস লাইব্রেরিগুলির জন্য স্ট্যান্ডার্ড প্রবাহ (এটি আজুর ফাংশন প্রকল্পটি যা) এবং অ্যাজুরি ফাংশনগুলির সাথে নির্দিষ্ট নয়। নীচে দস্তাবেজগুলি অ্যাজুরে ফাংশনগুলির জন্য নির্দিষ্ট একমাত্র পদক্ষেপ। আমি আমার মূল উত্তরে একটি নোট যুক্ত করব, ২.০-এ আপডেট হওয়া পদ্ধতির বিশদ সহ।
ফ্যাবিও ক্যাভালঙ্কেট

7

ধরে নেওয়া যাক আমরা SFTPক্লায়েন্টটি ব্যবহার করতে চাই , এটি একটি বাহ্যিক গ্রন্থাগার, কোথাও সঞ্চিতNuGet

এটি সম্পাদন করতে সর্বশেষতম অ্যাজুরে ফাংশনগুলির স্পেসিফিকেশন অনুসারে নিম্নলিখিতটি করুন:

  1. আপনার অ্যাজুরে ফাংশনের অভ্যন্তরে ফাইল বিভাগ খুলুন এবং নতুন একটি ফাইল যুক্ত করুন function.proj

    এখানে চিত্র বর্ণনা লিখুন আরও তথ্যের জন্য মাইক্রোসফ্ট ডকুমেন্টেশন দেখুন


  1. এর অভ্যন্তরে কাঠামোটি ব্যবহার function.projকরে Nugetপ্যাকেজ রেফারেন্স রাখুন XML( *.csprojআপনি ভিজ্যুয়াল স্টুডিওর সাহায্যে কোনও স্থানীয় প্রকল্প তৈরি করেন এবং এতে কিছু NuGetপ্যাকেজ ইনস্টল করেন তবে একই ধরণের কাঠামোটি আপনি ফাইলের অভ্যন্তরে খুঁজে পেতে পারেন )।

    এখানে চিত্র বর্ণনা লিখুন


  1. এর পরে, প্রকল্পের গ্রন্থাগারটি উল্লেখ অন্তর্ভুক্ত করা যাক: এখানে চিত্র বর্ণনা লিখুন

    এখানে যা প্রয়োজনীয় তা হ'ল আপনার লাইব্রেরির পুরো পথ সরবরাহ করা উচিত, উদাহরণস্বরূপ আপনি দেখতে পাচ্ছেন: "D:\home\site\wwwroot\bin\your_custom_library.dll"


  1. পরবর্তী পরীক্ষা কিছু লাইব্রেরি-নির্দিষ্ট কোড: এখানে চিত্র বর্ণনা লিখুন

  1. অবশেষে লগস বিভাগটি খুলুন এবং কোডটি সংরক্ষণ করুন। কিছু সময়ের পরে আপনার NuGetপ্যাকেজগুলি পুনরায় পুনরুদ্ধার করা উচিত । এখানে চিত্র বর্ণনা লিখুন

    দ্রষ্টব্য: এই লগগুলি function.projফাইল সংরক্ষণ করার সময় বা প্রকল্পটি চালানোর সময় উপস্থিত হতে পারে ।


যদি গ্রন্থাগারটি এখনও অজানা হিসাবে উপস্থিত হয় তবে ভিজ্যুয়াল স্টুডিও থেকে আজুর ক্লাউড এক্সপ্লোরারDll ব্যবহার করে এটি ম্যানুয়ালি বিন ফোল্ডারে যুক্ত করার চেষ্টা করুন ।

এখানে চিত্র বর্ণনা লিখুন


এই উত্তর থেকে কিছু পরিবর্তন হয়েছে? এটি আর কাজ করবে বলে মনে হচ্ছে না। আমি একটি "সংকলন পরিষেবা ত্রুটি" দেখছি - কার্যকর 'ফাংশনস T টাইমারট্রিজার 2' (ব্যর্থ, আইডি = a318d5b7-a02c-4ba0-bb04-037beda89b1c) 'ডি: \ হোম \ সাইট \ wwwroot \ বিন \ গুগল.এপিস ফাইলটি খুঁজে পেল না p .Sheets.v4.dll '।
ব্যবহারকারী

আপনি যখন কোনও স্ক্রিপ্ট ইনস্টল করছেন function.proj, এর জন্য অবস্থানটি dllকিছু সময়ের পরে লগস বিভাগে উপস্থিত হবে। কখনও কখনও আপনাকে আবার অ্যাজুরে ফাংশনের জন্য পৃষ্ঠাটি পুনরায় লোড করতে হবে, কখনও কখনও নুগেট প্যাকেজ ইনস্টলেশন এবং অবস্থান দেখতে "রান" বোতামটি চাপুন। অবস্থান হিসাবে লগ বিভাগে কি মুদ্রণ করছে তা পরীক্ষা করুন এবং এটি রাখার চেষ্টা করুন।
আর্সেন খাচাতুরিয়ান

2

নোট করুন যে ভিজ্যুয়াল স্টুডিও 2017 এর নতুন .csproj ফর্ম্যাটটিও সমর্থিত। আপনি যদি এএসপনেট ওয়েব প্রকল্প হিসাবে আপনার প্রকল্পটি তৈরি করেন তবে অ্যাজুরে ফাংশন রানটাইম আপনার প্রকল্পটি তৈরি করার আগে প্রয়োজনীয় সমস্ত নুগেট প্যাকেজগুলি ডাউনলোড করে।


ASP.NET ওয়েব প্রকল্পের জন্য, ভিএস 2015 পাশাপাশি কাজ করে। আজার ফাংশন সরঞ্জামগুলির জন্য, এটি কেবল ভিএস 2017। মূল পার্থক্যটি হ'ল আপনি প্রাক-সংকলিত বিটগুলি (এবং নির্ভরতা) নিযুক্ত করছেন, তাই রানটাইম আপনার জন্য পুনরুদ্ধার পরিচালনা করছে না, তবে হ্যাঁ, এটি কার্যকারিতা লিখতে এবং নির্ভরতাগুলি পরিচালনা করার জন্য এটি একটি নতুন উপায়। আমি সর্বশেষ বৈশিষ্ট্য প্রতিফলিত উত্তর আপডেট করব।
ফ্যাবিও ক্যাভালঙ্কেটে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.