

AWS O Mainframe Modernization Service (experiência em Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Service (experiência em Managed Runtime Environment), explore o AWS Mainframe Modernization Service (experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte Alteração na [disponibilidade AWS da modernização do mainframe](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Tutorial: Configurando a versão do Rocket Software (anteriormente Micro Focus) para o BankDemo aplicativo de amostra
<a name="tutorial-build-mf"></a>

AWS A modernização do mainframe oferece a capacidade de configurar pipelines de compilação e integration/continuous entrega contínua (CI/CD) para seus aplicativos migrados. Essas compilações e pipelines usam AWS CodeBuild AWS CodeCommit, e AWS CodePipeline para fornecer esses recursos. CodeBuild é um serviço de compilação totalmente gerenciado que compila seu código-fonte, executa testes de unidade e produz artefatos prontos para implantação. CodeCommit é um serviço de controle de versão que permite armazenar e gerenciar de forma privada repositórios Git na nuvem. AWS CodePipeline é um serviço de entrega contínua que permite modelar, visualizar e automatizar as etapas necessárias para lançar seu software.

Este tutorial demonstra como usá-lo para AWS CodeBuild compilar o código-fonte do aplicativo de BankDemo amostra do Amazon S3 e depois exportar o código compilado de volta para o Amazon S3.

AWS CodeBuild é um serviço de integração contínua totalmente gerenciado que compila o código-fonte, executa testes e produz pacotes de software prontos para implantação. Com CodeBuild, você pode usar ambientes de compilação predefinidos ou criar ambientes de compilação personalizados que usam suas próprias ferramentas de compilação. Esse cenário de demonstração usa a segunda opção. Ele consiste em um ambiente de CodeBuild construção que usa uma imagem Docker pré-empacotada.

**Importante**  
Antes de iniciar seu projeto de modernização de mainframe, recomendamos que você conheça o [Programa de Aceleração da Migração (MAP) da AWS para mainframe](https://aws.amazon.com/migration-acceleration-program/mainframe/) ou entre em contato com os [especialistas em mainframe](mailto: mainframe@amazon.com) da AWS para saber mais sobre as etapas necessárias para modernizar uma aplicação de mainframe.

**Topics**
+ [Pré-requisitos](#tutorial-build-mf-prerequisites)
+ [Etapa 1: compartilhar os ativos de construção com a AWS conta](#tutorial-build-mf-assets)
+ [Etapa 2: criar buckets do Amazon S3](#tutorial-build-mf-s3)
+ [Etapa 3: criar o arquivo de especificações de compilação](#tutorial-build-mf-spec)
+ [Etapa 4: fazer upload dos arquivos de origem](#tutorial-build-mf-upload)
+ [Etapa 5: criar políticas do IAM](#tutorial-build-mf-IAM-policy)
+ [Etapa 6: criar um perfil do IAM](#tutorial-build-mf-IAM-role)
+ [Etapa 7: anexar as políticas do IAM ao perfil do IAM](#tutorial-build-mf-attach)
+ [Etapa 8: criar o CodeBuild projeto](#tutorial-build-mf-create-project)
+ [Etapa 9: iniciar a compilação](#tutorial-build-mf-start)
+ [Etapa 10: baixar artefatos de saída](#tutorial-build-mf-download-output)
+ [Limpar os recursos](#tutorial-build-mf-clean)

## Pré-requisitos
<a name="tutorial-build-mf-prerequisites"></a>

Antes de iniciar este tutorial, conclua os seguintes pré-requisitos.
+ Baixe o [aplicativo BankDemo de amostra](https://d3lkpej5ajcpac.cloudfront.net/demo/mf/BANKDEMO-build.zip) e descompacte-o em uma pasta. A pasta de origem contém programas e cadernos COBOL, além de definições. Ele também contém uma pasta JCL para referência, embora você não precise criar o JCL. A pasta também contém os meta-arquivos necessários para a compilação.
+ **No console de modernização do AWS mainframe, escolha Ferramentas.** Em **Análise, desenvolvimento e criação de ativos**, selecione **Compartilhar ativos com minha conta da AWS**.

## Etapa 1: compartilhar os ativos de construção com a AWS conta
<a name="tutorial-build-mf-assets"></a>

Nesta etapa, você garante compartilhar os ativos de construção com sua AWS conta, especialmente na região em que os ativos estão sendo usados.

1. Abra o console de modernização do AWS mainframe em. [https://console.aws.amazon.com/m2/](https://us-west-2.console.aws.amazon.com/m2/home?region=us-west-2#/)

1. Na navegação à esquerda, selecione **Ferramentas**.

1. Em **Análise, desenvolvimento e criação de ativos**, escolha **Compartilhar ativos com minha AWS conta**.

**Importante**  
Você precisa executar essa etapa uma vez em cada AWS região em que pretende fazer construções.

## Etapa 2: criar buckets do Amazon S3
<a name="tutorial-build-mf-s3"></a>

Nesta etapa, você cria dois buckets do Amazon S3. O primeiro é um bucket de entrada para armazenar o código-fonte e o outro é um bucket de saída para armazenar a saída da compilação. Para obter mais informações, consulte [Criação, configuração e trabalho com buckets do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html) no *Guia do usuário do Amazon S3*.

1. Para criar o bucket de entrada, faça login no console do Amazon S3 e escolha **Criar bucket**.

1. Em **Configuração geral**, forneça um nome para o bucket e especifique Região da AWS onde você deseja criar o bucket. Um exemplo de nome é`codebuild-regionId-accountId-input-bucket`, where `regionId` is the Região da AWS do bucket e `accountId` é seu Conta da AWS ID.
**nota**  
Se você estiver criando o bucket em um local diferente Região da AWS do Leste dos EUA (Norte da Virgínia), especifique o `LocationConstraint` parâmetro. Para obter mais informações, consulte [Criar Bucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) na *Referência da API do Amazon Simple Storage Service*.

1. Mantenha todas as outras configurações e escolha **Criar bucket.**

1. Repita as etapas de 1 a 3 para criar o bucket de saída. Um exemplo de nome é`codebuild-regionId-accountId-output-bucket`, where `regionId` is the Região da AWS do bucket e `accountId` é seu Conta da AWS ID.

   Independentemente dos nomes que você escolher para esses buckets, não deixe de usá-los ao longo deste tutorial.

## Etapa 3: criar o arquivo de especificações de compilação
<a name="tutorial-build-mf-spec"></a>

Nesta etapa, você cria um arquivo de especificações de compilação. Esse arquivo fornece comandos de compilação e configurações relacionadas, no formato YAML, CodeBuild para executar a compilação. Para obter mais informações, consulte a [referência da especificação de compilação CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html) no *Guia AWS CodeBuild do usuário*.

1. Crie um arquivo chamado `buildspec.yml` no diretório que você descompactou como pré-requisito.

1. Adicione o seguinte conteúdo ao arquivo e salve. Nenhuma alteração é necessária para este arquivo.

   ```
   version: 0.2
   env:
     exported-variables:
       - CODEBUILD_BUILD_ID
       - CODEBUILD_BUILD_ARN
   phases:
     install:
       runtime-versions:
         python: 3.7
     pre_build:
       commands:
         - echo Installing source dependencies...
         - ls -lR $CODEBUILD_SRC_DIR/source
     build:
       commands:
         - echo Build started on `date`
         - /start-build.sh -Dbasedir=$CODEBUILD_SRC_DIR/source -Dloaddir=$CODEBUILD_SRC_DIR/target 
     post_build:
       commands:
         - ls -lR $CODEBUILD_SRC_DIR/target
         - echo Build completed on `date`
   artifacts:
     files:
       - $CODEBUILD_SRC_DIR/target/**
   ```

   Aqui`CODEBUILD_BUILD_ID`,`CODEBUILD_BUILD_ARN`,`$CODEBUILD_SRC_DIR/source`, e `$CODEBUILD_SRC_DIR/target` estão as variáveis de ambiente disponíveis em CodeBuild. Para obter mais informações, consulte [Variáveis de ambiente em ambientes de compilação](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html).

   Nesse ponto, seu diretório deve ter a seguinte aparência.

   ```
   (root directory name)
       |-- build.xml
       |-- buildspec.yml
       |-- LICENSE.txt
       |-- source
            |... etc.
   ```

1. Compacte o conteúdo da pasta em um arquivo chamado `BankDemo.zip`. Para este tutorial, não é possível compactar a pasta. Em vez disso, compacte o conteúdo da pasta no arquivo `BankDemo.zip`.

## Etapa 4: fazer upload dos arquivos de origem
<a name="tutorial-build-mf-upload"></a>

Nesta etapa, você carrega o código-fonte do aplicativo de BankDemo amostra no seu bucket de entrada do Amazon S3.

1. Faça login no console do Amazon S3 e escolha **Buckets** no painel de navegação esquerdo. Em seguida, escolha o bucket de entrada que você criou anteriormente.

1. Em **Objetos**, escolha **Carregar**.

1. Na seção **Arquivos e pastas**, escolha **Adicionar arquivos**.

1. Navegue e escolha seu arquivo `BankDemo.zip`.

1. Escolha **Carregar**.

## Etapa 5: criar políticas do IAM
<a name="tutorial-build-mf-IAM-policy"></a>

Nesta etapa, você cria duas [políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html). Uma política concede permissões para a modernização do AWS mainframe acessar e usar a imagem do Docker que contém as ferramentas de construção da Rocket Software. Essa política não é personalizada para clientes. A outra política concede permissões para que a modernização do AWS mainframe interaja com os buckets de entrada e saída e com os [ CloudWatch registros da Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) que são gerados. CodeBuild 

Para saber mais sobre como criar uma política de IAM, consulte [Edição de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) no *Guia do usuário do IAM*.

**Para criar uma política para acessar imagens do Docker**

1. No console do IAM, copie o seguinte documento de política e cole-o no editor de políticas.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ecr:GetAuthorizationToken"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ecr:BatchCheckLayerAvailability",
                   "ecr:GetDownloadUrlForLayer",
                   "ecr:BatchGetImage"
               ],
               "Resource": "arn:aws:ecr:*:673918848628:repository/m2-enterprise-build-tools"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::aws-m2-repo-*-<region>-prod"
           }
       ]
   }
   ```

------

1. Forneça um nome para a política, por exemplo, `m2CodeBuildPolicy`.

**Para criar uma política que permita que a modernização do AWS mainframe interaja com buckets e registros**

1. No console do IAM, copie o seguinte documento de política e cole-o no editor de políticas. Certifique-se de atualizar `regionId` para o Região da AWS, e `accountId` para o seu Conta da AWS.

1. Forneça um nome para a política, por exemplo, `BankdemoCodeBuildRolePolicy`.

## Etapa 6: criar um perfil do IAM
<a name="tutorial-build-mf-IAM-role"></a>

Nesta etapa, você cria uma nova [função do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) que permite CodeBuild interagir com AWS os recursos para você, depois de associar as políticas do IAM que você criou anteriormente a essa nova função do IAM.

Para obter informações sobre a criação de uma função de serviço, consulte [Criação de uma função para delegar permissões a um AWS serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) no *Guia do usuário do IAM*,.

1. Faça login no console do IAM e escolha **Perfis** no painel de navegação esquerdo.

1. Selecione **Criar perfil**.

1. Em **Tipo de entidade confiável**, escolha **Serviço AWS**.

1. **Em Casos de uso para outros serviços da AWS**, escolha e **CodeBuild**, em seguida, escolha **CodeBuild**novamente.

1. Escolha **Próximo**.

1. Na página **Adicionar permissões**, escolha **Próximo**. Você atribui uma política à função posteriormente.

1. Em **Detalhes da função**, forneça um nome para a função, por exemplo,`BankdemoCodeBuildServiceRole`.

1. Em **Selecionar entidades confiáveis**, verifique se o documento de política tem a seguinte aparência:

------
#### [ JSON ]

****  

   ```
   {
             "Version":"2012-10-17",		 	 	 
             "Statement": [
               {
                 "Effect": "Allow",
                 "Principal": {
                   "Service": "codebuild.amazonaws.com"
                 },
                 "Action": "sts:AssumeRole"
               }
             ]
           }
   ```

------

1. Selecione **Criar perfil**.

## Etapa 7: anexar as políticas do IAM ao perfil do IAM
<a name="tutorial-build-mf-attach"></a>

Nesta etapa, você anexa as duas políticas do IAM que criou anteriormente ao perfil `BankdemoCodeBuildServiceRole` do IAM.

1. Faça login no console do IAM e escolha **Perfis** no painel de navegação esquerdo.

1. Em **Perfil do IAM**, escolha a função que você criou anteriormente, por exemplo, `BankdemoCodeBuildServiceRole`.

1. Em **Políticas de permissões**, escolha **Adicionar permissões** e, em seguida, **Anexar políticas**.

1. Em **Outras políticas de permissões**, escolha as políticas que você criou anteriormente, por exemplo, `m2CodeBuildPolicy` e `BankdemoCodeBuildRolePolicy`.

1. Escolha **Anexar políticas**.

## Etapa 8: criar o CodeBuild projeto
<a name="tutorial-build-mf-create-project"></a>

Nesta etapa, você cria o CodeBuild projeto.

1. Faça login no CodeBuild console e escolha **Criar projeto de compilação**.

1. Na seção **Configuração do projeto**, forneça um nome para o projeto, por exemplo, `codebuild-bankdemo-project`.

1. Na seção **Fonte**, em **Provedor de origem**, escolha **Amazon S3** e, em seguida, escolha o bucket de entrada que você criou anteriormente, por exemplo, `codebuild-regionId-accountId-input-bucket`.

1. No campo **Chave do objeto do S3 ou pasta do S3**, insira o nome do arquivo zip que você carregou no bucket do S3. Nesse caso, o nome do arquivo é `bankdemo.zip`.

1. Na seção **Ambiente**, escolha **Imagem personalizada**.

1. No campo **Tipo de ambiente**, escolha **Linux**.

1. Em **Registro de imagens**, escolha **Outro registro**.

1. No campo **URL do registro externo**, 
   + Para Rocket Software v9: Entre. `673918848628.dkr.ecr.us-west-1.amazonaws.com/m2-enterprise-build-tools:9.0.7.R1` Se você estiver usando uma AWS região diferente com o Rocket Software v9, você também pode especificar ` 673918848628.dkr.ecr.<m2-region>.amazonaws.com/m2-enterprise-build-tools:9.0.7.R1` onde <m2-region>está uma AWS região na qual o serviço de modernização de AWS mainframe está disponível (por exemplo,). `eu-west-3`
   + Para Rocket Software v8: Entrar `673918848628.dkr.ecr.us-west-2.amazonaws.com/m2-enterprise-build-tools:8.0.9.R1`
   + Para Rocket Software v7: Entrar `673918848628.dkr.ecr.us-west-2.amazonaws.com/m2-enterprise-build-tools:7.0.R10`

1. Em **Perfil de serviço**, escolha **Perfil de serviço existente** e, no campo **ARN o perfil**, escolha o perfil de serviço que você criou anteriormente; por exemplo, `BankdemoCodeBuildServiceRole`.

1. Na seção **Buildspec**, escolha **Usar um arquivo buildspec**.

1. Na seção **Artefatos**, em **Tipo**, escolha **Amazon** S3 e, em seguida, escolha seu bucket de saída, por exemplo, `codebuild-regionId-accountId-output-bucket`.

1. No campo **Nome**, insira o nome de uma pasta no bucket que você deseja que contenha os artefatos de saída da compilação, por exemplo, `bankdemo-output.zip`.

1. Em **Embalagem de artefatos**, escolha **Zip**.

1. Selecione **Create build project (Criar projeto de compilação)**.

## Etapa 9: iniciar a compilação
<a name="tutorial-build-mf-start"></a>

Nesta etapa, você inicia a compilação.

1. Faça login no CodeBuild console.

1. No painel de navegação esquerdo, selecione **Criar projetos**.

1. Escolha o projeto de compilação que você criou anteriormente, por exemplo, `codebuild-bankdemo-project`.

1. Selecione **Iniciar compilação**.

Esse comando inicia a compilação. A compilação é executada de forma assíncrona. A saída do comando é um JSON que inclui o id do atributo. Esse id de atributo é uma referência ao id de CodeBuild compilação da compilação que você acabou de iniciar. Você pode ver o status da compilação no CodeBuild console. Você também pode ver logs detalhados sobre a execução da compilação no console. Para obter mais informações, consulte [Exibir informações detalhadas da compilação](https://docs.aws.amazon.com/codebuild/latest/userguide/getting-started-build-log-console.html) no *Guia do usuário do AWS CodeBuild *.

Quando a fase atual for CONCLUÍDA, significa que sua compilação foi concluída com sucesso e que seus artefatos compilados estão prontos no Amazon S3.

## Etapa 10: baixar artefatos de saída
<a name="tutorial-build-mf-download-output"></a>

Nesta etapa, você baixa os artefatos de saída do Amazon S3. A ferramenta de construção da Rocket Software pode criar vários tipos diferentes de executáveis. Neste tutorial, ele gera objetos compartilhados.

1. Faça login no console do Amazon S3.

1. Na seção **Buckets** role="bold">, escolha o nome do bucket de saída, por exemplo, `codebuild-regionId-accountId-output-bucket`.

1. Escolha **Baixar** role="bold">.

1. Não descompacte o arquivo obtido por download. Navegue até a pasta de destino para ver os artefatos de compilação. Isso inclui os objetos compartilhados do `.so` Linux.

## Limpar os recursos
<a name="tutorial-build-mf-clean"></a>

Se você não precisar mais dos recursos que criou para este tutorial, exclua-os para evitar cobranças adicionais. Para fazer isso, realize as etapas a seguir:
+ Exclua os buckets do S3 que você criou para este tutorial. Para obter mais informações, consulte [Excluir um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html) no *Guia do usuário do Amazon Simple Storage Service*.
+ Exclua as políticas de IAM que você criou para este tutorial. Para obter mais informações, consulte [Exclusão de políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-delete.html) no *Guia do usuário do IAM*.
+ Exclua o perfil do IAM que você criou para este tutorial. Para obter mais informações sobre como excluir uma função, consulte [Excluir funções ou perfis de instância](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) no *Manual do usuário do IAM*.
+ Exclua o CodeBuild projeto que você criou para este tutorial. Para obter mais informações, consulte [Excluir um projeto de compilação CodeBuild no](https://docs.aws.amazon.com/codebuild/latest/userguide/delete-project.html) *Guia AWS CodeBuild do usuário*.