תיעוד 137
הגדרת סביבות ענן
הגדרת סביבות ענן לסשנים של Claude Code בענן: רמות גישה לרשת, משתני סביבה, סקריפטי הכנה, ומטמון של הסביבה.
[!NOTE]
סביבות ענן חלות על סשנים בענן, הזמינים בתוכניות Pro, Max, Ultra ו-Team, ולמשתמשי Enterprise עם מושבי premium או מושבי Chat + Claude Code.
כל סשן בענן רץ בסביבת ענן. אפשר להגדיר סביבה כדי לאפשר או למנוע גישה לרשת, להגדיר משתני סביבה לסשן, לשמור סודות רשת שהסשנים משתמשים בהם בלי לראות אותם, ולהריץ סקריפט הכנה לפני ש-Claude מתחיל לעבוד.
אותן סביבות חלות בכל מקום שבו מתחילים סשן בענן:
- אפליקציית Desktop
- אפליקציית Claude לנייד
- הדפדפן בכתובת claude.ai/code
- הטרמינל עם
claude --cloud - משימות מתוזמנות בענן
- Claude Tag
כל אחד מהמשטחים האלה יכול גם לנתב אל סביבה באירוח עצמי. זמינות ומגבלות מכסה את מה ש-Claude עדיין לא יכול להשתמש בו כשסשן Claude Tag רץ בסביבה כזאת.
[!NOTE]
סשנים של Remote Control מחברים את ממשקי האינטרנט והנייד לסשן על המחשב שלך, שמשתמש ברשת ובקבצים של המחשב שלך, ולא בסביבת ענן. כדי לבחור את הסביבה שערוץ Claude Tag משתמש בה, ראה הגדרת הסביבה שערוץ Claude Tag משתמש בה.
#סביבת Default
אם עדיין אין לך סביבה, ההצטרפות מגדירה את סביבת Default. האופן תלוי במקום שבו מצטרפים:
- זרימות CLI כגון
/web-setup: יוצרות עבורך את Default - הצטרפות באינטרנט ב-Pro, ב-Max וב-Ultra: מקבלים את Default באופן אוטומטי
- הצטרפות באינטרנט ב-Team וב-Enterprise: מציגה טופס Create your first cloud environment, אלא אם Owner הפעיל את Quick setup. השאר את ברירות המחדל של הטופס ולחץ Create & finish כדי לקבל את אותה סביבת Default
ל-Default אין תצורה משלו:
- גישת רשת Trusted: סשנים מגיעים לרשמי חבילות ולדומיינים אחרים ברשימת ההיתר, ולשום דבר אחר דרך הרשת של הסשן.
- אין תצורה אחרת: Default לא מגדיר משתני סביבה או סקריפט הכנה, ולכן הסשנים מתחילים רק עם הכלים המותקנים מראש.
כשרק Default זמין, כל סשן רץ בו. כשיש יותר מסביבה אחת, הסשנים בוחרים סביבה אחת לכל משטח:
- באפליקציית Desktop, באפליקציה לנייד, וב-claude.ai/code, סשנים שאתה מתחיל בעצמך משתמשים בסביבה שמוצגת בבורר. ברירת מחדל של הארגון שקבע Owner ממלאת את הבחירה כשלא בחרת סביבה. שרשורים בפרויקט משתמשים בסביבה שמוגדרת בהגדרות הפרויקט.
- מה-CLI, Claude Code משתמש בבחירה שלך ב-
/remote-env, או חוזר לסביבה באירוח Anthropic כשיש אחת כזאת ברשימה שלך, ואחרת לסביבה הראשונה ברשימה שלך שאינה סביבת bridge, רשומה ש-Remote Control רושם כדי לייצג את המחשב שלך ולא סביבת ענן. עבור סביבה באירוח עצמי, העברת--environment <environment-id>עם מזהה ה-ccpool_שלה כשמשגרים סשן דורסת את הבחירה ב-/remote-envואת הגיבוי עבור אותה הפעלה. Claude Code דוחה מזהיenv_באירוח Anthropic שמועברים לדגל, לכן השתמש ב-/remote-envכדי לכוון אליהם. הדגל דורש Claude Code v2.1.224 או גרסה מאוחרת יותר.
הגדר סביבה כשהברירת המחדל לא מספיקה: כש-Claude צריך להגיע לדומיינים מחוץ לרשימת ההיתר שבברירת המחדל, כשהוא צריך משתני סביבה שמוגדרים לסשנים שלו, או כשהוא צריך שתלויות יותקנו לפני שהוא מתחיל לעבוד.
#הגדרת הסביבה
מוסיפים, עורכים ומעבירים לארכיון סביבות מבורר הסביבות שמתחת לתיבת ההודעה, במסך שבו מתחילים סשן חדש ב-claude.ai/code. כדי להגיע למסך הזה, משלימים את ההתחלה באינטרנט. לאפליקציית שולחן העבודה, ראו סשני ענן. סביבות שאתם יוצרים הן אישיות לחשבון שלכם. סביבות משותפות ש-Owner יוצר מופיעות בבורר לצדן. ראו כלים מותקנים לגבי מה שזמין בלי שום הגדרה.
הבורר מופיע רק עד ששולחים את ההודעה הראשונה של סשן חדש. כדי לערוך את הסביבה של סשן ענן פעיל משלכם, בחרו ב-caret שאחרי כותרת הסשן למעלה, ואז בחרו ב-Edit cloud environment.
1. פתיחת בורר הסביבות
במסך הסשן החדש, בחרו בפקד הראשון בשורה שמתחת לתיבת ההודעה.
2. הוספה או עריכה של סביבה
- הוספת סביבה: בחרו ב-New environment בתחתית התפריט כדי לפתוח את תיבת הדו-שיח New environment. מלאו את הטופס ובחרו ב-Add environment. הסשן החדש שלכם משתמש אז בסביבה שהוספתם.
- עריכת סביבה: מצאו את השורה שלה תחת Cloud. אם Cloud היא שורה אחת, בחרו בה כדי לפתוח את הרשימה. אם הסביבה שלכם לא רשומה תחת Cloud, בחרו בשורה More תחת הכותרת הזו. רחפו מעל שורת הסביבה ובחרו בסמל ההגדרות שמופיע מימין לה כדי לפתוח את תיבת הדו-שיח שלה.
כשמוסיפים סביבה או עורכים אחת משלכם, בחרו בשורה Network access, Setup script או Environment variables בתיבת הדו-שיח כדי לפתוח את ההגדרה הזו. אחרי השינוי האחרון, שמרו עם Add environment לסביבה חדשה או עם Save changes לסביבה קיימת. כדי לאחסן מפתח שהסשנים משתמשים בו בלי לראות אותו, ראו הוספת סודות רשת.
#הגדרת משתני סביבה
משתני סביבה משתמשים בפורמט .env, זוג KEY=value אחד בכל שורה. ערכים פשוטים לא צריכים מרכאות, ואם עוטפים ערך בזוג מרכאות תואם, המרכאות לא הופכות לחלק מהערך. עטפו ערך שנמשך על פני כמה שורות או שמכיל #: בערך לא עטוף, # מתחיל הערה ושאר השורה מושמט.
הדוגמה הבאה מגדירה שלושה משתנים.
NODE_ENV=development
LOG_LEVEL=debug
DATABASE_URL=postgres://localhost:5432/myappסשן קורא את ערכי הסביבה לתוך משתני סביבה רגילים, שכל פקודה ש-Claude מריץ יכולה לקרוא, חוץ ממשתני OTEL_*. Claude Code משתמש בהם לייצוא הטלמטריה שלו ולא מעביר אותם לפקודות שהוא מריץ.
בסביבה שמתארחת ב-Anthropic, סשן קורא את ערכי הסביבה כשיוצרים אותו, ושוב בכל פעם ש-Claude Code מתחיל אחר כך ב-VM של הסשן. זה קורה בשני מקרים:
- ה-VM משוחזר אחרי שהיה לא פעיל: אחרי כמה דקות בלי פעילות, ה-VM של סשן מושהה והקבצים שלו נשמרים. ההודעה הבאה שלכם משחזרת את אותו VM ומפעילה את Claude Code שוב.
- ה-VM נלקח בחזרה ונבנה מחדש: אם ה-VM המושהה נלקח בחזרה מאז, פתיחה מחדש של הסשן מקצה VM חדש.
אחרי שעורכים, מוסיפים או מסירים משתנה, סשן קיים בסביבה שמתארחת ב-Anthropic שומר את הערכים שקרא לאחרונה עד שה-VM שלו משוחזר או נבנה מחדש בפעם הבאה, ומשתמש בשינוי שלכם מאותו רגע והלאה. ה-VM שלו מושהה מעצמו ברגע שהסשן לא פעיל, ואי אפשר להשהות אותו בעצמכם. כדי להשתמש בערך חדש מיד, בקשו מ-Claude להגדיר אותו בפקודה שהוא מריץ, לדוגמה LOG_LEVEL=trace npm test, או התחילו סשן חדש.
סשן ענן גם מגדיר כמה משתנים בעצמו כשהוא מתחיל. עבור CLAUDE_AUTOCOMPACT_PCT_OVERRIDE, הערך שהסשן מגדיר דורס ערך שאתם מוסיפים כאן, ולכן להוספת המפתח הזה כאן אין השפעה.
כל מי שמשתמש בסביבה יכול לקרוא את הערכים. בסביבה שמתארחת ב-Anthropic, השתמשו בסוד רשת למפתח שפרוקסי הסוכן יכול לצרף לבקשה. הבקשות שלעולם לא מקבלות סוד מפורטות שם.
#הוספת סודות רשת
סוד רשת הוא מפתח API או טוקן שאתם מאחסנים בסביבת ענן, כדי ש-Claude יוכל לקרוא ל-API הזה מכל סשן בסביבה בלי לראות את המפתח. פרוקסי הסוכן של Anthropic מוסיף את המפתח לבקשות עבור המארחים שאתם מפרטים, אחרי שכל בקשה יוצאת מה-VM של הסשן, כך שהמפתח עצמו נשאר מחוץ ל-VM.
סודות רשת זמינים בתוכניות Pro, Max, Ultra, Team ו-Enterprise. כדי לבדוק אם אתם יכולים להוסיף אחד בעצמכם, ראו דרישות.
#דרישות
הדרישות האלה קובעות אם אתם יכולים להוסיף סוד, ואם פרוקסי הסוכן יכול להשתמש בו אחרי שהוסף:
- תפקיד: בכל תוכנית אתם יכולים להוסיף ולמחוק סודות בסביבות שלכם, בכל תפקיד. ב-Team וב-Enterprise, ל-Owners יש תפקיד מנהל ארגון בארגון claude.ai שלכם, ול-Admins אין. זה משנה את מה שאתם רואים במקרים האלה:
- הסביבה שלכם: בלי תפקיד מנהל ארגון, Add secret פותח טופס קצר יותר
- סביבה משותפת: Owners מוסיפים ומוחקים את הסודות שלה מהגדרות הניהול. בלי תפקיד מנהל ארגון, בקשו מ-Owner להוסיף את הסוד, כי לתיבת הדו-שיח של הסביבה אין מקטע Network secrets
- סוג סביבה: סביבת ענן שמתארחת ב-Anthropic ושכבר קיימת. לסביבה באירוח עצמי אין סודות רשת
- נגישות API: ה-API מקבל חיבורים מהאינטרנט, כי הבקשות יוצאות מהרשת של Anthropic
- מפתחות הצפנה: אם הארגון שלכם משתמש במפתחות הצפנה בניהול הלקוח, אי אפשר לשמור סודות רשת
#הוספת סוד
מוסיפים סודות אחד בכל פעם. כדי לשנות את המארחים או את הערך של סוד, מוחקים אותו ומוסיפים אותו שוב.
כדי להוסיף סוד לסביבה משותפת, פתחו אותה לעריכה מדף Cloud environments בהגדרות הניהול, ואז המשיכו משלב 2 במקטע Network secrets שלה. אם אתם בתוכנית Team או Enterprise ואין לכם תפקיד מנהל ארגון, בצעו את שלב 1 בסביבה שלכם, ואז מלאו את הטופס הקצר יותר.
1. פתיחת סודות הרשת של הסביבה
פתחו את הסביבה לעריכה ב-claude.ai/code. בתיבת הדו-שיח Edit cloud environment, בחרו בשורה Network secrets. אתם רואים את הסודות שכבר נמצאים בסביבה, כל אחד עם המארחים שהוא חל עליהם.
2. הוספת הסוד
בחרו ב-Add secret, שמסומן Add בהגדרות הניהול, ומלאו את הטופס. השאירו את ברירת המחדל של Secret type, Bearer, למפתח API שעובר בכותרת בקשה, ומלאו את השדות האלה:
- Name: תווית לסוד, כגון
Internal billing API - Allowed websites: המארחים של ה-API, כגון
api.example.com.*.בתחילת הערך מתאים לכל תת-דומיין - Custom headers: שורה אחת לכותרת שנושאת את המפתח. השורה מתחילה ב-
Authorizationכ-Name של הכותרת וב-Bearerכ-Prefix שלה. הדביקו את המפתח עצמו כ-Value. לכותרת כמוX-Api-Keyשמקבלת את הערך החשוף, שנו את השם ונקו את הקידומת
ל-API שמאמת בדרך אחרת, בחרו Secret type אחר. הרשימה זהה לזו ש-Claude Tag, שילוב Slack לתוכניות Team ו-Enterprise, מציע לחיבורים.
3. שמירת הסוד
בחרו ב-Add. הסוד מופיע ברשימה עם המארחים שלו, והוא נשמר בלי כפתור Save changes של תיבת הדו-שיח. אי אפשר לראות את הערך שוב אחרי השמירה.
כדי לאשר שהסוד עובד, התחילו סשן בסביבה ובקשו מ-Claude לקרוא ל-API, לדוגמה עם curl. ה-API עונה כאילו המפתח היה בבקשה, והמפתח לא מופיע במשתני הסביבה של הסשן ולא בשום קובץ. אם הרשימה מסמנת סוד Not sent, ההערה שמתחתיו אומרת למה ומה לעשות. שני סודות שהמארחים שלהם חופפים בלי להתאים בדיוק לא מקבלים סימון, ופרוקסי הסוכן שולח רק אחד מהם.
#הוספת סוד בלי תפקיד מנהל ארגון
אם אתם בתוכנית Team או Enterprise ואין לכם תפקיד מנהל ארגון, טופס Add secret מקבל סוד אחד למארח אחד. בחרו בשורה Network secrets של הסביבה שלכם ואז ב-Add secret. מלאו את השדות האלה ובחרו בכפתור Add secret של הטופס:
- Host: המארח האחד שמקבל את הסוד, כגון
api.example.com. הטופס לא מקבל תו כללי*. - Name: תווית אופציונלית לסוד
- Secret type: Token למפתח שעובר בכותרת בקשה, או Username and password. לטוקן, הדביקו את המפתח כ-Value
#אילו בקשות מקבלות את הסוד
פרוקסי הסוכן מצרף סוד לבקשה כשהמארח של הבקשה תואם לאחד שפירטתם בסוד הזה. סשנים יכולים להגיע למארחים האלה גם כשרמת גישת הרשת של הסביבה לא מאפשרת אותם בדרך אחרת, חוץ מהמארחים שלעולם לא מקבלים את הסוד. הסוד חל בכל סשן שרץ בסביבה, יהיה מי שהתחיל אותו אשר יהיה, עד שאתם מוחקים אותו.
#בקשות שלעולם לא מקבלות את הסוד
פרוקסי הסוכן לעולם לא מצרף סוד שאתם מוסיפים לבקשות האלה:
- GitHub: פרוקסי GitHub מאמת בקשות ל-GitHub, כך שאין צורך בסוד רשת עבורו
- ה-API של Anthropic ומרשמי חבילות ציבוריים:
api.anthropic.com,registry.npmjs.org,jsr.io,npm.jsr.io,pypi.org,files.pythonhosted.org,index.crates.ioו-proxy.golang.org - בקשות של סקריפט ההקמה: Claude Code מתחבר לפרוקסי הסוכן כשהוא מופעל, אחרי שסקריפט ההקמה רץ
- ייצוא הטלמטריה של Claude Code: Claude Code שולח את ייצוא הטלמטריה שלו בעצמו, ולא דרך פקודה שהוא מריץ, והבקשה הזו לא עוברת דרך פרוקסי הסוכן
#בחירת סביבה מה-CLI
הריצו את /remote-env בטרמינל כדי לבחור את סביבת ברירת המחדל לסשני ענן שאתם יוצרים מה-CLI, כגון claude --cloud. הפקודה פותחת בורר של הסביבות הקיימות שלכם ושומרת את הבחירה במפתח remote.defaultEnvironmentId בהגדרות המשתמש, כך שהיא חלה בכל פרויקט במחשב שלכם עד שתשנו אותה, אלא אם אותו מפתח מוגדר בשכבת הגדרות בעדיפות גבוהה יותר, כגון הגדרות פרויקט של מאגר.
מזהה של סביבה באירוח עצמי, שבצורתו ccpool_..., עוקב אחרי כלל מקור מחמיר יותר. ראו remote.defaultEnvironmentId לגבי שכבות ההגדרות שמהן Claude Code מכבד אותו.
/remote-env רק קובע את ברירת המחדל: הוא לא מתחיל סשן, והוא לא יכול להוסיף או לערוך סביבות. נהלו אותן מבורר הסביבות.
#העברת סביבה לארכיון
כדי להעביר לארכיון אחת מהסביבות שלכם, פתחו אותה לעריכה, ואז בחרו ב-Archive environment ואשרו. אם הסביבה משותפת עם הארגון שלכם, Owner מעביר אותה לארכיון מדף Cloud environments בהגדרות הניהול, אז בקשו מ-Owner אלא אם אתם Owner.
העברה לארכיון משפיעה על סשנים חדשים, ולא על סשנים שרצים:
- סשנים שכבר רצים בסביבה ממשיכים לעבוד.
- הסביבה נעלמת מהבורר ומ-
/remote-env, כך שאי אפשר לבחור בה לסשנים חדשים. - סודות רשת בסביבה נשארים מצורפים בסשנים הרצים שלה. מחקו כל סוד שאתם כבר לא רוצים לפני שאתם מעבירים לארכיון.
- שום סשן חדש לא יכול להתחיל בסביבה בארכיון, בשום משטח:
- ברירת מחדל שמורה ב-CLI: אם הסביבה הייתה ברירת המחדל השמורה שלכם ב-CLI, Claude Code מתחיל סשני ענן מה-CLI בסביבה שמתארחת ב-Anthropic כשיש אחת כזו ברשימה שלכם. אחרת, הוא מתחיל אותם בסביבה הראשונה ברשימה שלכם שאינה סביבת גשר Remote Control.
- הוגדר במפורש: כל דבר שהוגדר עם הסביבה במפורש, כגון משימת ענן מתוזמנת, לא יכול להתחיל בה סשנים חדשים. הפנו אותו לסביבה אחרת.
כשכבר אין צורך בסביבה שמתארחת ב-Anthropic, העבירו אותה לארכיון. אין אפשרות למחוק סביבה שמתארחת ב-Anthropic, לא בתיבת הדו-שיח של הסביבה ולא בדף הניהול Cloud environments. אם הסביבה באירוח עצמי, Owner יכול למחוק אותה מדף Cloud environments בהגדרות הניהול. אם אינכם Owner, בקשו מ-Owner למחוק אותה.
#סביבות משותפות לארגון
בתוכניות Team ו-Enterprise, Owner יכול ליצור סביבות ענן שמשותפות עם כל חבר בארגון. אותו תפקיד מנהל את כל השאר בדף הניהול Cloud environments, כולל סביבות באירוח עצמי. תפקיד Admin לא יכול לפתוח את הדף. הרשימה המלאה של התפקידים שיכולים לפתוח אותו היא זו של ניהול הגדרות שמנוהלות בשרת.
סביבות משותפות מופיעות בבורר הסביבות של כל חבר תחת כותרת Organization, אחרי הסביבות של החבר עצמו תחת Personal, כך שצוות יכול לתקנן על הגדרה אחת במקום שכל חבר ייצור אותה מחדש. בחירה בסמל ההגדרות של סביבה משותפת שם פותחת סיכום לקריאה בלבד של ההגדרה שלה, לכל חבר, כולל Owners.
Owner הופך סביבה לזמינה לארגון באחת משתי דרכים:
- יצירת סביבה משותפת: השתמשו בדף Cloud environments בהגדרות הניהול, וזה גם המקום שבו Owners עורכים ומעבירים לארכיון סביבות משותפות. לכל אחת יש שם, רמת גישת רשת, משתני סביבה בפורמט
.env, וסקריפט הקמה. - שיתוף סביבה אישית: פתחו אחת מהסביבות שלכם לעריכה בבורר הסביבות, ואז שתפו אותה משורת Who can use it. הסביבה שומרת על ה-ID שלה, כך שסשנים ומשימות מתוזמנות שכבר משתמשים בה לא מושפעים, וכל חבר יכול אז לראות אותה ולהתחיל בה סשנים.
Owners בוחרים את סביבת ברירת המחדל של הארגון בנפרד, ב-claude.ai/admin-settings/claude-code.
כדי לתת לסשנים של סביבה משותפת מפתח שהם לא יכולים לקרוא, הוסיפו סוד רשת כשעורכים את הסביבה בדף Cloud environments. אל תכללו סודות במשתנים שלה, כי הסשנים של כל חבר קוראים אותם.
#הגדרת הסביבה שערוץ Claude Tag משתמש בה
בערוצי Claude Tag, Claude עובד כזהות המשותפת של הארגון שלכם, ולא כחבר כלשהו, ולכן סשני ערוץ משתמשים רק בסביבות ברמת הארגון: סביבות משותפות או סביבות באירוח עצמי. כדי לתת לערוץ ערכת כלים שאינה מותקנת מראש, כגון .NET, Owner יכול ליצור סביבה משותפת מדף הניהול Cloud environments עם סקריפט הקמה שמתקין אותה. הפנו את הערוץ לסביבה באחת משתי דרכים:
- הגדירו סביבה משותפת או סביבה באירוח עצמי כסביבת ברירת המחדל של הארגון ב-claude.ai/admin-settings/claude-code.
- הצמידו אחת לערוץ בהגדרות הניהול של Claude Tag.
#גישה לרשת
כל סביבה מגדירה רמת גישה אחת לרשת, ששולטת בחיבורים היוצאים שהסשנים שלה יכולים לבצע. רמת ברירת המחדל, Trusted, מאפשרת רשמים של חבילות ודומיינים אחרים ברשימת ההיתר. Custom מקבל את רשימת הדומיינים שלכם.
כדי לשנות את הגישה לרשת של סביבה, פתחו אותה לעריכה והשתמשו בבורר Network access בתיבת הדו-שיח. סביבה משותפת נפתחת שם לקריאה בלבד, ולכן Owner משנה את הגישה שלה לרשת מעמוד Cloud environments בהגדרות הניהול. הפקד שפותח את הבורר מופיע בממשקי האפליקציה המפורטים תחת סביבת ברירת המחדל ובעורך המשימות המתוזמנות בענן. לסביבות אישיות אין עמוד נפרד בהגדרות החשבון של claude.ai.
כשמשנים את הגישה לרשת של סביבה שמתארחת ב-Anthropic, הסשנים הקיימים שלה עוקבים אחרי ההגדרה החדשה תוך כדקה, עבור בקשות שעוברות דרך רשימת ההיתר לרשת של הסשן. אין צורך להתחיל סשן חדש.
[!NOTE]
מחברי MCP שאתם מפעילים בסשן או במשימה מתוזמנת עובדים בלי להוסיף את המארחים שלהם ל-Allowed domains, כי תעבורת המחברים עוברת דרך שרתי Anthropic ולא דרך הרשת של הסשן. זה נשען על אותו ערוץ המופנה אל Anthropic שמצוין תחת אבטחה ובידוד. כבו כל מחבר שאינכם צריכים כדי להגביל לאילו כלים Claude יכול להגיע.
#רמות גישה
השדה Network access בתיבת הדו-שיח של הסביבה מקבל אחת מארבע רמות:
| רמה | חיבורים יוצאים |
|---|---|
| None | אין גישת רשת יוצאת דרך הרשת של הסשן |
| Trusted | דומיינים ברשימת ההיתר בלבד: רשמים של חבילות, GitHub, SDK-ים לענן |
| Full | כל דומיין |
| Custom | רשימת ההיתר שלכם, עם אפשרות לכלול את ברירות המחדל |
בכל רמה שתבחרו, סשנים עדיין יכולים להגיע לאלה, כי כל אחד מהם עובר בנתיב שלא עובר דרך רשימת ההיתר לרשת של הסשן:
- GitHub, דרך הפרוקסי הנפרד שלו
- מחברי MCP שאתם מפעילים, שהתעבורה שלהם עוברת דרך שרתי Anthropic
- המארחים שרשמתם בסודות הרשת של הסביבה, למעט המארחים שלעולם לא מקבלים את הסוד
- ה-API של Anthropic, לבקשות של Claude Code עצמו, גם ב-None, כפי שמצוין תחת אבטחה ובידוד
#התרת דומיינים ספציפיים
כדי להתיר דומיינים שאינם ברשימת Trusted, בחרו Custom בהגדרות הגישה לרשת של הסביבה, ואז רשמו דומיין אחד בכל שורה בשדה Allowed domains. הדוגמה הזו מתירה שלושה מארחים שפרויקט פנימי עשוי להזדקק להם.
api.example.com
*.internal.example.com
registry.example.comסשנים בסביבה הזו יכולים עכשיו להגיע ל-api.example.com, לכל תת-דומיין של internal.example.com, ול-registry.example.com, ולא לדומיינים אחרים דרך הרשת של הסשן. תעבורת GitHub, תעבורת מחברי MCP, ובקשות למארחים של סודות הרשת של הסביבה, מלבד המארחים שלעולם לא מקבלים את הסוד, לא עוברות דרך רשימת ההיתר הזו. *. בתחילת השורה מתאים לכל תת-דומיין. כדי לשמור גם את דומייני Trusted, סמנו Also include default list of common package managers. השאירו אותו לא מסומן כדי להתיר רק את מה שאתם רושמים.
אם הארגון שלכם משתמש ב-artifacts, אין צורך ב-*.frame.claudeusercontent.com ברשימה כדי שסשנים יקראו אותם. כשהרשימה משמיטה את המארח הזה, Claude Code קורא תוכן artifact דרך החיבור של הסשן ל-Anthropic. שמרו את המארח ברשימת היתר בשני מצבים:
- סשנים בסביבה הזו פותחים artifacts ציבוריים של ארגון אחר: Claude Code מביא אותם מהמארח ישירות, אז הוסיפו אותו לרשימה הזו.
- אתם מגדירים את ה-CLI המקומי או runner באירוח עצמי: שמרו את המארח ברשימת ההיתר הזו. ראו דרישות גישה לרשת ואת דרישות הרשת לאירוח עצמי.
לכל סביבה יש רשימת דומיינים מותרים משלה. אין רשימת היתר ברמת הארגון שמנהלים יכולים לדחוף לסביבות של כל חבר. גם הגדרה שמנוהלת בשרת לא מוסיפה דומיינים לרשימת ההיתר לרשת של סביבה. כדי לתת לצוות רשימה סטנדרטית אחת, Owner יכול ליצור סביבה משותפת לארגון עם גישת רשת Custom והרשימה הזו.
#פרוקסי GitHub
בסביבות שמתארחות ב-Anthropic, כל פעולות GitHub עוברות דרך פרוקסי ייעודי ששומר את פרטי הגישה האמיתיים שלכם ל-GitHub מחוץ ל-VM של הסשן, בלי תלות ברמת הגישה של הסביבה. סשנים בסביבה באירוח עצמי מאמתים פעולות git באמצעות פרטי גישה שהפריסה שלכם מספקת. Configure git מכסה את האפשרויות, כולל פרטי גישה שמונפקים לכל סשן והצטרפות לאותו פרוקסי. הפרוקסי מספק:
- פרטי גישה של Git: לקוח ה-git בתוך ה-VM משתמש ב-credential בהיקף מוגבל, שהפרוקסי מאמת ומחליף בטוקן GitHub האמיתי שלכם.
- בקשות API: בקשות מכלי GitHub המובנים, ומ-
ghתחת ה-placeholderproxy-injected, יוצאות כשפרטי הגישה האמיתיים שלכם מוחלפים בהן. - הגבלות push: הפרוקסי דוחה מחיקות ענפים ו-push של כל דבר שאינו ענף, כמו tag. הוא לא מגביל אילו ענפים push יכול לעדכן. כדי לעשות זאת, השתמשו בכללי הגנת ענפים או ב-rulesets ב-GitHub.
- היקף מאגר: הפרוקסי משרת בקשות GitHub API למאגרים שמצורפים לסשן. בקשת API למאגר אחר מקבלת 403 שההודעה שלו מתחילה ב-
GitHub access toומכילהis not enabled for this session. ארכיון מקור שאתם מביאים דרך כתובתgithub.com/{owner}/{repo}/archive/אוcodeload.github.comמקבל את אותו 403 כשהמאגר לא מצורף, גם אם הוא ציבורי. - הגבלות GraphQL: הפרוקסי דוחה בקשות לנקודת הקצה GraphQL של GitHub עם 403 שההודעה שלו מתחילה ב-
GitHub GraphQL is not available from Claude Code sessionsומציין את חלופת ה-REST,gh api repos/{owner}/{repo}/.... פקודות משנה שלghשמשתמשות ב-GraphQL, כמוgh prו-gh issue, מקבלות את אותו 403. ההגבלה חלה על כל בקשה דרך הפרוקסי בלי תלות בפרטי הגישה שאתם מספקים, כך ש-GH_TOKENשאתם מגדירים מקבל את אותו 403. Claude לא יכול להגיע דרך הפרוקסי ל-API של GitHub שקיימים רק ב-GraphQL, כמו Projects v2.
קבצים מ-commit במאגרים ציבוריים מגיעים דרך raw.githubusercontent.com, ופרוקסי האבטחה מטפל בהם. הדומיין הזה נמצא ברשימת Trusted כברירת מחדל, ולכן הקבצים האלה נשארים נגישים אלא אם רמת הגישה של הסביבה מוציאה אותו.
#פרוקסי אבטחה
סשנים בענן בסביבות שמתארחות ב-Anthropic רצים מאחורי פרוקסי רשת HTTP/HTTPS למטרות אבטחה ומניעת שימוש לרעה. בסביבה באירוח עצמי, תעבורה יוצאת יוצאת דרך גבול הרשת שלכם. כל תעבורת האינטרנט היוצאת מסשן שמתארח ב-Anthropic עוברת דרך הפרוקסי הזה, שמספק:
- הגנה מפני בקשות זדוניות
- הגבלת קצב ומניעת שימוש לרעה
#מה זמין בסשני ענן
בסביבות שמתארחות אצל Anthropic, כל סשן מקבל מכונה וירטואלית (VM) חדשה שמריצה Ubuntu 24.04 על x86_64, בלי קשר למערכת ההפעלה ולארכיטקטורת המעבד שלך, עם המאגר שלך משובט וערכות כלים נפוצות מותקנות מראש. כשתלות מספקת קבצים בינאריים שהודרו מראש, כמו gems של Ruby עם הרחבות מקוריות או wheels של Python שנבנו מראש, השתמש בבניית Linux של x86_64 שלה כדי להתאים ל-VM. הסעיף הזה מכסה את ברירות המחדל של אירוח Anthropic, את כלי GitHub המובנים, איך להריץ בדיקות ושירותים, את מגבלות המשאבים שכל VM מקבל, ואת מגבלות הזמן על עבודה ממושכת.
[!NOTE]
סשנים שהארגון שלך מנתב אל סביבה באירוח עצמי רצים על ה-runners שלך, עם הכלים שתמונת ה-runner שלך מספקת.
#מה עובר מההגדרות שלך
[!NOTE]
מתוך הגדרות המאגר בטבלה הזו, שרשור ענן בפרויקט טוען רק את
CLAUDE.mdבשורש המאגר, את.claude/CLAUDE.md, ואת קבצי.claude/rules/שאינם ספציפיים לנתיב. ראה מה שרשורים קולטים מהמאגרים שלך.
סשני ענן מתחילים משכפול חדש של המאגר שלך. כל מה שאתה מבצע אליו commit במאגר זמין. כל מה שהתקנת או הגדרת רק במכונה שלך אינו זמין בסשן. המדיניות של הארגון שלך מגיעה בנפרד דרך הגדרות שמנוהלות בשרת.
| זמין בסשני ענן | למה | |
|---|---|---|
CLAUDE.md של המאגר שלך | כן | חלק מהשכפול |
הוקים וכללי הרשאות ב-.claude/settings.json של המאגר שלך | כן, בסשן עם מאגר אחד | חלק מהשכפול. בסשן עם כמה מאגרים, ראה אילו הגדרות הוא קורא |
שרתי MCP ב-.mcp.json של המאגר שלך | כן, בסשן עם מאגר אחד | חלק מהשכפול, ונמצאים מתיקיית העבודה של הסשן. בסביבה באירוח עצמי, ראה הגדרות של איזה מאגר חלות |
.claude/rules/ של המאגר שלך | כן | חלק מהשכפול |
.claude/skills/, .claude/agents/, .claude/commands/ של המאגר שלך | כן | חלק מהשכפול |
תוספים ושווקים שמוצהרים ב-.claude/settings.json של המאגר שלך | לא | סשן ענן אינו מתקין את התוספים שמאגר מפעיל תחת enabledPlugins, כולל כאלה מהשווקים שהוא מציין תחת extraKnownMarketplaces |
| ההגדרות שמנוהלות בשרת של הארגון שלך | כן, למעט בסשנים של Claude Tag | נשלפות משרתי Anthropic כשהסשן מתחיל. ראה כיסוי משטחים לגבי איך availableModels נאכף בסשני ענן. הגדרות שנפרסות למכשיר שלך דרך MDM או קבצי הגדרות מנוהלים אינן חלות, כי הסשן רץ על VM שמנוהל על ידי Anthropic. בסביבה באירוח עצמי, הסשנים גם קוראים את קובץ ההגדרות המנוהל בתמונת ה-runner, לפי איך Claude Code משלב מקורות מנוהלים |
~/.claude/CLAUDE.md של המשתמש שלך | לא | נמצא במכונה שלך, ולא במאגר. ראה הוספת העדפות אישיות בלי commit למאגר |
~/.claude/skills/, ~/.claude/agents/, ~/.claude/commands/ של המשתמש שלך | לא | נמצאים במכונה שלך, ולא במאגר. בצע להם commit לתיקיית .claude/ של המאגר. סשני ענן טוענים אוטומטית skills שמפעילים ב-claude.ai |
| תוספים שמופעלים רק בהגדרות המשתמש שלך | לא | enabledPlugins ברמת המשתמש נמצא ב-~/.claude/settings.json במכונה שלך |
שרתי MCP שהוספת עם claude mcp add בהיקף המקומי כברירת מחדל או בהיקף המשתמש | לא | אלה נכתבים אל ~/.claude.json במכונה שלך, ולא למאגר. הוסף את השרת עם claude mcp add --scope project, שכותב את .mcp.json של המאגר, ובצע commit לקובץ הזה. סשן עם מאגר אחד טוען אותו |
משתני תעבורה בבלוק env של .claude/settings.json במאגר שלך, כמו NODE_EXTRA_CA_CERTS ומשתני אישור הלקוח של mTLS | לא | סביבת האירוח מנהלת את חיבור ה-API של הסשן, ולכן Claude Code מתעלם מהמפתחות האלה ורושם כל מפתח שהתעלם ממנו ביומן ה-debug של הסשן |
| מפתחות API וטוקנים לשירותים ש-Claude קורא אליהם | בסביבה שמתארחת אצל Anthropic, כסודות רשת | מוסיפים את המפתח פעם אחת בסביבה, וה-agent proxy מצרף אותו לבקשות אל המארחים שאתה מציין. מפתח שה-agent proxy אינו יכול לצרף נשאר במשתנה סביבה |
| אימות אינטראקטיבי כמו AWS SSO | לא | אינו נתמך. SSO דורש התחברות מבוססת דפדפן שאינה יכולה לרוץ בסשן ענן |
כדי שההגדרות שלך יהיו זמינות בסשני ענן, בצע להן commit למאגר.
כל מי שמשתמש בסביבה יכול לקרוא את משתני הסביבה שלה ואת סקריפט ה-setup. ההערה בתיבת הדו שיח תחת Environment variables אומרת זאת ומזהירה מפני שים של סודות שם. בסביבה שמתארחת אצל Anthropic, אחסן מפתח שה-agent proxy יכול לצרף כסוד רשת.
#הוספת העדפות אישיות בלי commit למאגר
בסביבה שמתארחת אצל Anthropic, הוסף סקריפט setup שכותב את ~/.claude/CLAUDE.md להעדפות שאתה מעדיף לא לשים במאגר משותף. Claude Code טוען את הקובץ הזה כהוראות משתמש בסשן. הדוגמה הזו מגדירה העדפה להודעת commit:
#!/bin/bash
mkdir -p ~/.claude
cat > ~/.claude/CLAUDE.md <<'EOF'
Use conventional commit messages.
EOFשים את הסקריפט על אחת מהסביבות שלך ולא על סביבה משותפת.
הרץ /context בסשן הענן הבא שלך, ואשר ש-/root/.claude/CLAUDE.md מופיע תחת Memory files.
#כלים מותקנים
סשני ענן מגיעים עם סביבות ריצה נפוצות לשפות, כלי בנייה ומסדי נתונים מותקנים מראש. הטבלה למטה מסכמת מה כלול לפי קטגוריה.
| קטגוריה | כלול |
|---|---|
| Python | Python 3.x עם pip, poetry, uv, black, mypy, pytest, ruff |
| Node.js | 20, 21 ו-22, עם npm, yarn, pnpm, bun¹, eslint, prettier, chromedriver |
| Ruby | 3.1, 3.2, 3.3 עם gem, bundler, rbenv |
| PHP | 8.3 עם Composer |
| Java | OpenJDK 21 עם Maven ו-Gradle |
| Go | Go עם תמיכה במודולים |
| Rust | rustc ו-cargo |
| C/C++ | GCC, Clang, cmake, ninja, conan |
| Docker | docker, dockerd, docker compose |
| מסדי נתונים | PostgreSQL 16, Redis 7.0 |
| דפדפן | Chrome for Testing ב-/usr/bin/google-chrome, עם משתנה הסביבה CHROME_PATH מוגדר לנתיב הזה |
| כלי עזר | git, gh, jq, yq, ripgrep, tmux, vim, nano |
¹ Bun מותקן, אבל יש לו בעיות תאימות ידועות ל-proxy בשליפת חבילות.
כדי לקבל את הגרסאות של רוב הכלים בטבלה הזו, בקש מ-Claude להריץ check-tools בסשן ענן. זו פקודת shell שמותקנת על ה-VM של הסשן, ולא פקודה שמקלידים עם /. מבקשים מ-Claude כי Claude מריץ עבורך את כל פקודות ה-VM. לכלי שהוא אינו מדווח עליו, כמו Ruby, PHP, bun, PostgreSQL או Redis, בקש מ-Claude להריץ את פקודת הגרסה של הכלי עצמו, לדוגמה psql --version.
גרסאות Node.js מותקנות ב-/opt/node20, ב-/opt/node21 וב-/opt/node22, ו-22 נמצא על PATH כברירת מחדל. כדי לעבוד עם גרסה אחרת, בקש מ-Claude להוסיף בתחילת PATH את תיקיית bin של אותה גרסה, כמו /opt/node20/bin.
ערכות כלים שאינן ברשימה הזו, כמו .NET SDK, אינן מותקנות מראש גם כשמאגרי החבילות שלהן נמצאים ברשימת ההיתרים כברירת מחדל. התקן אותן עם סקריפט setup.
#עבודה עם issues ו-pull requests של GitHub
סשני ענן כוללים כלי GitHub מובנים שמאפשרים ל-Claude לקרוא issues, להציג pull requests, לשלוף diffs ולפרסם תגובות בלי שום הקמה. הכלים האלה מאמתים דרך פרוקסי GitHub לפי השיטה שהגדרת תחת אפשרויות אימות GitHub, כך שהטוקן שלך אינו נכנס לקונטיינר.
אפשר להגדיר GH_TOKEN או GITHUB_TOKEN בעצמך בהגדרות הסביבה, או להשאיר את שניהם לא מוגדרים ולתת לפרוקסי GitHub לאמת עבורך:
- אם הגדרת טוקן, הוא עובר אל הקונטיינר בלי שינוי, כך שהסקריפטים שלך ו-
ghCLI של GitHub משתמשים בו ישירות. - אם לא הגדרת אף אחד מהם ופרוקסי GitHub מטפל באימות של הסשן שלך, שני המשתנים נקראים כמחרוזת המציינת מקום
proxy-injectedבפקודות ש-Claude מריץ, והפרוקסי מחליף את האישורים האמיתיים שלך בבקשות יוצאות אל GitHub. קריאותgh apiלמאגרים מחוברים עובדות בלי טוקן משלך, אבל סקריפט שקורא אתGITHUB_TOKENישירות מקבל את המציין מקום, ולא טוקן שמיש.
טוקן שאתה מגדיר הוא משתנה סביבה רגיל, ולכן כל מי שמשתמש בסביבה יכול לקרוא אותו. נתיב הפרוקסי שומר את האישור מחוץ להגדרת הסביבה ומחוץ ל-VM של הסשן.
כדי לבדוק איזה מקרה חל על הסשן שלך, בקש מ-Claude להריץ echo $GH_TOKEN.
gh CLI של GitHub מותקן מראש. אם אתה צריך פעולת GitHub שהכלים המובנים אינם מכסים, בקש מ-Claude לקרוא ל-REST API עם gh api. גם פקודות משנה של gh שמשתמשות ב-REST API, כמו gh workflow list, עובדות. הפרוקסי דוחה פקודות משנה שמשתמשות ב-GraphQL, כמו gh pr ו-gh issue. gh קורא את GH_TOKEN אוטומטית, כך שאין צורך להריץ gh auth login.
#קישור הפלט בחזרה לסשן
לכל סשן ענן יש כתובת transcript ב-claude.ai, והסשן יכול לקרוא את המזהה שלו ממשתנה הסביבה CLAUDE_CODE_REMOTE_SESSION_ID. השתמש בזה כדי לשים קישור שאפשר לעקוב אחריו בגופי PR, בהודעות commit, בפוסטים ב-Slack או בדוחות שנוצרים, כדי שסוקר יוכל לפתוח את ההרצה שיצרה אותם.
commits ש-Claude יוצר בסשן ענן כוללים trailer של git מסוג Claude-Session: <url>, וגופי PR כוללים את כתובת הסשן בשורה נפרדת. כדי להשמיט את ה-trailer ואת הקישור בגוף ה-PR, הגדר את attribution.sessionUrl ל-false.
כדי לכלול את קישור הסשן במשהו שאינו commit או PR, כמו הודעת Slack ש-Claude מפרסם או קובץ דוח שהוא כותב, בקש מ-Claude להריץ את הפקודה הבאה והשתמש בפלט שלה. הפקודה ממירה את הקידומת cse_ בערך משתנה הסביבה לקידומת session_ שכתובת ה-transcript מצפה לה:
echo "https://claude.ai/code/${CLAUDE_CODE_REMOTE_SESSION_ID/#cse_/session_}"#הרצת בדיקות, הפעלת שירותים והוספת חבילות
אין לך shell אל ה-VM של הסשן. Claude מריץ עבורך כל פקודה, ולכן נסח את המשימות בסעיף הזה כבקשות בפרומפט שלך.
#הרצת בדיקות
Claude מריץ בדיקות כחלק מהעבודה על משימה. בקש זאת בפרומפט שלך, כמו "תקן את הבדיקות שנכשלות ב-tests/" או "הרץ pytest אחרי כל שינוי." מריצי בדיקות שמגיעים עם ערכות הכלים המותקנות מראש, כמו pytest ו-cargo test, עובדים בלי הקמה נוספת. מריץ שהפרויקט שלך מצהיר עליו כתלות, כמו jest, מותקן עם התלויות שלך.
#הפעלת שירותים
PostgreSQL ו-Redis מותקנים מראש אבל אינם רצים כברירת מחדל. בקש מ-Claude להפעיל את מה שאתה צריך. הפקודות שהוא מריץ הן:
service postgresql startservice redis-server startDocker זמין להרצת שירותים בקונטיינרים. בקש מ-Claude להריץ docker compose up כדי להפעיל את שירותי הפרויקט שלך. גישת רשת לשליפת images עוקבת אחרי רמת הגישה של הסביבה שלך, וברירות המחדל המהימנות כוללות את Docker Hub ומרשמים נפוצים אחרים.
אם ה-images שלך גדולים או איטיים לשליפה, הוסף docker compose pull או docker compose build לסקריפט ה-setup שלך. מטמון הסביבה שומר את ה-images שנשלפו, כך שלכל סשן חדש הם נמצאים על הדיסק. המטמון שומר קבצים בלבד, ולא תהליכים רצים, ולכן Claude עדיין מפעיל את הקונטיינרים בכל סשן.
#הוספת חבילות
כדי להוסיף חבילות שאינן מותקנות מראש, השתמש בסקריפט setup. מטמון הסביבה שומר את מה שהסקריפט מתקין, כך שחבילות שמתקינים שם זמינות בתחילת כל סשן בלי התקנה מחדש בכל פעם. אפשר גם לבקש מ-Claude להתקין חבילות במהלך הסשן, אבל ההתקנות האלה אינן עוברות לסשנים אחרים.
#מגבלות משאבים
סשני ענן בסביבות שמתארחות אצל Anthropic רצים עם תקרות משאבים משוערות שעשויות להשתנות עם הזמן:
- 4 vCPUs
- 16 GB של RAM
- 30 GB של דיסק
ה-VM עשוי לעצור משימות שצריכות זיכרון רב בהרבה, כמו עבודות בנייה גדולות או בדיקות שצורכות הרבה זיכרון. לעומסים מעבר למגבלות האלה, השתמש ב-Remote Control כדי להריץ את Claude Code על החומרה שלך, או הרץ סשני ענן בסביבה באירוח עצמי על מחשוב שהארגון שלך מפעיל.
#מגבלות זמן
בסביבות שמתארחות אצל Anthropic, מגבלות הזמן האלה חלות על עבודה ממושכת בסשן ענן, כמו בנייה, התקנה או הרצת בדיקות. כל פריט מקשר אל הסעיף שמגדיר את המגבלה.
פקודות ש-Claude מריץ: סביבת ענן אינה מגדירה timeout משלה לפקודות, ולכן חלות ברירות המחדל של כלי Bash. Claude ממתין 2 דקות לפקודה בחזית כברירת מחדל, ויכול לבקש עד 10 דקות.
כשפקודה מגיעה ל-timeout שלה, Claude Code מעביר אותה לרקע במקום לעצור אותה, אלא אם הפקודה מתחילה ב-
sleep. פקודה שהועברה כך יכולה להמשיך לרוץ עד 30 דקות נוספות לפני ש-Claude Code עוצר אותה במגבלת הזמן לרקע שלה. הגדרתBASH_DEFAULT_TIMEOUT_MSמעל1800000אלפיות שנייה מאריכה גם את המגבלה הזו וגם את ברירת המחדל בחזית.הוקי SessionStart: Claude Code מבטל הוק
commandאחרי 600 שניות, אלא אם מגדיריםtimeout, בשניות, על רשומת ההוק. Claude Code אינו אוכף את ה-timeout על הוק שמריצים עםasync: true.סקריפט setup: סקריפט שנמשך יותר מכחמש דקות בערך אינו נשמר במטמון. דרישות הסקריפט מכסות איך להישאר מתחת לזה.
סשנים בלי פעילות: אחרי כמה דקות בלי פעילות, ה-VM של הסשן מושהה והקבצים שלו נשמרים, ו-VM מושהה יכול להילקח בחזרה מאוחר יותר. הגדרת משתני סביבה מתארת מה סשן קולט בכל מקרה, וסביבה שפג תוקפה מכסה איך לפתוח מחדש סשן שה-VM שלו נלקח בחזרה.
כדי להעלות את ה-timeout של פקודות בסשנים של סביבה, הוסף את BASH_DEFAULT_TIMEOUT_MS ו-BASH_MAX_TIMEOUT_MS למשתני הסביבה שלה. שניהם מקבלים אלפיות שנייה. לדוגמה, BASH_DEFAULT_TIMEOUT_MS=600000 הופך 10 דקות לברירת המחדל.
#סקריפטי הגדרה
סקריפט הגדרה הוא סקריפט Bash שרץ כשסשן ענן חדש מתחיל, לפני ש Claude Code עולה. השתמש בסקריפטי הגדרה כדי להתקין תלויות, להגדיר כלים, או להביא כל דבר שהסשן צריך ואינו מותקן מראש.
הסקריפטים רצים כ root על Ubuntu 24.04, ולכן apt install ורוב מנהלי החבילות של שפות עובדים.
#הוספת סקריפט הגדרה
כדי להוסיף סקריפט הגדרה לסביבה שלך, אפשר להקליד או להדביק אותו, או לטעון קובץ טקסט כגון setup.sh. הוסף או ערוך את הסביבה ובחר בשורה Setup script. הזן את הסקריפט בתיבה שנפתחת, או בחר Choose file כדי להחליף את תוכן התיבה בטקסט של קובץ עד 64 KB. אחר כך בחר Add environment או Save changes.
הדוגמה הזו מתקינה את ShellCheck, שאינו מותקן מראש.
#!/bin/bash
apt update && apt install -y shellcheck#דרישות הסקריפט
לסקריפט הגדרה יש ארבעה אילוצים שצריך לכתוב סביבם:
- יציאה עם 0: אם הסקריפט יוצא עם קוד שאינו 0, הסשן נכשל בעלייה או עולה בלי מה שהסקריפט נכשל להתקין. הוסף
|| trueלפקודות שאינן קריטיות כדי שכשל התקנה לסירוגין לא יכשיל את הסקריפט. - סיום בתוך חמש דקות: שמור על זמן הריצה הכולל של הסקריפט מתחת לכחמש דקות כדי שמטמון הסביבה יוכל להיבנות. כשההגדרה נמשכת יותר מזה, הסביבה לא נשמרת במטמון. הרץ התקנות בלתי תלויות במקביל עם
&וwait, והעבר כל הורדה בודדת שלא נכנסת בזמן אל הוק SessionStart שמפעיל אותה ברקע. אם סשנים חדשים נתקעים או שזמן ההגדרה שלהם אוזל, ראה סשנים חדשים נתקעים או שזמן ההגדרה שלהם אוזל. - גישת רשת להתקנות: התקנות חבילות צריכות להגיע לרשמי חבילות. רמת Trusted שבברירת המחדל מכסה רשמי חבילות נפוצים, כולל npm, PyPI, RubyGems ו crates.io. עם גישת רשת None, ההתקנות נכשלות.
- המשתנים של הסביבה עדיין לא מוגדרים: הסקריפט רץ לפני שהסשן מגדיר את משתני הסביבה של הסביבה. הגדר כל ערך שהסקריפט צריך בתוך הסקריפט עצמו.
#מטמון הסביבה
סקריפט ההגדרה רץ בפעם הראשונה שאתה מתחיל סשן בסביבה. כשההגדרה מסתיימת בתוך כחמש דקות, Anthropic יוצרת snapshot של מערכת הקבצים ומשתמשת שוב ב snapshot הזה כנקודת ההתחלה לסשנים מאוחרים יותר. סשנים חדשים מתחילים כשהתלויות, הכלים ותמונות Docker שלך כבר על הדיסק, ומדלגים על שלב סקריפט ההגדרה. כך ההפעלה נשארת מהירה גם כשהסקריפט מתקין toolchains גדולים או מושך תמונות קונטיינר. אם ההגדרה נמשכת יותר מכחמש דקות בערך, הסביבה לא נשמרת במטמון.
המטמון הוא snapshot של מערכת הקבצים, ולכן הוא שומר את מה שסקריפט ההגדרה כותב לדיסק ומאבד כל דבר שרק רץ. חבילות שאתה מתקין, תמונות Docker שאתה מושך, וקבצים שאתה כותב, כולם עוברים הלאה. מסד נתונים שהסקריפט הפעיל, מחסנית docker compose up, או כל תהליך רקע אחר, לא עוברים. הפעל אותם לכל סשן על ידי בקשה מ Claude או עם הוק SessionStart.
סקריפט ההגדרה רץ שוב כדי לבנות מחדש את המטמון כשאתה משנה את סקריפט ההגדרה של הסביבה או את מארחי הרשת המותרים, וכשהמטמון מגיע לפקיעתו אחרי כשבעה ימים. בסביבה שמתארחת ב Anthropic, סקריפט ההגדרה לא רץ כש VM של סשן משוחזר אחרי שהיה לא פעיל, ולכן שינוי בסקריפט מגיע לסשן קיים רק כשה VM שלו נלקח בחזרה ונבנה מחדש. כדי להחיל שינוי מיד, הרץ את הפקודות בסשן או התחל סשן חדש.
אין צורך להפעיל מטמון או לנהל snapshots בעצמך.
#סקריפטי הגדרה מול הוקי SessionStart
השתמש בסקריפט הגדרה כדי להכין את ה VM עצמו: toolchains וכלי CLI שאינם מותקנים מראש. השתמש בהוק SessionStart להגדרת פרויקט שצריכה לרוץ בכל מקום, בענן ובמחשב המקומי, כמו npm install.
סקריפטי הגדרה והוקי SessionStart רצים בסדר קבוע כשסשן ענן מתחיל. הטבלה משווה איפה מגדירים אותם, מתי הם רצים, ואיפה הם רצים.
| סקריפטי הגדרה | הוקי SessionStart | |
|---|---|---|
| איפה מגדירים אותם | תיבת הדו שיח של הסביבה ב claude.ai/code, ובנוסף עמוד הניהול Cloud environments עבור סביבות משותפות | קובץ הגדרות כגון .claude/settings.json של המאגר. ראה מה עובר מההגדרה שלך לגבי אילו קבצים מגיעים לסשן ענן |
| מתי הם רצים | לפני ש Claude Code עולה, ומדולגים כשקיימת סביבה במטמון | אחרי ש Claude Code עולה, בכל סשן, כולל סשן שחודש |
| איפה הם רצים | רק בסשני ענן | בסשנים מקומיים ובסשני ענן |
אם יש לך הוקי SessionStart בקובץ ~/.claude/settings.json ברמת המשתמש, אל תצפה להם בענן. הגדרות ברמת המשתמש נשארות על המחשב שלך. אילו הוקים אחרים רצים תלוי במקום שבו הסשן רץ:
- סביבה שמתארחת ב Anthropic: Claude Code מריץ הוקים מההגדרות שמנוהלות בשרת של הארגון שלך, ומחוץ לשרשור של פרויקט, מהמאגר. סשנים של Claude Tag לא מקבלים הגדרות שמנוהלות בשרת, ולכן הוקים מהגדרות שמנוהלות בשרת לא רצים שם.
- סביבה באירוח עצמי: Claude Code מריץ גם את ההוקים שהמפעיל שתל מתוך
~/.claude/של מארח ה runner, ואת ההוקים בקובץ ההגדרות המנוהלות של תמונת ה runner כשהקובץ הזה הוא אחד מהמקורות המנוהלים ש Claude Code מחיל.
#התקנת תלויות עם הוק SessionStart
כדי להתקין תלויות רק בסשני ענן שמחוץ לשרשורים של פרויקט, צרף הוק SessionStart לסקריפט שבודק איפה הוא רץ.
קודם, הוסף הוק SessionStart לקובץ .claude/settings.json של המאגר. ההגדרה הזו אומרת ל Claude Code להריץ את scripts/install_pkgs.sh מהמאגר שלך בכל פעם שסשן מתחיל או מתחדש:
{
"hooks": {
"SessionStart": [
{
"matcher": "startup|resume",
"hooks": [
{
"type": "command",
"command": "bash \"$CLAUDE_PROJECT_DIR\"/scripts/install_pkgs.sh"
}
]
}
]
}
}ה matcher מגביל את ההוק לאירועים startup ו resume, ו $CLAUDE_PROJECT_DIR מצביע על שורש המאגר, כך שההוק מוצא את הסקריפט בלי תלות בתיקיית העבודה של הסשן.
אחר כך, צור את הסקריפט בנתיב scripts/install_pkgs.sh. הוא יוצא מיד כשהוא מחוץ לענן, ואחר כך מתקין את התלויות שלך. הוא מדלג על npm install כל עוד package.json, package-lock.json והסקריפט עצמו לא השתנו מאז ההתקנה המוצלחת האחרונה:
#!/bin/bash
if [ "$CLAUDE_CODE_REMOTE" != "true" ]; then
exit 0
fi
cd "$CLAUDE_PROJECT_DIR" || exit 1
hashes=node_modules/.install_pkgs.sha256
if ! sha256sum --check --status "$hashes" 2>/dev/null; then
# Delete the old hashes first, so a failed install runs again next time
rm -f "$hashes"
if npm install; then
sha256sum scripts/install_pkgs.sh package.json package-lock.json > "$hashes" || rm -f "$hashes"
fi
fi
# pip skips requirements that are already satisfied
pip install -r requirements.txt
exit 0בדיקת CLAUDE_CODE_REMOTE היא מה שתוחם את ההתקנה לסשני ענן: סביבת ה VM של הסשן נושאת את המשתנה הזה כ true, והוא אף פעם לא true במחשב המקומי, ולכן במחשב הנייד שלך הסקריפט יוצא לפני שהוא מתקין משהו.
כדי לוודא ש npm install הצליח, התחל סשן ענן ובקש מ Claude להציג את node_modules/.install_pkgs.sha256. הקובץ מציג hash לכל אחד משלושת הקבצים. אם הקובץ חסר, בקש מ Claude להריץ npm install ולדווח על השגיאה.
[!NOTE]
אם
npm installקורא קבצים אחרים, כגוןpackage.jsonשל workspace, קובץ.npmrc, או הקלטים של סקריפטpostinstallשלך, הוסף אותם לפקודתsha256sumששומרת את ה hashes. אחרת, אתה נשאר עם החבילות הישנות אחרי שאחד מהקבצים האלה משתנה.
#מגבלות בסשני ענן
הוקי SessionStart מתנהגים בענן כמו במחשב המקומי, עם הסייגים האלה:
- מאגר אחד לכל סשן: בסביבה שמתארחת ב Anthropic, סשן עם כמה מאגרים לא טוען הוקים מקובץ
.claude/settings.jsonשל אף מאגר, ולכן הוק SessionStart שאתה מגדיר שם לא רץ. התקן תלויות לסשנים האלה עם סקריפט הגדרה. לסביבה באירוח עצמי, ראה ההגדרות של איזה מאגר חלות. - לא בשרשורי ענן של פרויקט: שרשור ענן בפרויקט לא מריץ הוקים מקובץ
.claude/settings.jsonשל מאגר, יהיה מספר המאגרים אשר יהיה. בסביבה שמתארחת ב Anthropic, התקן תלויות לשרשורים עם סקריפט הגדרה. בסביבה באירוח עצמי, השתמש בהוק בההגדרות של מארח ה runner. - אין תחימה לענן בלבד: הוקים רצים גם בסשנים מקומיים וגם בסשני ענן. כדי לדלג על הרצה מקומית, צא מוקדם אלא אם משתנה הסביבה
CLAUDE_CODE_REMOTEהואtrue, כמו שסקריפט התקנת התלויות עושה. - דורש גישת רשת: פקודות התקנה צריכות להגיע לרשמי חבילות. אם הסביבה שלך משתמשת בגישת רשת None, ההוקים האלה נכשלים. רשימת ההיתר שבברירת המחדל תחת Trusted מכסה את npm, PyPI, RubyGems ו crates.io.
- תאימות ל proxy: בסביבות שמתארחות ב Anthropic, כל התעבורה היוצאת עוברת דרך proxy אבטחה, וחלק ממנהלי החבילות לא עובדים איתו נכון. Bun הוא דוגמה ידועה. בסביבה באירוח עצמי, התעבורה היוצאת עוברת דרך גבול הרשת שלך.
- מוסיף השהיה בהפעלה: הוקים רצים בכל פעם שסשן מתחיל או מתחדש, בעוד שסקריפטי הגדרה נהנים ממטמון הסביבה. שמור על סקריפטי התקנה מהירים על ידי דילוג על עבודה שכבר בוצעה, כמו שסקריפט התקנת התלויות עושה.
כדי להתאים אישית את תמונת הבסיס, השתמש בסקריפט הגדרה כדי להתקין את מה שאתה צריך מעל התמונה שסופקה, או הרץ תמונה משלך כקונטיינר לצד Claude עם docker compose. החלפה מלאה של תמונת הבסיס עדיין לא נתמכת.
#דומיינים מותרים כברירת מחדל
עם גישת רשת Trusted, סשנים יכולים להגיע לדומיינים הבאים כברירת מחדל. דומיינים שמסומנים ב-* מציינים התאמת תת דומיין עם תו כללי, כך ש-*.gcr.io מאפשר כל תת דומיין של gcr.io.
#שירותי Anthropic
- api.anthropic.com
- docs.claude.com
- platform.claude.com
- code.claude.com
- claude.ai
- claude.com
- support.claude.com
- anthropic.com
- www.anthropic.com
#בקרת גרסאות
- github.com
- www.github.com
- api.github.com
- npm.pkg.github.com
- raw.githubusercontent.com
- pkg-npm.githubusercontent.com
- objects.githubusercontent.com
- release-assets.githubusercontent.com
- codeload.github.com
- avatars.githubusercontent.com
- camo.githubusercontent.com
- gist.github.com
- gitlab.com
- www.gitlab.com
- registry.gitlab.com
- bitbucket.org
- www.bitbucket.org
- api.bitbucket.org
#רשומות קונטיינרים
- registry-1.docker.io
- auth.docker.io
- index.docker.io
- hub.docker.com
- www.docker.com
- production.cloudflare.docker.com
- production.cloudfront.docker.com
- download.docker.com
- gcr.io
- *.gcr.io
- ghcr.io
- mcr.microsoft.com
- *.data.mcr.microsoft.com
- public.ecr.aws
#פלטפורמות ענן
- cloud.google.com
- accounts.google.com
- gcloud.google.com
- *.googleapis.com
- storage.googleapis.com
- compute.googleapis.com
- container.googleapis.com
- azure.com
- portal.azure.com
- microsoft.com
- www.microsoft.com
- *.microsoftonline.com
- packages.microsoft.com
- dotnet.microsoft.com
- dot.net
- visualstudio.com
- dev.azure.com
- *.amazonaws.com
- *.api.aws
- oracle.com
- www.oracle.com
- java.com
- www.java.com
- java.net
- www.java.net
- download.oracle.com
- yum.oracle.com
- *.r2.cloudflarestorage.com
#מנהלי חבילות של JavaScript ו-Node
- registry.npmjs.org
- www.npmjs.com
- www.npmjs.org
- npmjs.com
- npmjs.org
- yarnpkg.com
- registry.yarnpkg.com
- jsr.io
- npm.jsr.io
#מנהלי חבילות של Python
- pypi.org
- www.pypi.org
- files.pythonhosted.org
- pythonhosted.org
- test.pypi.org
- pypi.python.org
- pypa.io
- www.pypa.io
#מנהלי חבילות של Ruby
- rubygems.org
- www.rubygems.org
- api.rubygems.org
- index.rubygems.org
- ruby-lang.org
- www.ruby-lang.org
- rubyforge.org
- www.rubyforge.org
- rubyonrails.org
- www.rubyonrails.org
- rvm.io
- get.rvm.io
#מנהלי חבילות של Rust
- crates.io
- www.crates.io
- index.crates.io
- static.crates.io
- rustup.rs
- static.rust-lang.org
- www.rust-lang.org
#מנהלי חבילות של Go
- proxy.golang.org
- sum.golang.org
- index.golang.org
- golang.org
- www.golang.org
- goproxy.io
- pkg.go.dev
#מנהלי חבילות של JVM
- maven.org
- repo.maven.org
- central.maven.org
- repo1.maven.org
- repo.maven.apache.org
- maven.google.com
- jcenter.bintray.com
- gradle.org
- www.gradle.org
- services.gradle.org
- plugins.gradle.org
- plugins-artifacts.gradle.org
- kotlinlang.org
- www.kotlinlang.org
- spring.io
- repo.spring.io
#מנהלי חבילות אחרים
- packagist.org (PHP Composer)
- www.packagist.org
- repo.packagist.org
- nuget.org (.NET NuGet)
- www.nuget.org
- api.nuget.org
- pub.dev (Dart/Flutter)
- api.pub.dev
- hex.pm (Elixir/Erlang)
- www.hex.pm
- cpan.org (Perl CPAN)
- www.cpan.org
- metacpan.org
- www.metacpan.org
- api.metacpan.org
- cocoapods.org (iOS/macOS)
- www.cocoapods.org
- cdn.cocoapods.org
- haskell.org
- www.haskell.org
- hackage.haskell.org
- swift.org
- www.swift.org
#הפצות לינוקס
- archive.ubuntu.com
- security.ubuntu.com
- ubuntu.com
- www.ubuntu.com
- *.ubuntu.com
- ppa.launchpad.net
- launchpad.net
- www.launchpad.net
- *.nixos.org
#כלי פיתוח ופלטפורמות
- dl.k8s.io (Kubernetes)
- pkgs.k8s.io
- k8s.io
- www.k8s.io
- releases.hashicorp.com (HashiCorp)
- apt.releases.hashicorp.com
- rpm.releases.hashicorp.com
- archive.releases.hashicorp.com
- hashicorp.com
- www.hashicorp.com
- repo.anaconda.com (Anaconda/Conda)
- conda.anaconda.org
- anaconda.org
- www.anaconda.com
- anaconda.com
- continuum.io
- apache.org (Apache)
- www.apache.org
- archive.apache.org
- downloads.apache.org
- eclipse.org (Eclipse)
- www.eclipse.org
- download.eclipse.org
- nodejs.org (Node.js)
- www.nodejs.org
- developer.apple.com
- developer.android.com
- pkg.stainless.com
- binaries.prisma.sh
#שירותי ענן וניטור
- http-intake.logs.datadoghq.com
- *.datadoghq.com
- *.datadoghq.eu
- api.honeycomb.io
#הפצת תוכן ומראות
- sourceforge.net
- *.sourceforge.net
- packagecloud.io
- *.packagecloud.io
- fonts.googleapis.com
- fonts.gstatic.com
#סכמה ותצורה
- json-schema.org
- www.json-schema.org
- json.schemastore.org
- www.schemastore.org
#Model Context Protocol
- *.modelcontextprotocol.io
#משאבים קשורים
- הפניה לסשנים בענן: התחלה, ניהול ושיתוף של סשנים בענן
- התחלה מהירה לסשנים בענן: חיבור GitHub והתחלת סשן הענן הראשון
- Claude Tag: סשנים שקלוד מתחיל מ-Slack רצים באותן סביבות
- משימות מתוזמנות בענן: הרצות מתוזמנות משתמשות באותן סביבות ובאותן רמות גישה לרשת
- Remote Control: הרצת סשנים על הרשת והקבצים של המחשב שלך במקום זאת
- סביבות באירוח עצמי: הרצת סשנים בענן על התשתית של הארגון
- הוקים של SessionStart: הגדרה שמקובעת במאגר ורצה בסשנים מקומיים ובענן
- הגדרות שמנוהלות בשרת: מדיניות ארגון שנמסרת ממסוף הניהול