پایگاه دانش

استقرار یک وب‌سایت استاتیک در حساب Azure Static Web Apps خودتان

یک service principal در Azure با نقش Contributor روی یک گروه منابع ایجاد کرده و آن را متصل کنید، تا سایت‌های استاتیک شما از مخزن خودتان بر روی اشتراک Azure خودتان ساخته شوند.

اتصال آن چه کمکی به شما می‌کند

اتصال حساب Azure Static Web Apps متعلق به خودتان به شما امکان می‌دهد تا از داشبورد Zinn® خود، یک سایت استاتیک را در حساب Azure Static Web Apps خودتان منتشر کنید. مالکیت پروژه و پرداخت صورت‌حساب با شماست؛ ما فرایند استقرار (deploy)، دامنه اختصاصی و رکوردهای DNS را مدیریت می‌کنیم.

پیش از شروع

یک اشتراک Azure، یک گروه منابع (resource group) برای سایت‌ها، و یک حساب متصل‌شدهٔ GitHub، GitLab یا Bitbucket شامل کدها — زیرا Azure Static Web Apps فرآیند ساخت را از یک مخزن (repository) انجام می‌دهد. پلن رایگان Azure اجازه استفاده تجاری و دو دامنه اختصاصی برای هر برنامه را می‌دهد.

۱. ایجاد کلید در Azure Static Web Apps

Azure به این مورد یک service principal می‌گوید. در مرکز مدیریت Microsoft Entra به مسیر Entra ID ← App registrations ← New registration بروید، یک نام برای آن تعیین کرده و آن را Register کنید. در صفحه نمای کلی (overview) برنامه، Application (client) ID و Directory (tenant) ID را کپی کنید. سپس مسیر Certificates & secrets ← Client secrets ← New client secret را باز کنید، مدت‌زمانی را انتخاب کرده و آن را Add نمایید — مقدار سکرت (secret) را فوراً کپی کنید، زیرا Azure فقط یک بار آن را نمایش می‌دهد.

در پورتال Azure، گروه منابعی را که می‌خواهید ما استفاده کنیم باز کرده، سپس به مسیر Access control (IAM) ← Add ← Add role assignment بروید. نقش Contributor را انتخاب کنید، آن را به User, group, or service principal اختصاص دهید، برنامه را بر اساس نام جستجو کرده و گزینه Review + assign را بزنید. نام گروه منابع و Subscription ID مربوط به آن را یادداشت کنید (کلمه Subscriptions را در پورتال جستجو کنید).

۲. اتصال آن در اینجا

بخش Integrations را در داشبورد خود باز کرده و Connect an account را انتخاب کنید. گزینه Static hosting (Netlify, Vercel) را به عنوان گروه و Azure Static Web Apps را به عنوان حساب انتخاب کنید، سپس فیلدهای Client ID، Client secret، Tenant ID، Subscription ID و Resource group را پر کرده و Connect account را بزنید.

ما آنچه را جای‌گذاری می‌کنید، پیش از ذخیره شدن هر چیزی آزمایش می‌کنیم. کلیدی که کار نکند هرگز ذخیره نمی‌شود و پیام پاسخ دلیل اشکال آن را اعلام می‌کند. کلیدی که کار کند، به‌صورت رمزگذاری‌شده در مخزن سکرت‌های ما نگهداری می‌شود — هرگز در پایگاه داده ما ذخیره نمی‌شود — و هرگز دوباره نشان داده نخواهد شد، حتی به شما.

در ادامه چه اتفاقی می‌افتد

  • هنگامی که یک سایت استاتیک ایجاد کرده یا انتقال می‌دهید، این حساب به عنوان یک مقصد استقرار (deploy) نمایش داده می‌شود.
  • Azure Static Web Apps فرآیند ساخت را از یک مخزن انجام می‌دهد — این سرویس هیچ راهی برای پذیرش یک بیلد آپلودشده ندارد — بنابراین کد سایت باید از یک مخزن متصل‌شدهٔ GitHub، GitLab یا Bitbucket تأمین شود. اگر قبلاً این کار را نکرده‌اید، ابتدا یکی را متصل کنید.

  • ما سرویس را روی حساب شما ایجاد می‌کنیم، آن را به مخزن هدایت می‌کنیم، دامنه اختصاصی شما را پیوست کرده و استقرارها را فعال می‌سازیم. صفحه دامنه هرگونه رکورد DNS را که Azure Static Web Apps نیاز داشته باشد نمایش می‌دهد.
  • میزان مصرف و صورت‌حساب در حساب خود شما و در داشبورد اختصاصی‌تان نزد ارائه‌دهنده قابل مشاهده است.
  • دامنه اصلی (apex domain) توسط یک رکورد TXT و زیردامنه توسط CNAME آن تأیید می‌شود؛ صفحه دامنه نشان می‌دهد که دامنه شما به کدام‌یک نیاز دارد.

