מפתחים שמבקשים אישורי AWS הם כמו מתבגרים שמבקשים מפתחות לרכב – יש המון המתנה, ניירת, ואצבעות משולבות. אם נמאס לך לשחק את שומר הסף של האישור או להיות המפתח stuck in ticket purgatory.
בואו נהפוך את תהליך הבקשה המייגע לאישור לפקודת Slack פשוטה בעזרת n8n, כלי אוטומציה אינטואיטיבי לעבודה שיגרום למפתחים שלך לומר, "זהו?"
נכסה תרחיש דוגמה מא' ועד ת', מבלי לקצץ בפרטים, כדי להראות לך איך כלי האוטומציה n8n יכול לחסוך למפתחים ומנהלים עסוקים אינספור שעות נוספות.
ריקוד הבקשה לאישור הנוכחי
תארו לעצמכם את התרחיש המוכר מדי הזה: מפתח זקוק לאישור AWS חדש עבור סביבת הפיתוח שלו. כך זה בדרך כלל מתנהל:
- המפתח מגיש כרטיס עם מספיק טקסט כדי לכתוב רומן
- הכרטיס יושב בתור בזמן שהמפתח מרענן בעצבנות את תיבת הדואר שלו
- המאשר רואה בסופו של דבר את הכרטיס בין 47 בקשות דחופות אחרות
- חצי מהמידע הדרוש חסר (ברור)
- מיילים מתחילים להימשך הלוך ושוב כמו משחק פינג-פונג כואב
- המבקר נכנס לקונסולת AWS (אחרי שמצא את מכשיר ה-2FA שלו)
- נוצר אישור באופן ידני
- המפתח סוף סוף מקבל את פרטי האישור… אולי
- כולם מאבדים קצת מהנשמה שלהם
נשמע מוכר? חשבתי כך. בואו נתקן את זה.
החלום: פקודת סלק → תעודה מיידית
מה אם המפתחים שלכם יוכלו פשוט להקליד /newcert
בערוץ סלק של סביבת הפיתוח שלהם, ולקבל ARN של תעודת AWS תוך שניות? בלי כרטיסים, בלי המתנה, בלי התנהלות מתישה. זה בדיוק מה שאנחנו בונים.
בתרחיש הזה, אתם מפתחים בארגון שמשתמש בסלק לתקשורת. יצרתם ערוץ סלק עבור כל סביבת פיתוח כדי לשמור על השיחות מאורגנות.
הנה איך שהעבודה האוטומטית שלנו תעבוד:
- המפתח מקליד
/newcert
בערוץ סלק של הסביבה שלו - העבודת n8n מקבלת את הבקשה עם הקשר הערוץ
- העבודה יוצרת תעודה ב-AWS
- ARN של התעודה מופיע באותו ערוץ סלק
זה הכל. ארבעה שלבים במקום תשעה, ולא מחכים לבני אדם לעשות דברים אנושיים!
מאחר ואנחנו לא חוסכים בפרטים, פוסט זה לא רק יאמר לכם ש-n8n יכול לאוטומט את התהליך הזה, אלא אני אראה לכם (עשיתי את זה בעצמי מההתחלה!).
n8n משתמש בעבודות כדי לקשר בין משימות באמצעות צמתים. העבודות הללו יכולות לאחר מכן להתבצע, ולהפעיל את כל הצמתים בתוך העבודה כדי לאוטומט תהליכים פשוטים עד מורכבים.
אם אתם מעוניינים ללמוד איך להקים את העבודה הזו או ללמוד איך ניתן להקים עבודה ב-n8n, המשיכו לקרוא!
דברים ראשונים קודם: טריגר הווב הוק
פתח את המופע של n8n שלך, ובוא נתחיל עם לוח ריק:
1. צור תהליך חדש. למטה, תראה את הלוח הריק של תהליך n8n חדש מוכן להגדרת צומת ההפעלה הראשון.

2. לאחר מכן, הוסף צומת הפעלה של webhook. צומת ההפעלה של webhook היא הדרך שבה Slack תתקשר עם תהליך זה כדי להודיע לו מתי להנפיק בקשות ל-AWS ליצירת תעודות חדשות.

ניתן לראות מתמונת המסך לעיל כי צומת ההפעלה של webhook תהיה אזנה לבקשות HTTP מסוג POST.
3. הגדר אותו כך שיקבל בקשות POST מ-Slack
ה-Webhook הזה יהיה הדלת הקדמית שלנו – כאשר מישהו משתמש בפקודת ה-/newcert
שלנו, זה המקום שבו Slack ידפיק.
יצירת אפליקציית Slack
זמן להגדיר את צד ה-Slack. תצטרך אפליקציית Slack כדי לאפשר למשתמשים להנפיק פקודות חיתוך (/newcert
) בערוץ. האפליקצייה של Slack תשמש גם כדרך ל-n8n לאמת חזרה ל-Slack על מנת להחזיר הודעות.
1. כאשר במסך האפליקציות של Slack, לחץ על צור אפליקציה חדשה שבו תוכל לספק שם.

