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 서비스 인터페이스를 생성할 때 다음 파라미터에 대한 값을 제공해야 합니다.
{ "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는 다음과 같은 모든 조치를 지원합니다.
단일 입력 매개 변수를 사용합니다.
출력 객체 또는 오류, 두 객체 중 하나를 반환합니다.
예를 예시 S3
서비스에는 PutObject 가 포함됩니다. 조치. App Services 는 단일 입력 유형의 PutObjectInput 을 사용하기 때문에 이 조치 을 지원합니다. 를 반환하고 PutObjectOutput 또는 오류.
Amazon Web Services 서비스 규칙
Amazon Web Services 서비스 및 조치를 활성화하려면 규칙을 지정해야 합니다. 각 규칙은 단일 서비스 API와 해당 서비스에 대한 하나 또는 모든 조치에 적용됩니다. App Services의 다른 서비스 규칙과 마찬가지로 조치를 활성화하려면 규칙을 true
로 평가해야 합니다.
예를 들어, 다음 규칙은 Kinesis 서비스에 대한 모든 조치를 활성화합니다.
참고
When 필드의 기본값에는 빈 대괄호만 포함되어 있으며, 이는 규칙이 항상 true
로 평가되므로 작업에 대한 모든 호출이 유효하다는 의미입니다.
이 규칙은 다음과 같은 규칙 표현식 으로 표현될 수도 있습니다. actions
배열에서 서비스 이름 뒤의 별표(*
)는 해당 서비스의 모든 조치가 활성화되었음을 나타냅니다.
{ "name": "kinesis", "actions": [ "kinesis:*" ] }
규칙 조건
각 서비스 조치에 대해 사용자가 생성하는 규칙에는 해당 조치에 대한 입력 객체의 속성이 규칙의 유효성을 검사하기 위한 조건으로 포함될 수 있습니다. %%args
확장은 이러한 속성에 대한 액세스를 제공합니다.
예시
S3 PutObject
서비스에는 다음이 포함 됩니다 S3
. 조치 은 PutObjectInput 유형의 입력 객체 를 사용합니다. . %%args
확장 을 사용하여 규칙의 When 표현식 에서 PutObjectInput
객체 의 모든 속성을 참조할 수 있습니다.
PutObjectInput
객체의 Bucket
속성을 사용하면 S3 서비스에서 PutObject
작업을 활성화하지만 작업을 승인된 버킷 목록으로 제한하는 규칙을 만들 수 있습니다. 이 예에서는 승인된 버킷 이름 목록에 myS3Buckets
라는 사용자 정의 상수를 사용합니다.
이는 다음 JSON으로도 표현할 수 있습니다.
{ "name": "s3", "actions": [ "s3:PutObject" ], "when": { "%%args.Bucket": { "$in": "%%values.myS3Buckets" } } }
S3 GetObject
서비스에는 GetObject 가 포함됩니다.S3
작업은 GetObjectInput 유형의 입력 객체를 사용합니다. . %%args
확장을 사용하여 규칙의 When 표현식에서 GetObjectInput
객체의 속성을 참조할 수 있습니다.
다음 예에서는 realmReadWritableBucket
라는 특정 버킷에서 GetObject
작업을 활성화하는 규칙을 만듭니다.
이는 다음 JSON으로도 표현할 수 있습니다.
{ "name": "s3", "actions": [ "s3:GetObject" ], "when": { "%%args.Bucket": { "$in": "realmReadWritableBucket" } } }
사용법
Realm 함수 및 SDK에서 Amazon Web Services 서비스를 호출할 수 있습니다. 다음 섹션에서는 이러한 각 프로세스를 보여줍니다.
Realm 함수에서 Amazon Web Services 서비스 호출
다음 예제는 Realm 함수 내에서 다양한 Amazon Web Services 서비스를 호출하는 방법을 보여줍니다. 각 예에서는 명명된 서비스가 이미 생성되었다고 가정합니다.
S3 서비스
S3 PutObject
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; };
S3 GetObject
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; };
S3 PresignURL
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메가바이트의 파일 크기를 지원합니다.
Kinesis 서비스
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 참조 를 참조하세요. 를 참조하세요.
Lambda 서비스
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 참조 를 참조하세요. 구현 참조하세요.
SES 서비스
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 서비스
앱에서 다음 Amazon Web Services 서비스에 연결할 수 있습니다.
아테나
배치
CloudWatch
Comprehend
EC2
파이어호스
글레이셔
IOT
Kinesis
Lambda
Lex 런타임 서비스
머신 러닝
모바일 분석
polly
RDS
Redshift
Rekognition
S3
SES
단계 함수(SNF)
SNS
SQS
Texttract