Object Storage Service (OSS) にアップロードした圧縮ファイルを自動的に解凍するには、Function Compute アプリケーションセンターからワンクリックでアプリケーションをデプロイできます。展開ルールに一致する ZIP ファイルが Object Storage Service にアップロードされると、Function Compute の関数が自動的にトリガーされ、ファイルが解凍されます。ファイルが解凍されると、Function Compute は展開されたファイルを Object Storage Service の指定されたディレクトリにアップロードします。
背景情報
以下のフローチャートにプロセスを示します。
注意事項
ファイル名とフォルダ名には UTF-8 または GB 2312 エンコーディングを使用してください。これにより、文字化けや解凍中の中断を防ぐことができます。
圧縮ファイルをバケットにアップロードする際、ストレージクラスとしてアーカイブストレージまたはコールドアーカイブを選択しないでください。選択した場合、関数をトリガーできません。
バケットにアップロードする圧縮アーカイブ内の単一ファイルのサイズは 1 GB を超えてはなりません。ファイルが 1 GB を超えると、解凍に失敗する可能性があります。
単一アーカイブの最大解凍時間は 2 時間です。この時間制限を超えるとタスクは失敗します。
デフォルトの関数の実行タイムアウトは 2 時間です。必要に応じて、関数の実行タイムアウト期間を調整できます。
前提条件
Function Compute が有効化されていること。詳細については、「Function Compute の有効化」をご参照ください。
Object Storage Service (OSS) が有効化され、バケットが作成されていること。詳細については、「バケットの作成」をご参照ください。
操作手順
Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、[アプリケーション] をクリックします。
-
アプリ ページで、アプリケーションの作成 をクリックします。次に、アプリケーションの作成 ページで、作成方法を選択します。
このトピックでは、例として テンプレートを使用してアプリケーションを作成 を使用します。
-
アプリケーションの作成 ページのテンプレートセクションで、[OSS にアップロードされた ZIP ファイルを自動解凍] カードを見つけます。ポインターをカードに合わせ、今すぐ作成 をクリックします。
-
アプリケーションの作成 ページで、次のパラメーターを設定し、デフォルト環境の作成とデプロイ をクリックします。
次の表に、主な設定項目を示します。その他の項目については、デフォルト値を使用できます。
設定項目
説明
基本設定
デプロイタイプ
直接デプロイ を選択します。
ロール名
デフォルトのロールは AliyunFCServerlessDevsRole です。現在の権限が不十分な場合は、ポリシーの追加 をクリックし、ダイアログボックスで必要なポリシーを選択して 追加 をクリックします。
詳細設定
RAM ロール ARN
OSS が関数をトリガーするために使用するロールを選択します。このロールに AliyunOSSFullAccess および AliyunFCDefaultRolePolicy アクセスポリシーがアタッチされていることを確認してください。
OSS バケット名
作成したバケットを選択します。
プレフィックス
ファイルプレフィックスを設定します。デフォルト値は src です。
重要同じバケット内の異なるトリガーのプレフィックスが一意であることを確認してください。そうでない場合、アプリケーションの作成に失敗します。
宛先ディレクトリ
解凍されたファイルの宛先ディレクトリを設定します。デフォルト値は dst です。
説明関数がループでトリガーされるのを防ぐため、このディレクトリには [プレフィックス] で指定したものとは異なるパスを設定してください。
アーカイブ名をディレクトリとして保持
圧縮ファイル名をパス内のディレクトリとして保持するかどうかを指定します。有効な値は次のとおりです。
-
true: サブディレクトリを作成します。たとえば、[宛先ディレクトリ] が target で、アーカイブ名が source.zip の場合、解凍されたファイルは target/source/... に保存されます。
false: ファイルを宛先ディレクトリに直接解凍します。上記の例では、解凍されたファイルのパスは target/... です。
トリガー RAM ロール ARN
デフォルトのロールは AliyunOSSEventNotificationRole です。OSS はこのロールを使用してイベント通知を送信し、関数を呼び出します。
-
-
アプリケーションをテストします。
Object Storage Service (OSS) コンソールにログインし、アプリケーションの作成時に選択したバケットをクリックします。
-
選択したバケットで、設定した [プレフィックス] で始まるパスに .zip ファイルをアップロードします。これにより、関数がトリガーされ、ファイルが自動的に解凍され、その内容が指定された [宛先ディレクトリ] に保存されます。
たとえば、[プレフィックス] を source に、[宛先ディレクトリ] を target に設定した場合、source/data.zip や source1/test.zip などのパスに .zip ファイルをアップロードすると、関数がトリガーされます。解凍されたファイルは、target ディレクトリに保存されます。
参考資料
このトピックで説明するワンクリックデプロイアプリケーションは、ZIP ファイルの解凍のみをサポートしています。他のフォーマットのファイルを解凍するには、「decompress-oss」をご参照ください。
OSS にアップロードされた ZIP ファイルの解凍のみが必要な場合は、OSS で直接 ZIP ファイルの自動解凍を設定できます。詳細については、「ZIP パッケージのアップロードと自動解凍」をご参照ください。
Function Compute を使用して OSS からファイルをパッケージ化してダウンロードするには、「複数のファイルを ZIP アーカイブにパッケージ化してダウンロード」をご参照ください。