2. לאחר מכן, קבע את ה־Scopes כך שיהיה ניתן להנפיק פקודות קו חתיכה וגם לשלוח הודעות חזרה לערוץ. תצטרך
– channels:read
– chat:write
– commands

3. לאחר מכן, הגדר פקודת קו חתיכה. פקודת קו חתיכה מאפשרת למשתמשים להנפיק פקודות לאפליקציית ה־Slack שלך כחצי קו באחריו פקודה מסוימת. במקרה זה, הפקודה תהיה /newcert
כדי ליצור תעודת AWS חדשה.
בהגדרות האפליקציה שלך, עבור ל"פקודות חצי קו" ולחץ על "צור פקודה חדשה"

4. התקן את האפליקציה במרחב העבודה שלך לאחר שהגדרת את הזיכויים ופקודת הקו החתיכה.

5. לבסוף, הזמן את הבוט (האפליקציה שיצרת לפני כן) לערוץ Slack לעבוד בו. במקרה זה, הערוץ יהיה שם סביבת הפיתוח qa-1.
/invite @devenvironmentautomation
בדיקת טריגר של ה־Webhook
יש לך עכשיו את האפליקציה של Slack ואת הטריגר של ה־Webhook מוגדרים. הגיע הזמן לבדוק את האינטראקטיביות שלהם.
1. בתהליך העבודה שלך ב־n8n, לחץ על כפתור "האזן לאירוע בדיקה". על ידי כך תאפשר לטריגר של ה־Webhook להתחיל להאזין לבקשות שהאפליקציה של Slack צריכה לשלוח.

2. לאחר מכן, בערוץ Slack של סביבת הפיתוח שלך, הוציא את פקודת הסלש /newcert
. ברגע שתעשה זאת, אתה אמור לראות את צומת ה-webhook מקבל את הבקשה ב-n8n.
שימו לב שמתחת זה כולל את שם הערוץ ואת מזהה המשתמש בבקשה. זה יאפשר לנו לראות עבור איזו סביבת פיתוח תעודה זו מיועדת ואת המשתמש שמבקש אותה.

אם הכל הלך טוב, אתה אמור לראות את התגובה המוגדרת כברירת מחדל ב-JJSON שאומרת לך שהעבודה קיבלה את הבקשה שהחלה את העבודה.

הגדרת גישת AWS
n8n צריך לאמת את עצמו ב-AWS כדי ליצור תעודות חדשות. כדי לעשות זאת, נדרש משתמש IAM עם הזכויות המתאימות. מכיוון שאנחנו מתחילים מאפס במדריך זה, למטה, תמצא דרך להקים במהירות את משתמש ה-IAM הזה באמצעות AWS CLI.
אם עדיין אין לך משתמש IAM, תוכל להשתמש בקוד הבא כדי לעשות זאת:
## צור את קובץ המדיניות
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"acm:DescribeCertificate",
"acm:ListCertificates",
"acm:GetCertificate",
"acm:RequestCertificate"
"acm:AddTagsToCertificate"
],
"Resource": "*"
}
]
}
## צור את המשתמש
aws iam create-user --user-name CertificateManager
## צור את מזהה מפתח הגישה והמפתח הסודי
aws iam create-access-key --user-name CertificateManager --query 'AccessKey.[AccessKeyId,SecretAccessKey]' --output text > certificate_manager_credentials.txt
## צור את המדיניות
$policy = Get-Content -Raw ~/Downloads/cert-policy.json PS /Users/adam> $policy_arn = aws iam create-policy --policy-name CertificateManagerPolicy --policy-document $policy --query 'Policy.Arn' --output text
## הוסף את המדיניות
aws iam attach-user-policy --user-name CertificateManager --policy-arn $policy_arn
## קרא את מזהה מפתח הגישה והמפתח הסודי שנצטרך מאוחר יותר לעבודת הזרימה
Get-Content ./certificate_manager_credentials.txt
קוד זה משתמש ב- AWS CLI כדי לבצע מגוון משימות:
1. יצירת מדיניות: יוצרת מדיניות IAM שמגדירה בדיוק אילו פעולות הקשורות לתעודות מורשות:
– צפייה בפרטי תעודה
– רשימת תעודות
– אחזור נתוני תעודה
– יצירת תעודות חדשות
– הוספת תגיות לתעודות
2. יצירת משתמש: יוצרת משתמש IAM מוקצה בשם "CertificateManager" שישמש באופן ברור למשימות ניהול תעודות
3. יצירת מפתח גישה: יוצרת זוג מפתחות גישה (מזהה מפתח גישה ומפתח גישה סודי) עבור המשתמש החדש ושומרת אותם בקובץ
4. צירוף מדיניות: יוצרת את מדיניות הIAM ומצרפת אותם למשתמש החדש, מעניקה להם רק את ההרשאות הספציפיות לניהול תעודות שהוגדרו במדיניות
5. משתמשת בפקודת PowerShell Get-Content
לקריאת קובץ הטקסט עם מפתח הגישה והסוד שתצטרך לספק לעבודת הזרימה.
זה עוקב אחר מדיניות אבטחה הטובה ביותר על ידי:
- שימוש בעקרון הפחותיות (הענקת הרשאות הכרחיות בלבד)
- יצירת משתמש מיוחד עבור ניהול רישיונים
- הפרדת הדיעוטים מהחשבון המנהל
הערה: בסביבה ייצור, תרצו לאחסן את הדיעוטים המיוצעים באמת בטוח, לא בקובץ טקסט פשוט. קחו בחשבון שימוש במנהל הסודות AWS או פתרון אחר לאחסון סודות.
הגדרת אמונת הרשת n8n עבור דיעוטי AWS
כשאנחנו מגיעים לשלב הזה, העבודה צריכה להיות מסוגלת להתחבר למנהל AWS Certificate Manager כדי לעשות רשימה של רישיונות חדשים. n8n משתמשת בדיעוטיםכדי לעשות את זה. כדי ליצור דיעוט חדשהעבור AWS:
1. במרחב העבודה שלך, לחצו על דיעוטים בראש המסך שלך ולחצו הוסף דיעוט.

