ファンクションコンピューティングとOSS統合

Home PDF

このコードは、Alibaba Cloud Function ComputeとOSS(Object Storage Service)を統合する方法を示しています。指定されたURLからファイルをダウンロードし、OSSバケットにアップロードします。

コード

# -*- coding: utf-8 -*-
import oss2
import requests
import logging
import os

def handler(event, context):
    # 設定
    # model_url = "https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.2-GGUF/resolve/main/mistral-7b-instruct-v0.2.Q4_K_M.gguf"

    model_url = "https://storage.googleapis.com/lzwjava1/ss_urls.txt"
    oss_bucket_name = "lzw-download"  # バケット名
    oss_endpoint = "oss-cn-hangzhou.aliyuncs.com"  # パブリックエンドポイント

    try:
        # 提供されたロールARNを使用して認証オブジェクトを作成
        role_arn = "acs:ram::1768386076294612:role/fc"
        auth = oss2.Auth(
            os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
        )

        sts_auth = oss2.StsAuth(
            os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
            os.environ['ALIBABA_CLOUD_SECURITY_TOKEN']
        )

        # 2. 適切なエンドポイントを使用してOSSクライアントを初期化
        bucket = oss2.Bucket(
            sts_auth,
            oss_endpoint,
            oss_bucket_name
        )

        # 3. ストリームダウンロードとアップロード
        logging.info("ダウンロード開始...")
        with requests.get(model_url, stream=True) as response:
            response.raise_for_status()

            # OSSへのアップロード
            result = bucket.put_object(
                'models/mistral-7b-instruct-v0.2.Q4_K_M.gguf',
                response.iter_content(chunk_size=1024*1024)
            )

        if result.status == 200:
            logging.info("アップロード成功!")
            return "Success"
        else:
            raise Exception(f"OSSアップロード失敗: {result.status}")

    except Exception as e:
        logging.error(f"エラー: {str(e)}")
        raise e

エラー

以前と同じエラーが発生しました。このタスクを完了するにはVPNが必要なようです。

2025-01-24 17:43:342025-01-24 17:43:34 1-679360a6-154b432a-15cadcce0c27 [ERROR] { “errorMessage”: “HTTPSConnectionPool(host=’huggingface.co’, port=443): Max retries exceeded with url: /TheBloke/Mistral-7B-Instruct-v0.2-GGUF/resolve/main/mistral-7b-instruct-v0.2.Q4_K_M.gguf (Caused by NewConnectionError(‘<urllib3.connection.HTTPSConnection object at 0x7f7d3c289f60>: Failed to establish a new connection: [Errno 101] Network is unreachable’))”


Back 2025.02.22 Donate