InterSystems API አስተዳዳሪን በማስተዋወቅ ላይ (+ ዌቢናር)

በ IT መሠረተ ልማት ዙሪያ የድር ኤፒአይ ትራፊክን ታይነት፣ ቁጥጥር እና አስተዳደርን የሚያቀርብ የኢንተር ሲስተምስ IRIS ዳታ መድረክ አዲስ አካል የሆነውን InterSystems API Manager (IAM)ን በቅርቡ አውጥተናል።

በዚህ ጽሑፍ ውስጥ IAM ን እንዴት ማዋቀር እንደሚችሉ እና ከ IAM ጋር ለእርስዎ የሚገኙትን በርካታ ችሎታዎች አሳይሻለሁ። InterSystems API አስተዳዳሪ የሚከተሉትን እንዲያደርጉ ይፈቅድልዎታል፡-

  • ኤፒአይን ተቆጣጠር፣ ኤፒአይን ማን እንደሚጠቀም፣ የትኞቹ ኤፒአይዎች በጣም ተወዳጅ እንደሆኑ እና የትኞቹ መሻሻል እንደሚያስፈልጋቸው ይረዱ።
  • ማን ኤፒአይን እንደሚጠቀም ይቆጣጠሩ እና የኤፒአይ አጠቃቀምን ከቀላል የመዳረሻ ገደቦች እስከ ጥያቄ ላይ የተመሰረቱ ገደቦችን ይገድቡ - ብጁ ቁጥጥር አለዎት እና የኤፒአይ ፍጆታ ቅጦችን ለመለወጥ በፍጥነት ምላሽ መስጠት ይችላሉ።
  • እንደ OAuth2.0፣ LDAP ወይም Key Token ማረጋገጫ ያሉ የተማከለ የደህንነት ስልቶችን በመጠቀም ደህንነቱ የተጠበቀ ኤፒአይዎችን ያስጠብቁ።
  • ለሶስተኛ ወገን ገንቢዎች ቀላል ያድርጉት እና የተለየ የገንቢ መግቢያ በር በመክፈት የላቀ የኤፒአይ ልምድ ያቅርቡ።
  • ኤፒአይውን ያስመዝኑ እና አነስተኛ የምላሽ መዘግየት ያረጋግጡ።

የኤፒአይ አስተዳደር ወደ SOA ወይም ማይክሮ ሰርቪስ አርክቴክቸር ለመሸጋገር፣ በግለሰብ (ጥቃቅን) አገልግሎቶች መካከል ያለውን ውህደት በማቃለል ለሁሉም ውጫዊ እና ውስጣዊ ሸማቾች ተደራሽ ማድረግ አስፈላጊ ነው። በውጤቱም፣ አዲስ ኤፒአይዎች ለመፍጠር፣ ለመጠገን እና ለመጠቀም ቀላል ይሆናሉ።

InterSystems IRIS እየተጠቀሙ ከሆነ የIAM አማራጭን ወደ ፍቃድዎ ማከል ይችላሉ። የIAM አማራጭ ለInterSystems IRIS ደንበኞች ነፃ ነው፣ነገር ግን IAMን መጠቀም ለመጀመር አዲስ የፍቃድ ቁልፍ ከInterSystems መጠየቅ አለቦት።

InterSystems IRIS ገና እየተጠቀሙ ካልሆኑ እና InterSystems API Managerን ለመሞከር እያሰቡ ከሆነ፣እባክዎ InterSystemsን ያግኙ።

መጀመር እና መጫን

InterSystems ደንበኞች የIAM ስርጭትን ከድር ጣቢያው ማውረድ ይችላሉ። WRC ክፍል “የሶፍትዌር ስርጭት” እና እንደ Docker መያዣ ያሂዱ። ዝቅተኛ የስርዓት መስፈርቶች

