Was macht Aliyun Static Site Deploy?
Kernregeln
- Betrachten Sie EMAS Serverless Static Hosting als den Standard-Weg für Einsteiger ohne Domain. Es liefert eine Aliyun-Standard-URL und vermeidet das häufige OSS-Download-Problem.
- Betrachten Sie OSS + GitHub Actions als den wiederholbaren Automatisierungsweg nur dann, wenn der Benutzer explizit eine GitHub-zu-Aliyun-Automatisierung wünscht, bereits einen OSS-Bucket besitzt oder erstellen kann, und versteht, dass die endgültige URL als HTML inline geöffnet werden muss.
- Tun Sie nicht so, als ob Aliyun-Login, Real-Name-Verifizierung, Aktivierung kostenpflichtiger Dienste, AccessKey-Erstellung, GitHub 2FA oder Zahlungsbestätigung automatisiert werden können. Halten Sie an und bitten Sie den Benutzer, diese Schritte selbst durchzuführen.
- Fragen Sie den Benutzer niemals,
ALIYUN_ACCESS_KEY_SECRET, GitHub-Tokens, Passwörter oder Zahlungsbelege im Chat einzufügen. Bitten Sie ihn, Geheimnisse direkt in GitHub Secrets oder die Aliyun/GitHub-Benutzeroberfläche einzugeben.
Erste Entscheidung
Bevor Sie Bereitstellungscode schreiben, wählen Sie den Weg und teilen Sie ihn explizit mit:
| Weg | Verwendung, wenn | Automatisierungsgrad | Risiko |
|---|---|---|---|
| EMAS Static Hosting | Keine benutzerdefinierte Domain, Einsteiger-Vorschau, der Benutzer kann die Aliyun-Konsole bedienen | Der Agent bereitet Dateien vor und führt durch die Konsolenschritte; der Benutzer kümmert sich ggf. um Login/Zahlung/Upload | Die Konsolenoberfläche kann sich ändern und manuellen Upload erfordern |
| OSS-Workflow | Der Benutzer möchte Codex × GitHub × Aliyun-Automatisierung; OSS-Bucket und AccessKey können vorbereitet werden | Der Agent kann Workflow generieren, Code pushen, CI auslösen und URL verifizieren | OSS-Standarddomains können HTML herunterladen, sofern Metadaten/Static Hosting nicht korrekt sind |
Wenn der Benutzer nur sagt "没有域名先给客户看", verwenden Sie zuerst die EMAS-Anleitung. Wenn der Benutzer sagt "自动上线", "XgitX阿里云", "GitHub 自动部署" oder "以后反复更新", verwenden Sie die OSS-Workflow-Skripte, erläutern Sie jedoch vor der Durchführung das Browser-Download-Risiko.
Arbeitsablauf
- Projekt überprüfen:
python3 /Users/likai/.codex/skills/aliyun-static-site-deploy/scripts/check_readiness.py --project . - Den Bereitstellungsweg in einem Satz erklären:
- OSS: "Dateien werden mit GitHub Actions auf Aliyun OSS hochgeladen und überprüft, ob der Browser die Datei anzeigt und nicht herunterlädt."
- EMAS: "Zuerst wird Aliyun EMAS Static Hosting genutzt, um eine Vorschau-URL ohne Domain zu erhalten."
- Wenn der Benutzer noch keinen Aliyun-Zugang vorbereitet hat, lesen Sie
references/secrets-hand-off.mdund bitten Sie ihn, Aliyun-Login, Zahlung, AccessKey / GitHub Secrets abzuschließen. Verwenden Sie beigefügte Screenshots, um zu erklären, wo geklickt werden muss. - Nur für OSS-Automatisierung: Generieren Sie den GitHub Actions Workflow:
python3 /Users/likai/.codex/skills/aliyun-static-site-deploy/scripts/prepare_oss_workflow.py --project . --force - Überprüfen Sie den generierten Workflow und das lokale Projekt erneut:
python3 /Users/likai/.codex/skills/aliyun-static-site-deploy/scripts/check_readiness.py --project . --strict - Übertragen / Pushen Sie das Projekt nach GitHub, wenn der Benutzer dies wünscht und die Anmeldeinformationen verfügbar sind. Wenn Git LFS falsch installiert ist, verwenden Sie die Skriptausgabe, um die Lösung zu erklären, anstatt blind zu wiederholen.
- Nach Abschluss der Bereitstellung die öffentliche URL überprüfen:
python3 /Users/likai/.codex/skills/aliyun-static-site-deploy/scripts/verify_deployed_url.py "$ALIYUN_SITE_URL"
Erforderliche GitHub Secrets
Für den enthaltenen OSS-Workflow bitten Sie den Benutzer, diese Repository-Secrets in GitHub zu erstellen:
ALIYUN_ACCESS_KEY_IDALIYUN_ACCESS_KEY_SECRETALIYUN_OSS_BUCKETALIYUN_OSS_ENDPOINT
Optional:
ALIYUN_SITE_URLfür die Überprüfung zur Bereitstellungszeit. Beispiel:https://your-bucket.oss-cn-hangzhou.aliyuncs.com/index.html
Verwenden Sie für EMAS die genauen Secret-Namen, die vom EMAS-Bereitstellungsskript in diesem Projekt erwartet werden. Wenn kein EMAS-Skript existiert, erfinden Sie keine falschen Secret-Namen; leiten Sie den Benutzer durch den manuellen EMAS Static-Hosting-Upload oder erstellen Sie ein projektspezifisches Skript nach Bestätigung des offiziellen API/SDK-Pfads.
Menschliche Grenze
Halten Sie an und rufen Sie den Benutzer an, wenn eines der folgenden Elemente fehlt:
- Aliyun-Konto ist nicht eingeloggt, nicht real-name-verifiziert oder fordert eine Zahlung.
- EMAS-Service-Space, OSS-Bucket oder Static Hosting wurde nicht erstellt.
- AccessKey wurde nicht erstellt.
- GitHub Secrets sind nicht ausgefüllt.
- GitHub fordert Benutzername/Token oder Zwei-Faktor-Bestätigung.
Zeigen Sie dem Benutzer die genauen auszufüllenden Felder an, aber empfangen Sie keine Geheimnisse im Chat.
Erfolgskriterien der Bereitstellung
Betrachten Sie die Bereitstellung erst dann als abgeschlossen, wenn alle Prüfungen bestanden sind:
- Das GitHub-Repository enthält eine committete Website-Quelle und Bereitstellungsanweisungen.
- Für die OSS-Automatisierung enthält das GitHub-Repository den generierten Workflow unter
.github/workflows/deploy-aliyun-static-site.ymlund die Actions-Ausführung ist aufmainoderworkflow_dispatcherfolgreich. - Für EMAS manuelles/Static-Hosting-Upload zeigt die Aliyun-Konsole hochgeladene Homepage-Dateien und eine öffentliche Standard-URL.
- Die öffentliche URL gibt HTTP 200 oder 3xx gefolgt von 200 zurück.
- Die Antwort ist HTML, kein XML-Fehlertext oder Metadaten für erzwungenen Download.
- Die Seite enthält
<htmlund einen nicht leeren Titel oder sichtbaren Textkörper. - Wichtige von der Startseite referenzierte Assets sind öffentliche oder entfernte URLs.
Referenzen
- Lesen Sie
references/secrets-hand-off.md, wenn der Benutzer schrittweise Hilfe zu Aliyun/GitHub Secrets benötigt. - Lesen Sie
references/troubleshooting.md, wenn die Bereitstellung oder URL-Überprüfung fehlschlägt.