Como Executar a Imagem Docker Aspose.CAD na Função AWS Lambda

Pré-requisitos

  • O Docker deve estar instalado em seu sistema. Para informações sobre como instalar o Docker no Windows ou Mac, consulte os links na seção “Veja Também”.
  • Visual Studio 2022.
  • AWS Toolkit para Visual Studio 2022.
  • O SDK .NET 6 é usado no exemplo.
  • Postman

Função AWS Lambda

Lambda é um serviço de computação que permite executar código sem provisionar ou gerenciar servidores. O Lambda executa seu código em uma infraestrutura de computação de alta disponibilidade e realiza toda a administração dos recursos de computação, incluindo manutenção de servidores e sistemas operacionais, provisionamento de capacidade e escalonamento automático, e registro. Com o Lambda, você pode executar código para virtualmente qualquer tipo de aplicação ou serviço de backend.

Criando a Função AWS Lambda

Para criar o programa da Função AWS Lambda, siga os passos abaixo:

  1. Crie o Projeto AWS Lambda.
    Criar botão da função AWS
  2. Selecione .NET 6 (Imagem de Conteiner) e clique no botão ‘Finalizar’.
    Criar botão de função de contêiner
  3. Abra o AWS Explorer no Visual Studio (Ver->AWS Explorer).
  4. Adicione o perfil de credenciais da AWS no AWS Explorer.
    Perfil de credenciais
  5. Insira o ID da Chave de Acesso e a Chave de Acesso Secreta, você pode obter essas chaves nas credenciais de segurança ou entrar em contato com o administrador e obter um arquivo csv para autorização.
    Configurações do perfil da conta
  6. Instale as bibliotecas mais recentes do NuGet.
    Gerenciador NuGet
  7. Exemplo de código para converter imagem cad em arquivo 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"
                    }
                }
            };
        }
    }
  8. Edite o DockerFile conforme a seção Configurando um Dockerfile.
  9. Inicie o Docker Desktop.
  10. Publique para a AWS Lambda.
    Publicar aws lambda
  11. Edite a configuração de upload.
    Upload aws lambda
  12. Clique no botão ‘Upload’.
    Upload aws lambda último
  13. Vá para a AWS e selecione Lambda.
    AWS Lambda
  14. Selecione sua nova função e crie a URL da função.
    Configuração da URL da função
  15. Selecione o tipo de autorização
  • AWS_IAM - Apenas usuários e funções IAM autenticados podem fazer solicitações para sua URL de função.
  • NONE - O Lambda não realizará autenticação IAM nas solicitações para sua URL de função. O endpoint da URL será público, a menos que você implemente sua própria lógica de autorização em sua função.

Configurando um Dockerfile

O próximo passo é editar e configurar o Dockerfile no projeto.

  1. No Dockerfile, especifique:
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"]

O acima é um Dockerfile simples, que contém as seguintes instruções:

  • A imagem do SDK a ser utilizada. Aqui é a imagem .NET 6. O Docker a baixará quando a construção for executada. A versão do SDK é especificada como uma tag.
  • Depois, pode ser necessário instalar fontes porque a imagem do SDK contém muito poucas fontes. Além disso, você pode usar fontes locais copiadas para a imagem do docker.
  • O diretório de trabalho, que é especificado na linha seguinte.
  • O comando para copiar tudo para o contêiner, publicar a aplicação e especificar o ponto de entrada.

Exemplo de execução

  1. Configurações do Postman.
    Menu de visão geral
  2. Selecione qualquer arquivo DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG.
  3. Clique no botão enviar.

Mais Exemplos

Para mais amostras de como você pode usar Aspose.CAD em Docker, veja os exemplos.

Veja Também.