መጀመሪያ ላይ የዶከር ምስሉን ማውረድ አለብህ (አስፈላጊ ነው! ከWRC ጋር ያለው ማህደር Docker ምስል አይደለም፣ እሱን መፍታት አለብህ፣ ውስጥ Docker ምስል አለ)

docker load -i iam_image.tar

ይህ ትእዛዝ የIAM ምስል በኋላ በአገልጋይዎ ላይ ጥቅም ላይ እንዲውል ያደርገዋል። IAM እንደ የተለየ ኮንቴይነር ነው የሚሰራው፣ ስለዚህ ከInterSystems IRIS በተናጥል መለካት ይችላሉ። IAMን ማስኬድ ፍቃድ ለማውረድ የInterSystems IRIS መዳረሻ ያስፈልገዋል።

InterSystems IRIS ያዋቅሩ፡

  • የድር መተግበሪያን አንቃ /api/IAM
  • ተጠቃሚን አንቃ IAM
  • የተጠቃሚ ይለፍ ቃል ቀይር IAM

አሁን የ IAM መያዣውን እንጀምር. በማህደሩ ውስጥ ስክሪፕቶችን ያገኛሉ iam-setup ለዊንዶውስ እና ዩኒክስ (እና ማክ)። እነዚህ ስክሪፕቶች የአካባቢ ተለዋዋጮችን በትክክል እንዲያዘጋጁ ይረዱዎታል፣ ይህም የIAM መያዣው ከInterSystems IRIS ጋር ግንኙነት እንዲፈጥር ያስችለዋል። በማክ ላይ የሚሰራው የስክሪፕት ምሳሌ ይኸውና፡

source ./iam-setup.sh 
Welcome to the InterSystems IRIS and InterSystems API Manager (IAM) setup script.
This script sets the ISC_IRIS_URL environment variable that is used by the IAM container to get the IAM license key from InterSystems IRIS.
Enter the full image repository, name and tag for your IAM docker image: intersystems/iam:0.34-1-1
Enter the IP address for your InterSystems IRIS instance. The IP address has to be accessible from within the IAM container, therefore, do not use "localhost" or "127.0.0.1" if IRIS is running on your local machine. Instead use the public IP address of your local machine. If IRIS is running in a container, use the public IP address of the host environment, not the IP address of the IRIS container. xxx.xxx.xxx.xxx               
Enter the web server port for your InterSystems IRIS instance: 52773
Enter the password for the IAM user for your InterSystems IRIS instance: 
Re-enter your password: 
Your inputs are:
Full image repository, name and tag for your IAM docker image: intersystems/iam:0.34-1-1
IP address for your InterSystems IRIS instance: xxx.xxx.xxx.xxx
Web server port for your InterSystems IRIS instance: 52773
Would you like to continue with these inputs (y/n)? y
Getting IAM license using your inputs...
Successfully got IAM license!
The ISC_IRIS_URL environment variable was set to: http://IAM:****************@xxx.xxx.xxx.xxx:52773/api/iam/license
WARNING: The environment variable is set for this shell only!
To start the services, run the following command in the top level directory: docker-compose up -d
To stop the services, run the following command in the top level directory: docker-compose down
URL for the IAM Manager portal: http://localhost:8002

እንደሚመለከቱት ፣ ለመጀመር የሚያስፈልግዎ ሙሉ የምስል ስም ፣ የአይፒ አድራሻ ፣ የኢንተር ሲስተም IRIS ወደብ እና የይለፍ ቃል ብቻ ናቸው ።

ስክሪፕት ከማሄድ ይልቅ የአካባቢ ተለዋዋጮችን እራስዎ ማዘጋጀት ይችላሉ፡-

ISC_IAM_IMAGE=intersystems/iam:0.34-1-1
ISC_IRIS_URL=http://IAM:<PASS>@<IP>:<PORT>/api/iam/license

Запуск

አሁን ትዕዛዙን በማስኬድ IAM ን እናስጀምር፡-

docker-compose up -d

