简体   繁体   中英

AWS copilot deployed service is not accessible?

I have a simple backend srevice that I just deployed with copilot. However, I don't know where to access it?

According to AWS console it's running and active. I can even see it in the logs that it has been started.

My manifest:

# The manifest for the "user-service" service.
# Read the full specification for the "Backend Service" type at:
#  https://aws.github.io/copilot-cli/docs/manifest/backend-service/

# Your service name will be used in naming your resources like log groups, ECS services, etc.
name: user-service
type: Backend Service

# Your service does not allow any traffic.

# Configuration for your containers and service.
image:
  # Docker build arguments. For additional overrides: https://aws.github.io/copilot-cli/docs/manifest/backend-service/#image-build
  build: ./Dockerfile
  port: 9000

cpu: 256       # Number of CPU units for the task.
memory: 512    # Amount of memory in MiB used by the task.
count: 1       # Number of tasks that should be running in your service.

# Optional fields for more advanced use-cases.
#
variables:                    # Pass environment variables as key value pairs.
  SERVER_PORT: 9000
  NODE_ENV: test
  
secrets:                      # Pass secrets from AWS Systems Manager (SSM) Parameter Store.
  ACCESS_TOKEN_SECRET: ACCESS_TOKEN_SECRET
  REFRESH_TOKEN_SECRET: REFRESH_TOKEN_SECRET
  MONGODB_URL: MONGODB_URL

# You can override any of the values defined above by environment.
environments:
  test:
    variables:
      NODE_ENV: test
#    count: 2               # Number of tasks to run for the "test" environment.

My Dockerfile

# Check out https://hub.docker.com/_/node to select a new base image
FROM node:lts-buster-slim

# Set to a non-root built-in user `node`
USER node

# Create app directory (with user `node`)
RUN mkdir -p /home/node/app

WORKDIR /home/node/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY --chown=node package*.json ./

RUN npm install

# Bundle app source code
COPY --chown=node . .

RUN npm run build

# Bind to all network interfaces so that it can be mapped to the host OS
ENV HOST=0.0.0.0 PORT=3000

EXPOSE 9000
CMD [ "node", "." ]

This works fine locally, with docker-compose. But where can I find the URL of the deployed service? I checked ECS console and the task has a public IP. However I can't connect to that.

What's missing here?

Nm.. my bad. Backend services are not supposed to be reachable via internet. They expose endpoints but should talk to each other (or the frontend) via service discovery.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM