AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: 'mars-pyportal ' Globals: Function: Timeout: 10 Parameters: NasaApiKey: Type: String Default: DEMO_KEY Description: The API key for the NASA APIs. Resources: MarsApi: Type: AWS::Serverless::Api Properties: StageName: Prod Auth: ApiKeyRequired: true UsagePlan: CreateUsagePlan: PER_API FetchMarsDataFunction: Type: AWS::Serverless::Function Properties: CodeUri: s3://sar-apps-moheeb/e5cc7628409bac36bef879b338109ada Handler: app.lambda_handler Runtime: python3.8 Environment: Variables: BUCKET: Ref: Bucket NASA_API_KEY: Ref: NasaApiKey Policies: - S3WritePolicy: BucketName: Ref: Bucket Events: Mars: Type: Api Properties: RestApiId: Ref: MarsApi Path: /mars Method: get Bucket: Type: AWS::S3::Bucket Outputs: MarsApiUrl: Description: API GW endpoint Value: Fn::Sub: https://${MarsApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/mars MarsApiKey: Description: Api key Value: Fn::Sub: https://${AWS::Region}.console.aws.amazon.com/apigateway/home?region=${AWS::Region}#/api-keys/${MarsApi.ApiKey} FetchMarsDataFunction: Description: function arn Value: Fn::GetAtt: - FetchMarsDataFunction - Arn S3Bucket: Description: S3 Bucket that images get uploaded to Value: Ref: Bucket