ይህ ትዕዛዝ የ IAM መያዣዎችን ያደራጃል እና ሁሉም ነገር በትክክል እየሰራ መሆኑን ያረጋግጣል. የመያዣዎች ሁኔታ ትዕዛዙን በመጠቀም ይፈትሻል-

docker ps

በአሳሽዎ ውስጥ የአስተዳዳሪ በይነገጽን ይክፈቱ localhost:8002.

InterSystems API አስተዳዳሪን በማስተዋወቅ ላይ (+ ዌቢናር)

ሙሉ ለሙሉ አዲስ መስቀለኛ መንገድ ስለሆነ ለጊዜው ባዶ ነው። ያንን እንለውጠው። IAM ኤፒአይዎችን ወደ ሞጁሎች እና/ወይም ትዕዛዞች ለመከፋፈል የስራ ቦታዎችን ጽንሰ-ሀሳብ ይደግፋል። ለሙከራዎች ወደምንጠቀምበት "ነባሪ" የስራ ቦታ ይሂዱ።

InterSystems API አስተዳዳሪን በማስተዋወቅ ላይ (+ ዌቢናር)

ለዚህ የሥራ ቦታ የጥያቄዎች ብዛት አሁንም ዜሮ ነው ፣ ግን በግራ በኩል ባለው ምናሌ ውስጥ ስለ መሰረታዊ IAM ጽንሰ-ሀሳቦች ሀሳብ ያገኛሉ። የመጀመሪያዎቹ ሁለት አካላት፡ አገልግሎቶች እና መንገዶች በጣም አስፈላጊ ናቸው፡

  • አገልግሎት የሸማቾችን ተደራሽነት ለማቅረብ የምንፈልገው ኤፒአይ ነው። ስለዚህ፣ በኢንተር ሲስተምስ IRIS ውስጥ ያለው REST ኤፒአይ አገልግሎት ነው፣ እንደ ለምሳሌ ፣ Google API ለመጠቀም ከፈለጉ።
  • መንገዱ ወደየትኞቹ የአገልግሎት ገቢ ጥያቄዎች መተላለፍ እንዳለበት ይወስናል። እያንዳንዱ መሾመር የተወሰኑ ቅድመ ሁኔታዎች አሉት, እና ከተሟሉ, ጥያቄው ለሚመለከተው አገልግሎት ይላካል. ለምሳሌ፣ አንድ መሾመር ከአይፒ፣ ከላኪው ጎራ፣ HTTP ስልቶች፣ የዩአርአይ ክፍሎች፣ ወይም የእነዚህ ምሳሌዎች ጥምር ጋር ሊዛመድ ይችላል።

አገልግሎት

ከሚከተሉት እሴቶች ጋር የInterSystems IRIS አገልግሎት እንፍጠር፡

መስክ
ዋጋ
መግለጫ

ስም
Iris
የአገልግሎት ስም

አስተናጋጅ
IP
InterSystems IRIS አገልጋይ አስተናጋጅ ወይም አይ.ፒ

ወደብ
52773
InterSystems IRIS አገልጋይ የድር ወደብ

ዱካ
/api/atelier
የስር መንገድ

ፕሮቶኮል
http
ፕሮቶኮል

የተቀሩትን ዋጋዎች እንደ ነባሪ ይተዉት። አዝራሩን ጠቅ ያድርጉ Create እና የተፈጠረውን አገልግሎት መታወቂያ ይጻፉ.

መሾመር

አሁን መንገድ እንፍጠር፡-

መስክ
ዋጋ
መግለጫ

ዱካ
/api/atelier
የስር መንገድ

ፕሮቶኮል
http
ፕሮቶኮል

አገልግሎት.መታወቂያ
መመሪያ ከ 3
አገልግሎት (ከቀዳሚው ደረጃ መታወቂያ)

የተቀሩትን ዋጋዎች እንደ ነባሪ ይተዉት። አዝራሩን ጠቅ ያድርጉ Create እና የተፈጠረውን የመንገድ መታወቂያ ይጻፉ. በነባሪ፣ IAM በፖርት 8000 ለሚመጡ ጥያቄዎች ያዳምጣል። አሁን ጥያቄዎች ተልከዋል። http://localhost:8000 እና በመጀመር /api/atelier ወደ InterSystems IRIS ተዘዋውረዋል።

ሙከራ

በREST ደንበኛ ውስጥ ጥያቄ ለመፍጠር እንሞክር (እኔ እየተጠቀምኩ ነው። ፖስትማን).

InterSystems API አስተዳዳሪን በማስተዋወቅ ላይ (+ ዌቢናር)

የGET ጥያቄ እንላክ http://localhost:8000/api/atelier/ (አንዳትረሳው / መጨረሻ ላይ) እና ከ InterSystems IRIS ምላሽ ይቀበሉ። እያንዳንዱ ጥያቄ መለኪያዎችን በሚሰበስበው IAM በኩል ያልፋል፡-

  • HTTP ሁኔታ ኮድ.
  • መዘግየት።
  • ክትትል (ከተዋቀረ)።

ጥቂት ተጨማሪ ጥያቄዎችን አቅርቤ ነበር (እንደ /api/atelier/est/ ላሉ የመጨረሻ ነጥቦች ሁለት ጥያቄዎችን ጨምሮ) ውጤቶቹ ወዲያውኑ በዳሽቦርዱ ውስጥ ይታያሉ፡

InterSystems API አስተዳዳሪን በማስተዋወቅ ላይ (+ ዌቢናር)

ከተሰኪዎች ጋር በመስራት ላይ

አሁን መስመር ስለተቀናበረ፣ የእኛን ኤፒአይ ማስተዳደር እንችላለን። አገልግሎታችንን የሚያሟሉ ባህሪያትን ማከል እንችላለን።

የኤፒአይን ባህሪ ለመለወጥ በጣም የተለመደው መንገድ ተሰኪ ማከል ነው። ፕለጊኖች የነጠላ ተግባርን ለይተው ከ IAM ጋር ሊገናኙ የሚችሉት በአለምአቀፍ ደረጃ ወይም ከግል አካላት ጋር ብቻ ነው፣ እንደ ተጠቃሚ (የተጠቃሚ ቡድን)፣ አገልግሎት ወይም መስመር። የ Rate Limiting ፕለጊን ወደ መንገዱ በማከል እንጀምራለን። በተሰኪው እና በመንገዱ መካከል ግንኙነት ለመመስረት የመንገዱን ልዩ መለያ (መታወቂያ) እንፈልጋለን።

የጥያቄዎች ብዛት መገደብ

በግራ በኩል ባለው ምናሌ ውስጥ ተሰኪዎችን ጠቅ ያድርጉ። በዚህ ስክሪን ላይ ሁሉንም ንቁ ተሰኪዎችን ማየት ትችላለህ፣ነገር ግን ይህ IAM አገልጋይ አዲስ ስለሆነ እስካሁን ምንም ንቁ ተሰኪዎች የሉም። ስለዚህ "አዲስ ፕለጊን" ን ጠቅ በማድረግ ወደ ቀጣዩ ደረጃ ይቀጥሉ.

የምንፈልገው ፕለጊን በ "የትራፊክ ቁጥጥር" ምድብ ውስጥ ነው እና "ደረጃ ገደብ" ይባላል. ምረጥ። እዚህ ሊያዘጋጁዋቸው የሚችሏቸው በጣም ጥቂት ቅንጅቶች አሉ ነገርግን ሁለት መስኮችን ብቻ እንጨነቃለን፡

መስክ
ዋጋ
መግለጫ

መንገድ_መታወቂያ
ID
የመንገድ መታወቂያ

config.ደቂቃ
5
የጥያቄዎች ብዛት በደቂቃ

