Docs Menu
Docs Home
/ /
Atlas App Services
/ /

Amazon Web Services 서비스 [사용 중단됨]

이 페이지의 내용

  • 개요
  • 구성 매개변수
  • 서비스 조치
  • Amazon Web Services 서비스 규칙
  • 규칙 조건
  • 예시
  • 사용법
  • Realm 함수에서 Amazon Web Services 서비스 호출
  • 지원되는 Amazon Web Services 서비스

중요

타사 서비스 & 푸시 알림 사용 중단

App Services의 타사 서비스 및 푸시 알림은 함수에서 외부 종속성을 사용하는 HTTP 엔드포인트를 만들기 위해 더 이상 사용되지 않습니다.

웹훅은 동작에 대한 변경 없이 HTTPS 엔드포인트로 이름이 변경되었습니다. 기존 웹훅을 마이그레이션해야 합니다.

기존 서비스는,9월까지 30 계속2025 작동합니다.

타사 서비스 및 푸시 알림은 이제 더 이상 사용되지 않으므로 App Services UI에서 기본적으로 제거되었습니다. 기존 타사 서비스 또는 푸시 알림을 관리해야 하는 경우 다음을 수행하여 구성을 UI에 다시 추가할 수 있습니다.

  • 왼쪽 탐색의 Manage 섹션에서 App Settings를 클릭합니다.

  • Temporarily Re-Enable 3rd Party Services 옆의 토글 스위치를 활성화한 다음 변경 사항을 저장합니다.

Amazon Web Services (Amazon Web Services) 광범위한 클라우드 기반 서비스 컬렉션을 제공합니다. Atlas App Services 는 이러한 다양한 서비스에 연결할 수 있는 일반 Amazon Web Services 서비스를 제공합니다.

AWS 서비스 인터페이스를 생성할 때 다음 파라미터에 대한 값을 제공해야 합니다.

<Service Name>/config.json
{
"name": "<Service Name>",
"type": "aws",
"config": {
"accessKeyId": <Access Key ID>,
"region": "us-east-1"
},
"secret_config": {
"secretAccessKey": "<Secret Name>"
}
}
Parameter
설명
Service Name
config.name
서비스의 고유한 이름입니다.
Access Key ID
config.accessKeyId
AWS IAM 사용자의 액세스 키 ID입니다. 사용자는 상호 작용하려는 모든 AWS 서비스에 대해 프로그래밍 방식의 액세스 권한과 적절한 권한이 있어야 합니다.
Secret Access Key
secret_config.secretAccessKey
Access Key ID 에 ID가 지정된 IAM 사용자의 비밀 액세스 키를 저장하는 비밀 의 이름입니다. 새 IAM 사용자를 생성하거나 기존 IAM 사용자에 대한 새 액세스 키를 생성할 때 액세스 키 ID 옆에서 이 값을 찾을 수 있습니다.

다음도 참조하세요.

각 Amazon Web Services 서비스에는 해당 서비스에서 수행할 수 있는 작업이 다릅니다. App Services 는 용 Amazon Web Services SDK에 지정된 조치 Go 이름을 사용합니다. 각 서비스에 대해.

참고

App Services는 Amazon Web Services 서비스 및 조치에 Go SDK와 동일한 이름(및 대소문자)을 사용합니다.

지원되는 각 Amazon Web Services 서비스에 대해 App Services는 다음과 같은 모든 조치를 지원합니다.

  1. 단일 입력 매개 변수를 사용합니다.

  2. 출력 객체 또는 오류, 두 객체 중 하나를 반환합니다.

예를 예시 S3 서비스에는 PutObject 가 포함됩니다. 조치. App Services 는 단일 입력 유형의 PutObjectInput 을 사용하기 때문에 이 조치 을 지원합니다. 를 반환하고 PutObjectOutput 또는 오류.

Amazon Web Services 서비스 및 조치를 활성화하려면 규칙을 지정해야 합니다. 각 규칙은 단일 서비스 API와 해당 서비스에 대한 하나 또는 모든 조치에 적용됩니다. App Services의 다른 서비스 규칙과 마찬가지로 조치를 활성화하려면 규칙을 true 로 평가해야 합니다.

예를 들어, 다음 규칙은 Kinesis 서비스에 대한 모든 조치를 활성화합니다.

Amazon Web Services Kinesis 규칙.
클릭하여 확대

참고

When 필드의 기본값에는 빈 대괄호만 포함되어 있으며, 이는 규칙이 항상 true 로 평가되므로 작업에 대한 모든 호출이 유효하다는 의미입니다.

이 규칙은 다음과 같은 규칙 표현식 으로 표현될 수도 있습니다. actions 배열에서 서비스 이름 뒤의 별표(*)는 해당 서비스의 모든 조치가 활성화되었음을 나타냅니다.

{
"name": "kinesis",
"actions": [
"kinesis:*"
]
}

각 서비스 조치에 대해 사용자가 생성하는 규칙에는 해당 조치에 대한 입력 객체의 속성이 규칙의 유효성을 검사하기 위한 조건으로 포함될 수 있습니다. %%args 확장은 이러한 속성에 대한 액세스를 제공합니다.

