AWS Lambda 関数で Aspose.CAD Docker イメージを実行する方法
前提条件
- システムに Docker をインストールする必要があります。Windows または Mac に Docker をインストールする方法については、「関連リンク」セクションのリンクを参照してください。
- Visual Studio 2022。
- Visual Studio 2022 用 AWS Toolkit。
- サンプルでは .NET 6 SDK が使用されます。
- Postman
AWS Lambda 関数
Lambda は、サーバーをプロビジョニングまたは管理することなくコードを実行できるコンピューティングサービスです。Lambda は、高可用性のコンピューティングインフラストラクチャ上でコードを実行し、サーバーやオペレーティングシステムのメンテナンス、キャパシティプロビジョニング、自動スケーリング、ロギングなど、コンピューティングリソースのすべての管理を行います。Lambdaを使用すると、ほぼすべての種類のアプリケーションやバックエンドサービスのコードを実行できます。
AWS Lambda 関数の作成
AWS Lambda 関数プログラムを作成するには、以下の手順に従います:
- AWS Lambda プロジェクトを作成します。
- .NET 6 (コンテナイメージ) を選択し、「終了」ボタンをクリックします。
- Visual Studio で AWS Explorer を開きます (表示 -> AWS Explorer)。
- AWS Explorer に AWS 資格情報プロファイルを追加します。
- アクセスキーIDとシークレットアクセスキーを入力します。これらのキーはセキュリティ資格情報で取得するか、管理者に連絡して承認用のCSVファイルを取得してください。
- NuGet から最新のライブラリをインストールします。
- CAD イメージを PDF ファイルに変換するコード例。
public APIGatewayHttpApiV2ProxyResponse FunctionHandler(APIGatewayHttpApiV2ProxyRequest stream, ILambdaContext context) { try { var parser = HttpMultipartParser.MultipartFormDataParser.Parse(new MemoryStream(Convert.FromBase64String(stream.Body))); var file = parser.Files.First(); Stream fileStream = file.Data; using (var img = Aspose.CAD.Image.Load(fileStream)) { var ms = new MemoryStream(); img.Save(ms, new PdfOptions()); ms.Seek(0, (System.IO.SeekOrigin)SeekOrigin.Begin); return new APIGatewayHttpApiV2ProxyResponse { StatusCode = (int)HttpStatusCode.OK, Body = Convert.ToBase64String(ms.ToArray()), IsBase64Encoded = true, Headers = new Dictionary<string, string> { {"Content-Type", "application/pdf" }, {"Content-Disposition", "attachment;filename=filename.pdf" } } }; } } catch (Exception e) { return new APIGatewayHttpApiV2ProxyResponse { StatusCode = (int)HttpStatusCode.OK, Body = e.Message, Headers = new Dictionary<string, string> { { "Content-Type", "text/html" } } }; } }
- Dockerfile の設定 セクションで示すように DockerFile を編集します。
- Docker Desktop を起動します。
- AWS Lambda に公開します。
- アップロード設定を編集します。
- 「アップロード」ボタンをクリックします。
- AWS に移動し、Lambda を選択します。
- 新しい関数を選択し、URL 関数を作成します。
- 認証タイプを選択する
- AWS_IAM - 認証された IAM ユーザーおよびロールのみが関数の URL にリクエストを送信できます。
- NONE - Lambda は関数の URL に対するリクエストで IAM 認証を行いません。独自の認証ロジックを関数に実装しない限り、URL エンドポイントは公開されます。
Dockerfile の設定
次のステップは、プロジェクト内の Dockerfile を編集して設定することです。
- Dockerfile で次のことを指定します:
FROM public.ecr.aws/lambda/dotnet:6
WORKDIR /var/task
COPY "bin/Release/lambda-publish" .
RUN yum install -y amazon-linux-extras
RUN amazon-linux-extras install epel -y
RUN yum install -y libgdiplus
CMD ["AWSLambda::AWSLambda.Function::FunctionHandler"]
上記は、以下の指示を含むシンプルな Dockerfile です:
- 使用する SDK イメージ。ここでは .NET 6 イメージです。ビルドが実行されたときに Docker がダウンロードします。SDK のバージョンはタグとして指定されます。
- その後、SDK イメージには非常に少ないフォントしか含まれていないため、フォントをインストールする必要があるかもしれません。また、Docker イメージにコピーされたローカルフォントを使用することもできます。
- 次の行で指定された作業ディレクトリ。
- コンテナにすべてをコピーし、アプリケーションを公開し、エントリーポイントを指定するためのコマンド。
実行例
- Postman 設定。
- 任意の DXF、DWG、DGN、DWF、DWFX、IFC、STL、DWT、IGES、PLT、CF2、OBJ、HPGL、IGS、PCL、FBX、PDF、SVG ファイルを選択します。
- 送信ボタンをクリックします。
さらなる例
Docker 内で Aspose.CAD を使用する方法のさらなるサンプルについては、examplesをご覧ください。