Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Satellite de diffusion publique utilisant un point de terminaison de flux de données (bande étroite)
Cet exemple s'appuie sur l'analyse effectuée dans la JPSS-1 - Satellite de diffusion public (PBS) - Évaluation section du guide de l'utilisateur.
Pour compléter cet exemple, vous devez utiliser un scénario : vous souhaitez capturer le chemin de communication du HRD sous forme de fréquence intermédiaire numérique (DigiF) et le traiter tel qu'il est reçu par une application de point de terminaison de flux de données sur une instance Amazon EC2 à l'aide d'un SDR.
Voies de communication
Cette section décrit les Planifiez les voies de communication de vos flux de données étapes à suivre pour démarrer. Dans cet exemple, vous allez créer deux sections dans votre CloudFormation modèle : les sections Paramètres et Ressources.
Note
Pour plus d'informations sur le contenu d'un CloudFormation modèle, consultez la section Sections relatives aux modèles.
Pour la section Paramètres, vous allez ajouter les paramètres suivants. Vous allez spécifier des valeurs pour celles-ci lors de la création de la pile via la 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 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 Type: AWS::EC2::Image::Id
Note
Vous devez créer une paire de clés et fournir le nom du EC2Key paramètre Amazon EC2. Consultez la section Création d'une paire de clés pour votre instance Amazon EC2.
En outre, vous devrez fournir l'ID AMI spécifique à la région approprié lors de la création de la CloudFormation pile. Consultez AWS Ground Station Images de machines Amazon (AMIs).
Les extraits de modèle restants se trouvent dans la section Ressources du CloudFormation modèle.
Resources: # Resources that you would like to create should be placed within the resource section.
Dans le cadre de notre scénario visant à fournir un chemin de communication unique à une instance EC2, vous disposerez d'un seul chemin de diffusion synchrone. Selon Livraison synchrone des données cette section, vous devez configurer une instance Amazon EC2 avec une application de point de terminaison de flux de données et créer un ou plusieurs groupes de points de terminaison de flux de données.
# 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 OS_VERSION_ID=$([ -f /etc/os-release ] && . /etc/os-release && echo "${VERSION_ID}") if [ "${OS_VERSION_ID}" = "2023" ]; then PYTHON_BIN="python3"; else PYTHON_BIN="python"; fi echo "Configuring dataflow endpoint application streams" streams_configured=false for attempt in $(seq 1 6); do if ${PYTHON_BIN} "${GROUND_STATION_BIN_DIR}/configure_streams.py" --configFileName "${STREAM_CONFIG_PATH}"; then streams_configured=true break fi echo "configure_streams attempt ${attempt} failed; retrying in 10s" sleep 10 done if [ "${streams_configured}" = "true" ]; then sleep 2 ${PYTHON_BIN} "${GROUND_STATION_BIN_DIR}/save_default_config.py" else echo "ERROR: configure_streams failed after ${attempt} attempts; not saving a default config" fi 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
En outre, vous devrez également créer les politiques et les rôles appropriés pour permettre de AWS Ground Station créer une interface réseau élastique (ENI) dans votre compte.
# 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 configs
Cette section présente les Création de configurations étapes à suivre pour démarrer.
Vous aurez besoin d'une configuration de suivi pour définir vos préférences en matière d'utilisation de l'autotrack. La sélection de PREFERRED comme autotrack peut améliorer la qualité du signal, mais cela n'est pas obligatoire pour atteindre la qualité du signal en raison de la qualité suffisante des JPSS-1 éphémérides.
TrackingConfig: Type: AWS::GroundStation::Config Properties: Name: "JPSS Tracking Config" ConfigData: TrackingConfig: Autotrack: "PREFERRED"
En fonction du chemin de communication, vous devez définir une configuration antenne-liaison descendante pour représenter la partie satellite, ainsi qu'une configuration de point de terminaison de flux de données pour faire référence au groupe de points de terminaison de flux de données qui définit les détails des points de terminaison.
# 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 profil de mission
Cette section présente les Création d'un profil de mission étapes à suivre pour démarrer.
Maintenant que vous disposez des configurations associées, vous pouvez les utiliser pour créer le flux de données. Vous utiliserez les valeurs par défaut pour les autres paramètres.
# 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
L'assembler
Grâce aux ressources ci-dessus, vous pouvez désormais planifier des JPSS-1 contacts pour la diffusion synchrone des données depuis n'importe lequel de vos utilisateurs intégrés. AWS Ground Station AWS Ground Station Emplacements
Ce qui suit est un CloudFormation modèle complet qui inclut toutes les ressources décrites dans cette section combinées en un seul modèle qui peut être directement utilisé dans CloudFormation.
Le CloudFormation modèle nommé AquaSnppJpssTerraDigIF.yml est conçu pour vous donner un accès rapide pour commencer à recevoir des données de fréquence intermédiaire numérisées (DigiF) pour les satellites Aqua, SNPP et JPSS-1/NOAA-20 Terra. Il contient une instance Amazon EC2 et les CloudFormation ressources nécessaires pour recevoir des données de diffusion directe DigiF brutes.
Si Aqua, SNPP et Terra ne sont pas intégrés à votre compte, consultez. JPSS-1/NOAA-20 satellite embarqué
Note
Vous pouvez accéder au modèle en accédant au compartiment Amazon S3 intégré par le client à l'aide AWS d'informations d'identification valides. Les liens ci-dessous utilisent un compartiment Amazon S3 régional. Modifiez le code de us-west-2 région pour représenter la région correspondante dans laquelle vous souhaitez créer la CloudFormation
pile.
En outre, les instructions suivantes utilisent YAML. Cependant, les modèles sont disponibles au format YAML et JSON. Pour utiliser JSON, remplacez l'extension de .yml fichier par .json lors du téléchargement du modèle.
Pour télécharger le modèle à l'aide de AWS CLI, utilisez la commande suivante :
aws s3 cp s3://groundstation-cloudformation-templates-us-west-2/AquaSnppJpssTerraDigIF.yml .
Vous pouvez consulter le modèle et le télécharger dans la console en entrant l'URL suivante dans votre navigateur :
https://s3.console.aws.amazon.com/s3/object/groundstation-cloudformation-templates-us-west-2/AquaSnppJpssTerraDigIF.yml
Vous pouvez spécifier le modèle directement en CloudFormation utilisant le lien suivant :
https://groundstation-cloudformation-templates-us-west-2.s3.us-west-2.amazonaws.com/AquaSnppJpssTerraDigIF.yml
Quelles ressources supplémentaires le modèle définit-il ?
Le AquaSnppJpssTerraDigIF modèle inclut les ressources supplémentaires suivantes :
-
Déclencheurs CloudWatch d'événements (Facultatif) : AWS Lambda fonction déclenchée à l'aide d' CloudWatch événements envoyés AWS Ground Station avant et après un contact. La AWS Lambda fonction démarrera et arrêtera éventuellement votre instance Receiver.
-
(Facultatif) Vérification EC2 pour les contacts : option permettant d'utiliser Lambda pour configurer un système de vérification de vos instances Amazon EC2 pour les contacts avec notification SNS. Il est important de noter que cela peut entraîner des frais en fonction de votre utilisation actuelle.
-
Ground Station Amazon Machine Image Retrieval Lambda : option permettant de sélectionner le logiciel installé sur votre instance et l'AMI de votre choix. Les options logicielles incluent une application de point de terminaison de flux de données, avec ou sans radio définie par logiciel. Ces options peuvent changer à mesure que des mises à jour logicielles et des fonctionnalités supplémentaires sont publiées.
-
Profils de mission supplémentaires - Profils de mission pour d'autres satellites de diffusion publique (Aqua, SNPP et Terra).
-
Configurations d'antenne et de liaison descendante supplémentaires - Configurations de liaison descendante d'antenne pour d'autres satellites de diffusion publique (Aqua, SNPP et Terra).
Les valeurs et paramètres pour les satellites dans ce modèle sont déjà renseignés. Grâce à ces paramètres, vous pouvez facilement les utiliser AWS Ground Station immédiatement avec ces satellites. Vous n'avez pas besoin de configurer vos propres valeurs pour les utiliser AWS Ground Station lorsque vous utilisez ce modèle. Toutefois, vous pouvez personnaliser les valeurs pour que le modèle fonctionne selon votre cas d'utilisation.
Où puis-je recevoir mes données ?
Le groupe de points de terminaison de flux de données est configuré pour utiliser l'interface réseau d'instance de récepteur créée dans le cadre du modèle. L'instance de récepteur utilise une application de point de terminaison de flux de données pour recevoir le flux de données depuis le port défini par AWS Ground Station le point de terminaison de flux de données. Une fois reçues, les données sont disponibles pour la consommation via le port UDP 50000 sur l'adaptateur de bouclage de l'instance du récepteur. Pour plus d'informations sur la configuration d'un groupe de points de terminaison de flux de données, voir AWS::GroundStation : :. DataflowEndpointGroup