aliyun-fc-serverless-devs について
Alibaba Cloud Function Compute(FC 3.0)を Serverless Devs で扱う開発者向けスキルです。認証情報の設定、Python サンプルの初期化、デプロイや呼び出し、削除、カスタムドメイン設定を案内します。
主な機能
- 01Alibaba Cloud 認証情報の設定
- 02Python サンプルプロジェクトの初期化
- 03関数のデプロイ、呼び出し、削除
- 04カスタムドメインの設定
- 05権限確認と実行記録の保存
活用シーン
- 01FC 3.0 の Python サンプルの準備
- 02関数アプリのデプロイと呼び出し
- 03関数へのカスタムドメインの割り当て
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ cinience/ alicloud-skills --skill aliyun-fc-serverless-devsインストール後、Claude Code で/aliyun-fc-serverless-devsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/install_serverless_devs_and_docker.mdsources.md詳細
Category: tool
Function Compute (FC 3.0) Serverless Devs
目標
- Serverless Devs をインストールして検証します。
- 認証情報を設定し、サンプルプロジェクトを初期化して、デプロイ、呼び出し、削除を行います。
- Python ランタイムの例を使った CLI の手順を説明します。
クイックスタートの手順
- Node.js(14 以降)と npm をインストールします。
- Serverless Devs をインストールして検証します。
- ガイド付きセットアップで認証情報を設定します。
- サンプルプロジェクトを初期化し、ディレクトリに移動します。
- デプロイして呼び出し、必要に応じて削除します。
Serverless Devs をインストールする(npm)
グローバルインストール(sudo が必要です):
sudo npm install @serverless-devs/s -g
sudo s -v
sudo を使わない代替方法(制限された環境ではこちらを推奨します):
npx -y @serverless-devs/s -v
認証情報を設定する(ガイド付き)
sudo s config add
Alibaba Cloud (alibaba) を選択し、AccountID、AccessKeyID、AccessKeySecret を入力して、エイリアスを設定します。
認証情報を設定する(コマンド)
CLI 引数を使って、1 つのコマンドで認証情報のエイリアスを設定します(対話なし):
s config add -a default --AccessKeyID <AK> --AccessKeySecret <SK> -f
環境変数を使う場合は、コマンドに渡します(例):
s config add -a default -kl AccessKeyID,AccessKeySecret -il ${ALIBABACLOUD_ACCESS_KEY_ID},${ALIBABACLOUD_ACCESS_KEY_SECRET} -f
または、Serverless Devs の慣例に従った JSON 環境変数を使用します(例):
export default_serverless_devs_key='{\"AccountID\":\"<AccountID>\",\"AccessKeyID\":\"<AK>\",\"AccessKeySecret\":\"<SK>\"}'
s.yaml で参照します:
access: default_serverless_devs_key
サンプルを初期化する(Python)
sudo s init start-fc3-python
cd start-fc3-python
初期化すると s.yaml、code/、readme.md が作成されます。関数のロジックは code/index.py を編集してください。
デプロイ、呼び出し、削除
sudo s deploy
sudo s invoke -e "test"
sudo s remove
カスタムドメインのバインド(デフォルトドメインによる強制ダウンロードの回避)
注:FC のデフォルトドメインは
Content-Disposition: attachmentを追加するため、ブラウザーでダウンロードが発生します。 この動作を避けるには、カスタムドメインを使用してください。
手順 1:ドメインの CNAME を設定する
DNS の CNAME を FC のパブリック CNAME に設定します:
<account_id>.<region_id>.fc.aliyuncs.com
例(杭州リージョン):
1629965279769872.cn-hangzhou.fc.aliyuncs.com
注:apex ドメイン(例:animus.run)を使用し、DNS プロバイダーが apex での CNAME をサポートしていない場合は、
ALIAS/ANAME レコードを使用するか、www.animus.run などのサブドメインに切り替えてください。
手順 2:Serverless Devs でカスタムドメインを作成する
オプション A:s.yaml に fc3-domain リソースを追加します:
resources:
newsDomain:
component: fc3-domain
props:
region: cn-hangzhou
domainName: animus.run
protocol: HTTP
routeConfig:
routes:
- functionName: honnold-taipei101-news
qualifier: LATEST
methods:
- GET
- HEAD
path: /*
region はサンプルのデフォルト値です。最適なリージョンが不明な場合は、ユーザーに確認してください。
次にデプロイします:
printf 'y\n' | npx -y @serverless-devs/s deploy
オプション B:コンソール(Advanced Features > Custom Domains)を使って、カスタムドメインを作成し、ルーティングを設定します。
よくあるエラー
DomainNameNotResolved:ドメインが正しい FC CNAME に解決されていません。InvalidICPLicense:中国本土のリージョンでは、Alibaba Cloud に関連付けられた ICP 登録が必要です。
参考資料
-
詳細な公式手順については、
references/install_serverless_devs_and_docker.mdを参照してください。 -
HTTP トリガーの制限とレスポンスヘッダーの動作(デフォルトドメインでは Content-Disposition: attachment が強制されます)
-
カスタムドメインのバインドと CNAME のガイダンス
-
公式ソース一覧:
references/sources.md
検証
mkdir -p output/aliyun-fc-serverless-devs
echo "validation_placeholder" > output/aliyun-fc-serverless-devs/validate.txt
合格基準:コマンドが終了コード 0 で終了し、output/aliyun-fc-serverless-devs/validate.txt が生成されること。
出力と証跡
- 成果物、コマンド出力、API レスポンスの要約を
output/aliyun-fc-serverless-devs/に保存します。 - 再現できるよう、証跡ファイルには主要なパラメーター(リージョン/リソース ID/時間範囲)を含めます。
前提条件
- 実行前に、最小権限の Alibaba Cloud 認証情報を設定してください。
- 環境変数を使用することを推奨します:
ALIBABACLOUD_ACCESS_KEY_ID、ALIBABACLOUD_ACCESS_KEY_SECRET、任意でALIBABACLOUD_REGION_ID。 - リージョンが不明な場合は、変更を伴う操作を実行する前にユーザーに確認してください。
ワークフロー
- ユーザーの意図、リージョン、識別子、および操作が読み取り専用か変更を伴うものかを確認します。
- 接続と権限を検証するため、最初に最小限の読み取り専用クエリを 1 つ実行します。
- 明示的なパラメーターと限定された範囲を指定して、対象の操作を実行します。
- 結果を検証し、出力/証跡ファイルを保存します。