ይኼው ነው. ተሰኪው ተዋቅሯል እና ንቁ ነው። እንደ አንድ ደቂቃ ፣ አንድ ሰዓት ወይም አንድ ቀን ያሉ የተለያዩ የጊዜ ክፍተቶችን መምረጥ እንደምንችል ልብ ይበሉ። ቅንብሮቹ ሊጣመሩ ይችላሉ (ለምሳሌ, በሰዓት 1000 ጥያቄዎች እና በተመሳሳይ ጊዜ 100 ጥያቄዎች በደቂቃ). ደቂቃዎችን መርጫለሁ ምክንያቱም የተሰኪውን ተግባር መፈተሽ ቀላል ያደርገዋል።

ተመሳሳዩን ጥያቄ በፖስታ ቤት ውስጥ እንደገና ከላከ ምላሹ በ2 ተጨማሪ ራስጌዎች እንደተመለሰ ያያሉ፡

  • XRateLimit-ገደብ-ደቂቃ፡ 5
  • XRateLimit-የቀረው-ደቂቃ፡ 4

ይህ ለደንበኛው በደቂቃ እስከ 5 ጥያቄዎችን እንደሚያቀርብ እና አሁን ባለው የጊዜ ክፍተት 4 ተጨማሪ ጥያቄዎችን እንደሚያቀርብ ይነግረዋል።

InterSystems API አስተዳዳሪን በማስተዋወቅ ላይ (+ ዌቢናር)

ተመሳሳይ ጥያቄን ደጋግመህ ካቀረብክ፣ በመጨረሻ ያለህ ኮታ ያልቃል እና በምትኩ የኤችቲቲፒ ሁኔታ ኮድ 429 ከሚከተለው ምላሽ አካል ጋር ትቀበላለህ፡

InterSystems API አስተዳዳሪን በማስተዋወቅ ላይ (+ ዌቢናር)

አንድ ደቂቃ ይጠብቁ እና ጥያቄዎችን እንደገና ማስገባት ይችላሉ።

ይህ የሚከተሉትን ለማድረግ የሚያስችል ምቹ ዘዴ ነው-

  • የጀርባውን ክፍል ከጭነት መጨናነቅ ይጠብቁ.
  • ምን ያህል ጥያቄዎችን ማቅረብ እንደሚችሉ ለደንበኞች ይንገሩ።
  • በኤፒአይ ገቢ ይፍጠሩ።

ለተለያዩ የጊዜ ክፍተቶች እሴቶችን ማዘጋጀት እና በተወሰነ ጊዜ ውስጥ የኤፒአይ ትራፊክን ማለስለስ ይችላሉ። በአንድ የተወሰነ መስመር ላይ በሰዓት 600 ጥያቄዎችን ይፈቅዳሉ እንበል። በአማካይ በደቂቃ 10 ጥያቄዎች አሉ። ነገር ግን ደንበኛው በሰዓቱ የመጀመሪያ ደቂቃ ውስጥ ሁሉንም 600 ጥያቄዎችን እንዳያጠናቅቅ የሚከለክለው ነገር የለም። ምናልባት ይህ የሚያስፈልግህ ነው. በአንድ ሰዓት ውስጥ የበለጠ እኩል የሆነ ሸክም ማግኘት ይፈልጉ ይሆናል። የመስክ ዋጋን በማዘጋጀት config.minute የ20 እሴት ተጠቃሚዎችዎ በደቂቃ ከ20 በላይ ጥያቄዎችን እና በሰዓት 600 ጥያቄዎችን እንደሚያቀርቡ ያረጋግጣል። ይህ በደቂቃ በአማካይ ከ10 ጥያቄዎች ፍሰት ጋር ሲነፃፀር በአንድ ደቂቃ ልዩነት ላይ ትናንሽ ሹልፎች እንዲኖር ያስችላል፣ ነገር ግን ተጠቃሚዎች የሰዓት ኮታውን ለአንድ ደቂቃ መጠቀም አይችሉም። አሁን ሁሉንም ጥያቄዎቻቸውን ለመጠቀም ቢያንስ 30 ደቂቃዎች ያስፈልጋቸዋል። ለእያንዳንዱ የተወሰነ የጊዜ ክፍተት ደንበኞች ተጨማሪ ራስጌዎችን ይቀበላሉ፣ ለምሳሌ፡-

