پرش به مطلب اصلی

استقرار و لاگ با API

ابتدا متغیرهای اتصال را تنظیم کنید و main_name را از فهرست سرویس‌ها بردارید. این عملیات به عضویت پذیرفته‌شده با نقش مالک یا توسعه‌دهنده نیاز دارند.

export CHABOKAN_SERVICE_NAME='YOUR_SERVICE_MAIN_NAME'

لاگ جاری سرویس​

curl --silent --show-error --fail-with-body \
--header "Authorization: Token ${CHABOKAN_API_TOKEN}" \
"${CHABOKAN_API_BASE}/services/${CHABOKAN_SERVICE_NAME}/logs/"

پاسخ را از نظر success بررسی کنید و در صورت موفقیت، مقدار logs را بخوانید. این خروجی با لاگ مراحل یک استقرار مشخص متفاوت است.

لاگ آخرین استقرار​

curl --silent --show-error --fail-with-body \
--header "Authorization: Token ${CHABOKAN_API_TOKEN}" \
"${CHABOKAN_API_BASE}/services/${CHABOKAN_SERVICE_NAME}/deploy-logs/"

برای استقرار مشخص، نام استقرار را از پنل یا مقدار deploy پاسخ بردارید:

export CHABOKAN_DEPLOY_NAME='YOUR_DEPLOY_NAME'

curl --silent --show-error --fail-with-body --get \
--header "Authorization: Token ${CHABOKAN_API_TOKEN}" \
--data-urlencode "deploy=${CHABOKAN_DEPLOY_NAME}" \
"${CHABOKAN_API_BASE}/services/${CHABOKAN_SERVICE_NAME}/deploy-logs/"
فیلد پاسخ موفقمعنی
deployنام استقرار
statusوضعیت استقرار
logsمراحل استقرار
container_logsخروجی برنامهٔ آن نسخه
failure_reasonشناسهٔ علت شکست، در صورت وجود
failure_messageتوضیح خطا، در صورت وجود

اگر استقراری وجود نداشته باشد یا نام درخواست‌شده پیدا نشود، پاسخ می‌تواند success: false باشد. خطای دریافت لاگ را با موفقیت استقرار یکی نگیرید؛ وضعیت و پیام پنل را نیز بررسی کنید.

ارسال بستهٔ استقرار​

برای آماده‌سازی معمول پروژه از CLI استفاده کنید. اگر بستهٔ استقرار سازگار با پروژه را آماده کرده‌اید، می‌توانید آن را در فیلد multipart با نام file ارسال کنید. مثال زیر فرض می‌کند بستهٔ release.tar.gz را از قبل آماده کرده‌اید؛ بسته باید ساختار مناسب پلتفرم برنامه را داشته باشد.

تغییر نسخهٔ سرویس

درخواست زیر نسخهٔ جدید را برای استقرار روی سرویس انتخاب‌شده ارسال می‌کند. پیش از اجرا، نام سرویس و محتوای بسته را بررسی کنید.

curl --silent --show-error --fail-with-body \
--request POST \
--header "Authorization: Token ${CHABOKAN_API_TOKEN}" \
--form 'file=@./release.tar.gz' \
"${CHABOKAN_API_BASE}/services/${CHABOKAN_SERVICE_NAME}/deploy/"

هنگام ارسال multipart، هدر Content-Type را دستی تعیین نکنید؛ cURL آن را همراه boundary می‌سازد. سرویس باید روشن باشد و حساب شما دسترسی فنی داشته باشد.

success: true در پاسخ ارسال، به معنی ثبت درخواست است و پایان موفق استقرار را تضمین نمی‌کند. وضعیت نهایی را از استقرارها و endpoint لاگ بررسی کنید. درخواست ارسال را بدون بررسی وضعیت دوباره اجرا نکنید؛ استقرار جدید می‌تواند جایگزین استقرار قبلیِ در حال انجام شود.

برای تنظیم شرط پذیرش نسخه، بررسی سلامت و استقرار بدون اختلال را ببینید.