서비스에는 다음이 포함 됩니다 S3 . 조치 은 PutObjectInput 유형의 입력 객체 를 사용합니다. . %%args 확장 을 사용하여 규칙의 When 표현식 에서 PutObjectInput 객체 의 모든 속성을 참조할 수 있습니다.

PutObjectInput 객체의 Bucket 속성을 사용하면 S3 서비스에서 PutObject 작업을 활성화하지만 작업을 승인된 버킷 목록으로 제한하는 규칙을 만들 수 있습니다. 이 예에서는 승인된 버킷 이름 목록에 myS3Buckets 라는 사용자 정의 상수를 사용합니다.

Amazon Web Services S3 규칙
클릭하여 확대

이는 다음 JSON으로도 표현할 수 있습니다.

{
"name": "s3",
"actions": [
"s3:PutObject"
],
"when": {
"%%args.Bucket": {
"$in": "%%values.myS3Buckets"
}
}
}

서비스에는 GetObject 가 포함됩니다.S3 작업은 GetObjectInput 유형의 입력 객체를 사용합니다. . %%args 확장을 사용하여 규칙의 When 표현식에서 GetObjectInput 객체의 속성을 참조할 수 있습니다.

다음 예에서는 realmReadWritableBucket 라는 특정 버킷에서 GetObject 작업을 활성화하는 규칙을 만듭니다.

Amazon Web Services S3 규칙
클릭하여 확대

이는 다음 JSON으로도 표현할 수 있습니다.

{
"name": "s3",
"actions": [
"s3:GetObject"
],
"when": {
"%%args.Bucket": {
"$in": "realmReadWritableBucket"
}
}
}

Realm 함수 및 SDK에서 Amazon Web Services 서비스를 호출할 수 있습니다. 다음 섹션에서는 이러한 각 프로세스를 보여줍니다.

다음 예제는 Realm 함수 내에서 다양한 Amazon Web Services 서비스를 호출하는 방법을 보여줍니다. 각 예에서는 명명된 서비스가 이미 생성되었다고 가정합니다.

exports = async function() {
const s3 = context.services.get('MyAwsService').s3("us-east-1");
const result = await s3.PutObject({
"Bucket": "my-bucket",
"Key": "example",
"Body": "hello there"
});
console.log(EJSON.stringify(result));
return result;
};
exports = async function(arg) {
const s3 = context.services.get('MyAwsService').s3("us-east-1");
const result = await s3.GetObject({
"Bucket": "realmReadWritableBucket",
"Key": "coffee.jpeg"
});
console.log(EJSON.stringify(result));
return result;
};
exports = function(){
const s3 = context.services.get("MyAwsService").s3("us-east-1");
const presignedUrl = s3.PresignURL({
"Bucket": "my-s3-bucket-name",
"Key": "/some/path",
// HTTP method that is valid for this signed URL. Can use PUT for uploads, or GET for downloads.
"Method": "GET",
// Duration of the lifetime of the signed url, in milliseconds
"ExpirationMS": 30000,
})
return presignedUrl
};

S3 API 참조 를 참조하세요. 구현 참조하세요.

중요

객체 크기 제한

App Services는 Amazon Web Services S3 객체로 작업할 때 최대 4메가바이트의 파일 크기를 지원합니다.

exports = async function(event) {
const kinesis = context.services.get('MyAwsService').kinesis("us-east-1");
const result = await kinesis.PutRecord({
Data: JSON.stringify(event.fullDocument),
StreamName: "realmStream",
PartitionKey: "1"
});
console.log(EJSON.stringify(result));
return result;
};

Kinesis API 참조 를 참조하세요. 를 참조하세요.

exports = async function() {
const lambda = context.services.get('MyAwsService').lambda("us-east-1");
const result = await lambda.Invoke({
FunctionName: "myLambdaFunction",
Payload: context.user.id
});
console.log(result.Payload.text());
return EJSON.parse(result.Payload.text());
};

Lambda API 참조 를 참조하세요. 구현 참조하세요.

exports = async function(){
const ses = context.services.get('MyAwsService').ses("us-east-1");
const result = await ses.SendEmail({
Source: "sender@example.com",
Destination: { ToAddresses: ["docs@mongodb.com"] },
Message: {
Body: {
Html: {
Charset: "UTF-8",
Data: `This is a message from user ${context.user.id}`
}
},
Subject: {
Charset: "UTF-8",
Data: "Test Email Please Ignore"
}
}
});
console.log(EJSON.stringify(result));
return result;
};

SES API 참조 를 참조하세요. 구현 참조하세요.

앱에서 다음 Amazon Web Services 서비스에 연결할 수 있습니다.

  • 아테나

  • 배치

  • CloudWatch

  • Comprehend

  • EC2

  • 파이어호스

  • 글레이셔

  • IOT

  • Kinesis

  • Lambda

  • Lex 런타임 서비스

  • 머신 러닝

  • 모바일 분석

  • polly

  • RDS

  • Redshift

  • Rekognition

  • S3

  • SES

  • 단계 함수(SNF)

  • SNS

  • SQS

  • Texttract

돌아가기

Twilio.send()