HTTP ራስጌ
ዋጋ

የ X-RateLimit-ገደብ-ሰዓት
600

የኤክስ-ተመን ገደብ-የቀረው-ሰዓት
595

X-RateLimit-ገደብ-ደቂቃ
20

X-RateLimit-የቀረው-ደቂቃ
16

በእርግጥ እርስዎ ማግኘት በሚፈልጉት ላይ በመመስረት የጥያቄ ገደቦችን ለማዋቀር ብዙ የተለያዩ መንገዶች አሉ።

ግኝቶች

እዚህ ላይ እጨርሳለሁ፣ ስለ InterSystems API Manager ለመጀመሪያው መጣጥፍ በቂ ቁሳቁስ ያለ ይመስለኛል። ከ40 በላይ ተሰኪዎች አንዱን ብቻ ነው የተጠቀምነው። ከ IAM ጋር ልታደርጋቸው የምትችላቸው ብዙ ተጨማሪ አስደሳች ነገሮች አሉ፡

  • ለሁሉም የእርስዎ APIs ማዕከላዊ የማረጋገጫ ዘዴ ያክሉ።
  • በበርካታ አገልግሎቶች ላይ የሎድ ሚዛን በመጠቀም ጭነቱን መጠን።
  • ከሙሉ ዝማኔ በፊት አዲስ ተግባር እና የሳንካ ጥገናዎችን ለሙከራ ታዳሚ ያክሉ።
  • ሁሉንም ኤ.ፒ.አይ.ዎችን በሚመዘግብ የውስጥ እና የውጭ ገንቢዎች በልዩ የድር ፖርታል ያቅርቡ።
  • መሸጎጫ የምላሽ ጊዜን ለመቀነስ እና በስርዓቱ ጀርባ ላይ ያለውን ጭነት ለመቀነስ ይጠይቃል።

ማጣቀሻዎች

ዌይንበርና

እ.ኤ.አ. በኖቬምበር 21 ከቀኑ 10፡00 የሞስኮ ሰዓት (GMT+3) ወደሚካሄደው የዌቢናር "API Management with InterSystems API Management" እንጋብዛለን።
InterSystems API Manager (IAM) በ IT መሠረተ ልማት ውስጥ ወደ/ከድር ኤፒአይዎች የሚደረገውን ትራፊክ መከታተል፣ መቆጣጠር እና ማስተዳደርን የሚያቀርብ የInterSystems IRIS ዳታ መድረክ አዲስ አካል ነው። በዌቢናር ላይ የInterSystems API Management ቁልፍ ችሎታዎችን እናሳያለን፡-

  • የኤፒአይ የትራፊክ መከታተያ መሳሪያዎች።
  • የኤፒአይ ትራፊክ መቆጣጠሪያዎች፣ የመተላለፊያ ይዘት ቁጥጥርን ጨምሮ፣ የኤፒአይ ጥሪዎችን ቁጥር መገደብ፣ የተፈቀዱ እና የተከለከሉ የአይፒ አድራሻ ዝርዝሮችን ማቆየት፣ ወዘተ።
  • የኤፒአይ ደህንነት ውቅር መሳሪያዎች።
  • በይነተገናኝ ኤፒአይ ሰነዶችን ለማተም የገንቢ መግቢያ።
  • ወደ ኤፒአይ የመዳረሻ ነጠላ ነጥብ።

ዌቢናር የታሰበው ለአርክቴክቶች፣ ገንቢዎች እና የስርዓት አስተዳዳሪዎች ነው።

ምዝገባ ያስፈልጋል!

ምንጭ: hab.com

አስተያየት ያክሉ