اگر متصل نشد

Azure سرویس پرینسیپال (service principal) را رد کرد. یا client secret منقضی شده است — آن‌ها همیشه طبق مدت‌زمانی که انتخاب کرده‌اید منقضی می‌شوند — یا اینکه برنامه دیگر دسترسی Contributor را در گروه منابع ندارد. این دو پیام مشابه یکدیگر به نظر می‌رسند، بنابراین پیش از ایجاد سکرت جدید، تخصیص نقش (role assignment) را بررسی کنید.

چیزی یافت نشد. بررسی کنید که Subscription ID و Resource group همان مواردی باشند که نقش را به آن‌ها اختصاص داده‌اید، و Tenant ID همان دایرکتوری باشد که برنامه در آن ثبت شده است.

پیام می‌دهد که کلید رد شده است. تقریباً همیشه ناشی از یکی از این سه مورد است: یک فاصله یا شکست خط (line break) که همراه آن کپی شده، کلیدی که منقضی شده، یا کلیدی که پس از کپی کردن باطل شده یا دوباره تولید شده است. یک کلید تازه ایجاد کرده و آن را دوباره جای‌گذاری کنید.

متصل می‌شود، اما بعداً عملیاتی ناموفق می‌ماند. کلید احراز هویت می‌شود اما فاقد مجوزی است که اقدام مربوطه به آن نیاز دارد. یک کلید جدید با مجوزهای ذکرشده در بالا ایجاد کنید، سپس اتصال قدیمی را قطع کرده و کلید جدید را متصل نمایید.

قطع اتصال

بخش Integrations را باز کنید، حساب را بیابید و گزینه Disconnect را بزنید. این کار کلید ذخیره‌شده را فوراً حذف می‌کند. هر موردی که از آن استفاده می‌کرده در اقدام بعدی خود متوقف می‌شود، و صفحاتی که به آن وابسته بودند به جای اینکه در سکوت با خطا مواجه شوند، این موضوع را اعلام می‌کنند.

قطع اتصال آنچه را که قبلاً انجام شده باطل نمی‌کند — رکوردها، استقرارها یا تنظیماتی که ما در حساب شما تغییر داده‌ایم به همان صورت باقی می‌مانند. اگر فکر می‌کنید خود کلید ممکن است لو رفته باشد، آن را نزد ارائه‌دهنده نیز باطل کنید؛ قطع اتصال فقط نسخه نزد ما را حذف می‌کند، نه نسخه آن‌ها را.

جدیدترین‌های وبلاگ

آنچه درباره میزبانی وب، سئو و مدیریت سایت‌ها در مقیاس بزرگ نوشته‌ایم.

سئو و لینک‌سازی از لایه میزبانی: دیدگاه یک اپراتور در سال ۲۰۲۶

چگونه هاستینگ در سال ۲۰۲۶ بر ایندکس شدن و انتقال اعتبار لینک تأثیر می‌گذارد: حفظ صفحات در ایندکس، ارزیابی دامنه‌های قدیمی قبل از راه‌اندازی سایت روی آن‌ها، لینک‌سازی بدون ردپای سئو، و رویکردی واقع‌بینانه درباره اینکه زیرساخت چه کارهایی را می‌تواند و چه کارهایی را نمی‌تواند برای سئو انجام دهد.

خواندن مطلب ←

سریع و امن کردن WordPress: چک‌لیست عملکرد و افزونه‌ها

یک چک‌لیست کاربردی برای WordPress سریع و ایمن: کش کردن در سطح سرور، کش اشیاء به ازای هر سایت، تعداد اندک افزونه‌هایی که ارزش استفاده دارند، به‌روز نگه داشتن بسته نرم‌افزاری، و برگه های WooCommerce که هرگز نباید آن‌ها را کش کنید.

خواندن مطلب ←

نحوه انتخاب هاست مدیریت‌شده وب در سال ۲۰۲۶: راهنمای خریدار

چه چیزی واقعاً یک میزبانی مدیریت‌شده خوب را از یک جعبه ارزان‌قیمت دارای کنترل‌پنل متمایز می‌کند — مهاجرت‌ها، نسخه‌های پشتیبان، جداسازی، حافظه پنهان واقعی و مقیاس‌پذیری صادقانه — و چگونه پیش از تعهد، آن را ارزیابی کنید.

خواندن مطلب ←

وبلاگ را بخوانید ←

هنوز به مشکل برخورده‌اید؟

پشتیبانی در تمامی پلن‌ها گنجانده شده است، میز خدمت 24 ساعت در روز باز است و می‌توانید به هر یک از زبان‌های 58 ما برای ما بنویسید؛ ما به زبان شما پاسخ می‌دهیم.

تماس با پشتیبانی → همه مقاله‌ها →