

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á.

# Satélite de transmissão pública utilizando um ponto final de fluxo de dados (banda estreita)
<a name="examples.pbs-data-dataflow-endpoint"></a>

 Este exemplo se baseia na análise feita na [JPSS-1 - Satélite de transmissão pública (PBS) - Avaliação](examples.md#examples.pbs-definition) seção do guia do usuário. 

 Para concluir este exemplo, você precisará assumir um cenário: capturar o caminho de comunicação do HRD como frequência intermediária digital (DigIF) e processá-lo conforme ele é recebido por um aplicativo de endpoint de fluxo de dados em uma instância da EC2 Amazon usando um SDR. 

## Caminhos de comunicação
<a name="examples.pbs-dataflow-endpoint.communication-paths"></a>

 Esta seção representa [Planeje seus caminhos de comunicação de fluxo de dados](getting-started.step2.md) como começar. Neste exemplo, você criará duas seções em seu CloudFormation modelo: seções de parâmetros e recursos.

**nota**  
 Para obter mais informações sobre o conteúdo de um CloudFormation modelo, consulte [as seções Modelo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html). 

 Para a seção Parâmetros, você adicionará os seguintes parâmetros. Você especificará valores para eles ao criar a pilha por meio do CloudFormation console. 

```
Parameters:
  EC2Key:
    Description: The SSH key used to access the EC2 receiver instance. Choose any SSH key if you are not creating an EC2 receiver instance. For instructions on how to create an SSH key see [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html)
    Type: AWS::EC2::KeyPair::KeyName
    ConstraintDescription: must be the name of an existing EC2 KeyPair.

  ReceiverAMI:
    Description: The Ground Station DDX AMI ID you want to use. Please note that AMIs are region specific. For instructions on how to retrieve an AMI see [https://docs.aws.amazon.com/ground-station/latest/ug/dataflows.ec2-configuration.html#dataflows.ec2-configuration.amis](https://docs.aws.amazon.com/ground-station/latest/ug/dataflows.ec2-configuration.html#dataflows.ec2-configuration.amis)
    Type: AWS::EC2::Image::Id
```

**nota**  
 Você **precisa** criar um par de chaves e fornecer o nome para o EC2 `EC2Key` parâmetro Amazon. Consulte [Criar um par de chaves para sua EC2 instância da Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html).   
 Além disso, você **precisará** fornecer a ID de AMI **específica da região** correta ao criar a CloudFormation pilha. Consulte [AWS Ground Station Imagens de máquinas da Amazon (AMIs)](dataflows.ec2-configuration.md#dataflows.ec2-configuration.amis). 

 Os trechos de modelo restantes pertencem à seção Recursos do CloudFormation modelo. 

```
Resources:
  # Resources that you would like to create should be placed within the resource section.
```

 Dado nosso cenário para fornecer um único caminho de comunicação para uma EC2 instância, você terá um único caminho de entrega síncrono. De acordo com a [Entrega síncrona de dados](getting-started.step2.md#getting-started.step2.sync-data-delivery) seção, você deve instalar e configurar uma EC2 instância da Amazon com um aplicativo de endpoint de fluxo de dados e criar um ou mais grupos de endpoints de fluxo de dados. 

```
  # The EC2 instance that will send/receive data to/from your satellite using AWS Ground Station.
  ReceiverInstance:
    Type: AWS::EC2::Instance
    Properties:
      DisableApiTermination: false
      IamInstanceProfile: !Ref GeneralInstanceProfile
      ImageId: !Ref ReceiverAMI
      InstanceType: m5.4xlarge
      KeyName: !Ref EC2Key
      Monitoring: true
      PlacementGroupName: !Ref ClusterPlacementGroup
      SecurityGroupIds:
        - Ref: InstanceSecurityGroup
      SubnetId: !Ref ReceiverSubnet
      BlockDeviceMappings:
        - DeviceName: /dev/xvda
          Ebs:
            VolumeType: gp2
            VolumeSize: 40
      Tags:
        - Key: Name
          Value: !Join [ "-" , [ "Receiver" , !Ref "AWS::StackName" ] ]
      UserData:
        Fn::Base64:
          |
          #!/bin/bash
          exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1
          echo `date +'%F %R:%S'` "INFO: Logging Setup" >&2

          GROUND_STATION_DIR="/opt/aws/groundstation"
          GROUND_STATION_BIN_DIR="${GROUND_STATION_DIR}/bin"
          STREAM_CONFIG_PATH="${GROUND_STATION_DIR}/customer_stream_config.json"

          echo "Creating ${STREAM_CONFIG_PATH}"
          cat << STREAM_CONFIG > "${STREAM_CONFIG_PATH}"
          {
            "ddx_streams": [
              {
                "streamName": "Downlink",
                "maximumWanRate": 4000000000,
                "lanConfigDevice": "lo",
                "lanConfigPort": 50000,
                "wanConfigDevice": "eth1",
                "wanConfigPort": 55888,
                "isUplink": false
              }
            ]
          }
          STREAM_CONFIG

          echo "Waiting for dataflow endpoint application to start"
          while netstat -lnt | awk '$4 ~ /:80$/ {exit 1}'; do sleep 10; done

          echo "Configuring dataflow endpoint application streams"
          python "${GROUND_STATION_BIN_DIR}/configure_streams.py" --configFileName "${STREAM_CONFIG_PATH}"
          sleep 2
          python "${GROUND_STATION_BIN_DIR}/save_default_config.py"

          exit 0

  # The AWS Ground Station Dataflow Endpoint Group that defines the endpoints that AWS Ground
  # Station will use to send/receive data to/from your satellite.
  DataflowEndpointGroup:
    Type: AWS::GroundStation::DataflowEndpointGroup
    Properties:
      ContactPostPassDurationSeconds: 180
      ContactPrePassDurationSeconds: 120
      EndpointDetails:
        - Endpoint:
            Name: !Join [ "-" , [ !Ref "AWS::StackName" , "Downlink" ] ] # needs to match DataflowEndpointConfig name
            Address:
              Name: !GetAtt ReceiverInstanceNetworkInterface.PrimaryPrivateIpAddress
              Port: 55888
          SecurityDetails:
            SecurityGroupIds:
              - Ref: "DataflowEndpointSecurityGroup"
            SubnetIds:
              - !Ref ReceiverSubnet
            RoleArn: !GetAtt DataDeliveryServiceRole.Arn

  # The security group for your EC2 instance.
  InstanceSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: AWS Ground Station receiver instance security group.
      VpcId: !Ref ReceiverVPC
      SecurityGroupIngress:
        # To allow SSH access to the instance, add another rule allowing tcp port 22 from your CidrIp
        - IpProtocol: udp
          FromPort: 55888
          ToPort: 55888
          SourceSecurityGroupId: !Ref DataflowEndpointSecurityGroup
          Description: "AWS Ground Station Downlink Stream"

  # The security group that the ENI created by AWS Ground Station belongs to.
  DataflowEndpointSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Security Group for AWS Ground Station registration of Dataflow Endpoint Groups
      VpcId: !Ref ReceiverVPC
      SecurityGroupEgress:
        - IpProtocol: udp
          FromPort: 55888
          ToPort: 55888
          CidrIp: 10.0.0.0/8
          Description: "AWS Ground Station Downlink Stream To 10/8"
        - IpProtocol: udp
          FromPort: 55888
          ToPort: 55888
          CidrIp: 172.16.0.0/12
          Description: "AWS Ground Station Downlink Stream To 172.16/12"
        - IpProtocol: udp
          FromPort: 55888
          ToPort: 55888
          CidrIp: 192.168.0.0/16
          Description: "AWS Ground Station Downlink Stream To 192.168/16"

  # The placement group in which your EC2 instance is placed.
  ClusterPlacementGroup:
    Type: AWS::EC2::PlacementGroup
    Properties:
      Strategy: cluster

  ReceiverVPC:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: "10.0.0.0/16"
      Tags:
        - Key: "Name"
          Value: "AWS Ground Station - PBS to dataflow endpoint Example VPC"
        - Key: "Description"
          Value: "VPC for EC2 instance receiving AWS Ground Station data"

  ReceiverSubnet:
    Type: AWS::EC2::Subnet
    Properties:
      # Ensure your CidrBlock will always have at least one available IP address per dataflow endpoint.
      # See https://docs.aws.amazon.com/vpc/latest/userguide/subnet-sizing.html for subent sizing guidelines.
      CidrBlock: "10.0.0.0/24"
      Tags:
        - Key: "Name"
          Value: "AWS Ground Station - PBS to dataflow endpoint Example Subnet"
        - Key: "Description"
          Value: "Subnet for EC2 instance receiving AWS Ground Station data"
      VpcId: !Ref ReceiverVPC

  # An ENI providing a fixed IP address for AWS Ground Station to connect to.
  ReceiverInstanceNetworkInterface:
    Type: AWS::EC2::NetworkInterface
    Properties:
      Description: Floating network interface providing a fixed IP address for AWS Ground Station to connect to.
      GroupSet:
        - !Ref InstanceSecurityGroup
      SubnetId: !Ref ReceiverSubnet

  # Attach the ENI to the EC2 instance.
  ReceiverInstanceInterfaceAttachment:
    Type: AWS::EC2::NetworkInterfaceAttachment
    Properties:
      DeleteOnTermination: false
      DeviceIndex: "1"
      InstanceId: !Ref ReceiverInstance
      NetworkInterfaceId: !Ref ReceiverInstanceNetworkInterface
```

 Além disso, você também precisará criar as políticas e funções apropriadas AWS Ground Station para permitir a criação de uma interface de rede elástica (ENI) em sua conta. 

```
  # AWS Ground Station assumes this role to create/delete ENIs in your account in order to stream data.
  DataDeliveryServiceRole:
    Type: AWS::IAM::Role
    Properties:
      Policies:
        - PolicyDocument:
            Statement:
              - Action:
                  - ec2:CreateNetworkInterface
                  - ec2:DeleteNetworkInterface
                  - ec2:CreateNetworkInterfacePermission
                  - ec2:DeleteNetworkInterfacePermission
                  - ec2:DescribeSubnets
                  - ec2:DescribeVpcs
                  - ec2:DescribeSecurityGroups
                Effect: Allow
                Resource: '*'
            Version: '2012-10-17'
          PolicyName: DataDeliveryServicePolicy
      AssumeRolePolicyDocument:
        Version: 2012-10-17
        Statement:
          - Effect: Allow
            Principal:
              Service:
              - groundstation.amazonaws.com
            Action:
            - sts:AssumeRole

  # The EC2 instance assumes this role.
  InstanceRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: "Allow"
            Principal:
              Service:
                - "ec2.amazonaws.com"
            Action:
              - "sts:AssumeRole"
      Path: "/"
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
        - arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role
        - arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
        - arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforSSM

  # The instance profile for your EC2 instance.
  GeneralInstanceProfile:
    Type: AWS::IAM::InstanceProfile
    Properties:
      Roles:
        - !Ref InstanceRole
```

## AWS Ground Station configurações
<a name="examples.pbs-dataflow-endpoint.configs"></a>

 Esta seção representa [Crie configurações](getting-started.step3.md) como começar. 

 Você precisará de uma *configuração de rastreamento para definir sua preferência de* uso do autotrack. Selecionar *PREFERRED* como trilha automática pode melhorar a qualidade do sinal, mas não é necessário atender à qualidade do sinal devido à qualidade suficiente das efemérides JPSS-1. 

```
  TrackingConfig:
    Type: AWS::GroundStation::Config
    Properties:
      Name: "JPSS Tracking Config"
      ConfigData:
        TrackingConfig:
          Autotrack: "PREFERRED"
```

 Com base no caminho de comunicação, você precisará definir uma configuração de *antena-downlink* para representar a parte do satélite, bem como uma configuração de endpoint de fluxo de dados para se referir ao grupo de endpoints de fluxo *de dados que define os detalhes do endpoint*. 

```
  # The AWS Ground Station Antenna Downlink Config that defines the frequency spectrum used to
  # downlink data from your satellite.
  SnppJpssDownlinkDigIfAntennaConfig:
    Type: AWS::GroundStation::Config
    Properties:
      Name: "SNPP JPSS Downlink DigIF Antenna Config"
      ConfigData:
        AntennaDownlinkConfig:
          SpectrumConfig:
            Bandwidth:
              Units: "MHz"
              Value: 30
            CenterFrequency:
              Units: "MHz"
              Value: 7812
            Polarization: "RIGHT_HAND"

  # The AWS Ground Station Dataflow Endpoint Config that defines the endpoint used to downlink data
  # from your satellite.
  DownlinkDigIfEndpointConfig:
    Type: AWS::GroundStation::Config
    Properties:
      Name: "Aqua SNPP JPSS Downlink DigIF Endpoint Config"
      ConfigData:
        DataflowEndpointConfig:
          DataflowEndpointName: !Join [ "-" , [ !Ref "AWS::StackName" , "Downlink" ] ]
          DataflowEndpointRegion: !Ref AWS::Region
```

## AWS Ground Station perfil da missão
<a name="examples.pbs-dataflow-endpoint.mission-profile"></a>

 Esta seção representa [Criar perfil de missão](getting-started.step4.md) como começar. 

 Agora que você tem as configurações associadas, pode usá-las para criar o fluxo de dados. Você usará os padrões para os demais parâmetros. 

```
  # The AWS Ground Station Mission Profile that groups the above configurations to define how to
  # uplink and downlink data to your satellite.
  SnppJpssMissionProfile:
    Type: AWS::GroundStation::MissionProfile
    Properties:
      Name: "37849 SNPP And 43013 JPSS"
      ContactPrePassDurationSeconds: 120
      ContactPostPassDurationSeconds: 60
      MinimumViableContactDurationSeconds: 180
      TrackingConfigArn: !Ref TrackingConfig
      DataflowEdges:
        - Source: !Ref SnppJpssDownlinkDigIfAntennaConfig
          Destination: !Ref DownlinkDigIfEndpointConfig
```

## Juntando tudo
<a name="examples.pbs-dataflow-endpoint.putting-it-together"></a>

 Com os recursos acima, agora você tem a capacidade de agendar contatos JPSS-1 para entrega síncrona de dados a partir de qualquer um dos seus contatos integrados. AWS Ground Station [AWS Ground Station Localizações](aws-ground-station-antenna-locations.md) 

 A seguir está um CloudFormation modelo completo que inclui todos os recursos descritos nesta seção combinados em um único modelo que pode ser usado diretamente em CloudFormation. 

 O CloudFormation modelo nomeado foi `AquaSnppJpssTerraDigIF.yml` projetado para fornecer acesso rápido para começar a receber dados de frequência intermediária digitalizada (DigIF) para os satélites Aqua, SNPP, JPSS-1/NOAA-20 e Terra. Ele contém uma EC2 instância da Amazon e os CloudFormation recursos necessários para receber dados brutos de transmissão direta do DigiF. 

 Se Aqua, SNPP, JPSS-1/NOAA-20 e Terra não estiverem integrados à sua conta, consulte. [Satélite a bordo](getting-started.step1.md) 

**nota**  
 Você pode acessar o modelo acessando o bucket Amazon S3 de integração do cliente usando AWS credenciais válidas. Os links abaixo usam um bucket regional do Amazon S3. Altere o código da `us-west-2` região para representar a região correspondente na qual você deseja criar a CloudFormation pilha.   
 Além disso, as instruções a seguir usam YAML. No entanto, os modelos estão disponíveis no formato YAML ou JSON. Para usar JSON, substitua a extensão do `.yml` arquivo por `.json` ao baixar o modelo. 

 Para baixar o modelo usando AWS CLI, use o seguinte comando: 

```
aws s3 cp s3://groundstation-cloudformation-templates-us-west-2/AquaSnppJpssTerraDigIF.yml .
```

 É possível visualizar e fazer download do modelo no console navegando até o seguinte URL no seu navegador: 

```
https://s3.console.aws.amazon.com/s3/object/groundstation-cloudformation-templates-us-west-2/AquaSnppJpssTerraDigIF.yml
```

 Você pode especificar o modelo diretamente CloudFormation usando o seguinte link: 

```
https://groundstation-cloudformation-templates-us-west-2.s3.us-west-2.amazonaws.com/AquaSnppJpssTerraDigIF.yml
```

**Quais recursos adicionais o modelo define?**

O `AquaSnppJpssTerraDigIF` modelo inclui os seguintes recursos adicionais:
+ (Opcional) **Acionadores de CloudWatch eventos** - AWS Lambda Função que é acionada usando CloudWatch eventos enviados AWS Ground Station antes e depois de um contato. A AWS Lambda função iniciará e, opcionalmente, interromperá sua instância receptora. 
+ (Opcional) **EC2 Verificação de contatos** - A opção de usar o Lambda para configurar um sistema de verificação de suas EC2 instâncias da Amazon para contatos com notificação do SNS. É importante observar que isso pode incorrer em cobranças, dependendo do seu uso atual. 
+  **Ground Station Amazon Machine Image Retrieval Lambda**: a opção de selecionar qual software está instalado em sua instância e a AMI de sua escolha. As opções de software incluem `DDX 2.6.2 Only` e `DDX 2.6.2 with qRadio 3.6.0`. Essas opções continuarão a se expandir à medida que atualizações e recursos adicionais de software forem lançados. 
+  **Perfis de missão adicionais** - Perfis de missão para satélites de transmissão pública adicionais (Aqua, SNPP e Terra). 
+  Configurações **adicionais de downlink de antena - Configurações de downlink** de antena para satélites de transmissão pública adicionais (Aqua, SNPP e Terra). 

 Os valores e os parâmetros dos satélites nesse modelo já estão preenchidos. Esses parâmetros facilitam o uso AWS Ground Station imediato desses satélites. Você não precisa configurar seus próprios valores para usar AWS Ground Station ao usar esse modelo. No entanto, é possível personalizar os valores para que o modelo funcione para seu caso de uso. 

**Onde recebo os meus dados?**

 O grupo de endpoints do fluxo de dados é configurado para usar a interface de rede da instância do receptor que parte do modelo cria. A instância receptora usa um aplicativo de endpoint de fluxo de dados para receber o stream de dados da AWS Ground Station porta definida pelo endpoint de fluxo de dados. Após serem recebidos, os dados estarão disponíveis para consumo por meio da porta UDP 50000 no adaptador de loopback da instância do receptor. Para obter mais informações sobre como configurar um grupo de endpoints de fluxo de dados, consulte. [ AWS::GroundStation::DataflowEndpointGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-dataflowendpointgroup.html) 