2. 指定 AWS כסוג הדיעוט.

3. ספקו את המפתחות הגישה והמפתחות הסודיות שנוצרו מהפקטים הקודמים של AWS CLI.

לn8n יש תכונה נחמדה שמבצעת בעצם בדיקה את הדיעוט בעת שאתה משמר אותה, כך שתדע מיד אם הדיעוט פעלה או לא.

יצירת נקודת בקשה HTTP
למרות שn8n יש תמיכה בשירות מנהל סימנים AWS, הוא ברגע זה לא תמך ביצירת סימנים חדשים, אז אתה לא מודע על מזלך! אתה יכול להשתמש בנקודת בקשה HTTP גנרית. הנקודה הזו מאפשרת לך ליצור בקשות HTTP גנריות לאפילו API שאינו תמך.
No need to worry about complex API authentication. Once you create a credential, n8n can leverage that and manage all that OAuth goodness for you.
1. כדי ליצור את הנקודת הבקשה הHTTP שאנחנו מחפשים, תחילה תוכל להגדיר את כל הפרמטרים שה API של AWS דורש. אלה הם:
– URL – נקודת הקישור למשרד ה API באזור בו אתה עובד
– האutorיציה – תשתמש ב סוג המקור למידע מודע כדי להשתמש במידע הכרטיס שנוצר קודם.
– סוג המקור – AWS
– AWS – המידע הכרטיס ה AWS שנוצר קודם.
– שליחת ראשי תוכנית – תזדקק לראשי התוכנית X-Amz-Target
כדי לומר ל API על אילו פעולות רצית להשתמש; זו במקרה זו CertificateManager.RequestCertificate
.
– סוג תוכן התוכן – application/x-amz-json-1.1

2. בהמשך, תיצר את התוכן של הבקשה HTTP. זה שלב קריטי בניהול API בעזרת שמות הסביבה שקיבלת מבקש ה Slack. במקרה זה, אנחנו מעצבים תג בשם סביבה עבור הסימן ומגדירים את שם הסביבה שקיבלת מהבקשה ה Slack.
אתה תצטרך קלט דינמי או ביטוי למשימה זו. לחץ על ביטוי בשדה גוף, ותראה שהקלט הופך לטקסט של פונקציה.

3. לחץ על אייקון ההרחבה בפינה הימנית התחתונה של שדה הגוף, ותקבל עורך אינטואיטיבי.
הגוף של HTTP צריך להיות ב-JSON. אני משתמש באחד משמות הדומיין שלי כאן ומאמת את התעודה עם DNS.
אתה יכול לראות למטה שאני יכול לכלול את ערך התג על ידי גרירת הערך שהתקבל מ-Slack לתוך הביטוי.

{
"DomainName": "atademos.com",
"ValidationMethod": "DNS",
"Tags": [
{
"Key": "Environment",
"Value": "{{ $('Webhook').item.json.body.channel_name }}"
}
]}
הערך כעת הוא {{ $('Webhook').item.json.body.channel_name }}
משתנה זה יועבר ל-AWS בבקשת ה-API המכילה את שם ערוץ Slack (שם סביבת הפיתוח בתרחיש זה).
[su_hightlight]The expressions in n8n are powerful. They’ve developed their own templating language that’s intuitive and is integrated well in various parts of the tool.[/su_hightlight]
4. לבסוף, בדוק את צומת בקשת ה-HTTP על ידי לחיצה על Test step. אם הכל הלך כשורה, אתה אמור לראות את תגובת ה-JSON מ-AWS, כולל ה-ARN של התעודה
צור את צומת Slack
בשלב זה, יש לך שניים מתוך שלושת הצמתים שלמים בזרימת העבודה הפשוטה הזו של n8n: ההדק של ה-webhook עבור Slack להתקשר וצומת בקשת ה-HTTP שיעשה בקשות API ל-AWS. הצומת הסופי הוא צומת ה-Slack, שמתחיל הודעת תגובה למשתמש.
1. פתח את לוח הצמתים ולחץ על כפתור הפלוס כדי ליצור צומת Slack חדש בזרימת העבודה שלך.
2. חפש את Slack ובחר את הפעולה Send a message.


3. לאחר מכן, לחץ על אישורים להתחבר עם ובחר צור אישור חדש כדי ליצור אישור Slack דומה לאישור AWS. לאחר שהגדרת אישור, תוכל להשתמש בו בצומת Slack.
4. ספק את הפרמטרים המתאימים לצומת Slack:
- משאב – הודעה (כדי לשלוח הודעה לערוץ)
- פעולה – שלח
- שלח הודעה ל – ערוץ
- ערוץ – לפי שם. אתה יכול להשתמש שוב בעורך הביטויים ולגרור את המאפיין channel_name מהטריגר של ה-webhook כדי להשתמש בביטוי דינמי.
- טקסט ההודעה – בסcenario הזה, הזרימה תחזיר את ה-ARN של התעודה שהתקבלה מ-AWS למפתח בערוץ Slack. מכיוון ש-AWS מחזירה מחרוזת JSON, אנו יכולים להשתמש בפונקציית הביטוי המובנית
JSON.parse
כדי לנתח את ה-JSON ולחלץ רק את ערךCertificateArn
.
The ability to run simple JavaScript like JSON.parse directly in expressions is extremely handy. If I didn’t have this ability, I’d have to create a whole new node just to format this simple data.

5. לחץ על שלב בדיקה והערוץ המקורי של Slack צריך לקבל את ההודעה!
בדוק את הזרימה
בשלב זה, אתה צריך שיהיה לך זרימה עם שלושה צמתים. הגיע הזמן לבדוק את כל הזרימה יחד!
בלחיצה על בדוק את הזרימה, תראה ש-n8n מתחילה לחכות לטריגר.

כנס לערוץ Slack של המפתחים והנפק את הפקודה /newcert
. Voilà, הזרימה צריכה להתבצע בצורה חלקה!

עכשיו יש לך רשימה מתוארת שמתוייגה באופן ברור לסביבה הפיתוח הניסויית בה יש להשתמש, היסטוריית הבקשה, ופיתוחאים הרבה יותר מאושרים, לדוגמה, גישה לרשימות חדשות!
מדוע זה חשוב
חשבו על מה שבנינו:
- מוצץ את מערכת הטיקטורים
- צמצם את זמן הבקשה לרשימות מידיות לשניות
- אוטומציית הדוקמנציה (תגיות AWS)
- עשה את הפיתוחאים יותר מאושרים (לא יכול להיות מחיר)
הפוסט הזה סיים רק על משימה אחת: בניית העבודה העודפית. היא יכולה עכשיו להיות בוצעה ללא מגבלה פעמים על מנת לחסך שעות עצומות!
והחלק הכי טוב? זה רק ההתחלה. אתה יכול להרחיב את העבודה הזו לטפל בסוגים שונים של רשימות, להוסיף אישורים לסביבות ההפיכה, או אפילו לאוטומציית הודעות על התחזור הרשימה.
הבחנו בתבניות מוכנות מקודמות
n8n מעניקה מאות תבניות מוכנות מקודמות כמו העבודה הזו. התבניות אלה מאפשרות לך להצדיק את התהליך שעלינו לעבוד ולהשתמש בעבודות שנבנות ונבדקו על ידי n8n.
If you’d like another great example of a Slack workflow, check out their Advanced Slackbot template.
מחשבות סיום
n8n מאפשרת לך לאוטומטיזם של עבודות אלה באופן פשוט להפליא. הפעם הזאת, לקחנ
רוצה לנסות את זה בעצמך? הגרסה הבסיסית של n8n היא חינמית, ואתה כנראה יכול להרכיב את זה יותר מהר מאשר לעבד בדרך הישנה בבקשת רישיון אחת. המפתחים שלך יהדיקו אותך, ויהיה לך די פחות צרות אדמיניסטרטיביות.
Source:
https://adamtheautomator.com/automate-aws-cert-creation-n8n-slack/