Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 16

0
votes
answers
26 views
+10

在AWS S3上託管一個靜態站點 - 授予只讀權限

1

我想在AWS S3上託管一個簡單的靜態站點。在AWS S3上託管一個靜態站點 - 授予只讀權限

我想要的唯一的事情就是授予READ-ONLY訪問權限,考慮到我是一個靜態網站。

對於類似的問題,前一段時間我在什麼地方找到這個水桶的政策,以克服接入問題

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "PublicReadGetObject", 
      "Effect": "Allow", 
      "Principal": "*", 
      "Action": "s3:GetObject", 
      "Resource": "arn:aws:s3:::enrico-site/*" 
     } 
    ] 
} 

現在我簡單地複製和粘貼此政策,我得到一個警告,指出

enter image description here

看看政策的內容,它似乎只授予GET和READ權限,但在安全性方面,我遠離專家。

考慮到我想授予任何人訪問存儲桶的靜態內容,即只讀但不具有寫權限,我該怎麼辦?我應該擔心我得到的警告嗎?

+2

這很好。 AWS最近進行了更改,以便在控制檯用戶可以公開訪問其S3存儲桶時更加明顯。這是幫助那些錯誤地向公衆開放桶的人的另一個線索。 – jarmod

+0

您是否相應地更改了「資源」設置? – hjpotter92

沙发
0
4

上面的策略讓任何人都可以獲取/下載任何對象。如果您希望僅將該存儲區用於網站託管目的,則這「很好」,您可以忽略該警告。

但是,如果您只想製作特定對象,例如索引頁等,您可以擺脫存儲桶策略,而只使用object ACL來公開這些文件/對象。 AWS也有相當詳細的tutorial

0
votes
answers
33 views
+10

如何連接到moto獨立服務器?

0

我剛安裝moto,並試圖用下面的node.js代碼連接到獨立服務器:如何連接到moto獨立服務器?

const AWS = require('aws-sdk') 
const ep = new AWS.Endpoint('http://127.0.0.1:5000') 
const route53 = new AWS.Route53({endpoint: ep}) 

const params = {} 
console.log(route53.listHostedZones(params)) 

代碼設置AWS服務的endpoint,它指向的moto的獨立服務器。然後向端點發送listHostedZones請求。這個程序的輸出是

Request { 
domain: null, 
service: 
Service { 
    config: 
    Config { 
     credentials: [Object], 
     credentialProvider: [Object], 
     region: undefined, 
     logger: null, 
     apiVersions: {}, 
     apiVersion: null, 
     endpoint: [Object], 
     httpOptions: [Object], 
     maxRetries: undefined, 
     maxRedirects: 10, 
     paramValidation: true, 
     sslEnabled: true, 
     s3ForcePathStyle: false, 
     s3BucketEndpoint: false, 
     s3DisableBodySigning: true, 
     computeChecksums: true, 
     convertResponseTypes: true, 
     correctClockSkew: false, 
     customUserAgent: null, 
     dynamoDbCrc32: true, 
     systemClockOffset: 0, 
     signatureVersion: null, 
     signatureCache: true, 
     retryDelayOptions: {}, 
     useAccelerateEndpoint: false }, 
    endpoint: 
    Endpoint { 
     protocol: 'http:', 
     host: '127.0.0.1:5000', 
     port: 5000, 
     hostname: '127.0.0.1', 
     pathname: '/', 
     path: '/', 
     href: 'http://127.0.0.1:5000/', 
     constructor: [Object] }, 
    _clientId: 1 }, 
operation: 'listHostedZones', 
params: {}, 
httpRequest: 
HttpRequest { 
    method: 'POST', 
    path: '/', 
    headers: { 'User-Agent': 'aws-sdk-nodejs/2.166.0 darwin/v6.2.2' }, 
    body: '', 
    endpoint: 
    Endpoint { 
     protocol: 'http:', 
     host: '127.0.0.1:5000', 
     port: 5000, 
     hostname: '127.0.0.1', 
     pathname: '/', 
     path: '/', 
     href: 'http://127.0.0.1:5000/', 
     constructor: [Object] }, 
    region: undefined, 
    _userAgent: 'aws-sdk-nodejs/2.166.0 darwin/v6.2.2' }, 
startTime: 2017-12-18T13:27:48.148Z, 
response: 
Response { 
    request: [Circular], 
    data: null, 
    error: null, 
    retryCount: 0, 
    redirectCount: 0, 
    httpResponse: 
    HttpResponse { 
     statusCode: undefined, 
     headers: {}, 
     body: undefined, 
     streaming: false, 
     stream: null }, 
    maxRetries: 3, 
    maxRedirects: 10 }, 
_asm: 
AcceptorStateMachine { 
    currentState: 'validate', 
    states: 
    { validate: [Object], 
     build: [Object], 
     afterBuild: [Object], 
     sign: [Object], 
     retry: [Object], 
     afterRetry: [Object], 
     send: [Object], 
     validateResponse: [Object], 
     extractError: [Object], 
     extractData: [Object], 
     restart: [Object], 
     success: [Object], 
     error: [Object], 
     complete: [Object] } }, 
_haltHandlersOnError: false, 
_events: 
{ validate: 
    [ [Object], 
     [Function: VALIDATE_REGION], 
     [Function: BUILD_IDEMPOTENCY_TOKENS], 
     [Function: VALIDATE_PARAMETERS] ], 
    afterBuild: 
    [ [Object], 
     [Function: SET_CONTENT_LENGTH], 
     [Function: SET_HTTP_HOST] ], 
    restart: [ [Function: RESTART] ], 
    sign: [ [Object] ], 
    validateResponse: [ [Function: VALIDATE_RESPONSE] ], 
    send: [ [Object] ], 
    httpHeaders: [ [Function: HTTP_HEADERS] ], 
    httpData: [ [Function: HTTP_DATA] ], 
    httpDone: [ [Function: HTTP_DONE] ], 
    retry: 
    [ [Function: FINALIZE_ERROR], 
     [Function: INVALIDATE_CREDENTIALS], 
     [Function: EXPIRED_SIGNATURE], 
     [Function: CLOCK_SKEWED], 
     [Function: REDIRECT], 
     [Function: RETRY_CHECK] ], 
    afterRetry: [ [Object] ], 
    build: [ [Function: buildRequest], [Function: sanitizeUrl] ], 
    extractData: [ [Function: extractData], [Function: extractRequestId] ], 
    extractError: [ [Function: extractError], [Function: extractRequestId] ], 
    httpError: [ [Function: ENOTFOUND_ERROR] ] }, 
emit: [Function: emit] } 

正如你可以在上面的輸出中看到,有一個ENOTFOUND_ERROR錯誤的。我無法在moto的控制檯輸出中找到任何新的連接。

我開始摩托車的方式是moto_server route53

> moto_server route53 
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) 

這有什麼錯我的配置?我認爲我的node.js代碼有問題。我是否誤解了endpoint的含義?

沙发
0
0
const AWS = require('aws-sdk') 
const ep = new AWS.Endpoint('http://127.0.0.1:5000') 
const initParam = { 
    endpoint: ep, 
    region: 'ap-northeast-1' 
} 
const route53 = new AWS.Route53(initParam) 

let params = { 
    CallerReference: 'unique_string_affh38h98hasd8f76a', 
    Name: 'www.example.com' 
} 
route53.createHostedZone(params, (err, data) => { 
    if (err) { 
    console.error(`createHostedZone err: ${err}`) 
    } else { 
    console.log(`createHostedZone data: ${JSON.stringify(data)}`) 
    } 
}) 

我忘了設置region參數。我查看listHostedZones()的輸出的方式是錯誤的。糾正它們後,代碼正常工作。

0
votes
answers
24 views
+10

AWS s3存儲桶上的「content-MD5」錯誤

0

我正在創建一個應用程序,它將視頻文件發送到Amazon s3存儲桶,但只能在將apk重新上傳到手機之前發送1個視頻。拋出的錯誤與服務上的「BadDigest」錯誤有關:「Amazon S3」。以下是輸出錯誤。AWS s3存儲桶上的「content-MD5」錯誤

11-08 23:56:33.805 26045-26045/org.----------.videorecorder_aws W/System.err: com.amazonaws.services.s3.model.AmazonS3Exception: The Content-MD5 you specified did not match what we received. (Service: Amazon S3; Status Code: 400; Error Code: BadDigest; Request ID: 3345945A95914871), S3 Extended Request ID: pSWjCNJ6sMOiFytjZr0PRn9rns3jFoMkECoI+lfXgF0agfQTY4CdvXlsYJbCBK9qYE/OoAkWTrY= 
11-08 23:56:33.806 26045-26045/org.----------.videorecorder_aws W/System.err:  at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:729) 
11-08 23:56:33.806 26045-26045/org.----------.videorecorder_aws W/System.err:  at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:405) 
11-08 23:56:33.806 26045-26045/org.----------.videorecorder_aws W/System.err:  at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:212) 
11-08 23:56:33.806 26045-26045/org.----------.videorecorder_aws W/System.err:  at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4625) 
11-08 23:56:33.807 26045-26045/org.----------.videorecorder_aws W/System.err:  at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1728) 
11-08 23:56:33.807 26045-26045/org.----------.videorecorder_aws W/System.err:  at com.amazonaws.mobileconnectors.s3.transferutility.UploadTask.uploadSinglePartAndWaitForCompletion(UploadTask.java:214) 
11-08 23:56:33.807 26045-26045/org.----------.videorecorder_aws W/System.err:  at com.amazonaws.mobileconnectors.s3.transferutility.UploadTask.call(UploadTask.java:88) 
11-08 23:56:33.807 26045-26045/org.----------.videorecorder_aws W/System.err:  at com.amazonaws.mobileconnectors.s3.transferutility.UploadTask.call(UploadTask.java:47) 
11-08 23:56:33.807 26045-26045/org.----------.videorecorder_aws W/System.err:  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
11-08 23:56:33.808 26045-26045/org.----------.videorecorder_aws W/System.err:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
11-08 23:56:33.808 26045-26045/org.----------.videorecorder_aws W/System.err:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
11-08 23:56:33.808 26045-26045/org.----------.videorecorder_aws W/System.err:  at java.lang.Thread.run(Thread.java:762) 

請讓我知道如果您需要更多信息,這是一個相當時間敏感的問題。

編輯1 針對donkon,這裏要說的是,我使用我的文件發送到服務器的代碼:

public void submitVideoToS3Bucket(){ 
    TransferUtility transferUtility = new TransferUtility(s3, getApplicationContext()); 

    File directory = new File(getFilesDir(), "Reflex"); 
    final File CameraFile = new File(directory, "camera-temp.mp4"); 

    Date now = new Date(); 
    String videoName = now.toString().concat(".mp4").replace(" ", "_").replace(":", ""); 

    TransferObserver observer = transferUtility.upload(Constants.BUCKET_NAME, videoName, CameraFile); 

    observer.setTransferListener(new TransferListener() { 

     @Override 
     public void onStateChanged(int id, TransferState state) { 
      if (TransferState.COMPLETED == state) { 
      } 
      System.out.println("state change"); 
     } 

     @Override 
     public void onProgressChanged(
       int id, long bytesCurrent, long bytesTotal) { 
     } 

     @Override 
     public void onError(int id, Exception ex) { 
      ex.printStackTrace(); 
     } 
    }); 
    if (TransferState.COMPLETED == observer.getState()) { 
     // Handle a completed upload. 
     Intent cameraIntent = new Intent(this, CameraActivity.class); 
     startActivity(cameraIntent); 
    } 
} 
+0

不知道,但是如果您還沒有,也應該在AWS論壇上發帖。如果您能負擔得起,AWS支持也非常好。 – nasch

+0

你能提供代碼和示例文件來重現錯誤嗎?你使用哪個版本的SDK? – donkon

+0

內容是否隨着您的上傳而改變? –

沙发
0
0

的問題是,當你上傳的內容是不斷變化的。嘗試使用您的代碼上傳靜態文件(即,完成錄製的視頻),它應該可以工作。

+0

當我將「public void submitVideoToS3Bucket()」更改爲「public static ...」時,它不再有效。我該如何改變它,以便它上傳一個靜態文件? –

+0

在開始上傳之前,視頻必須完全錄制並保存。 –

0
votes
answers
45 views
+10

瞭解Elastic Beanstalk?

0

我是新AWS,我期待,當我用Google搜索找到AWS Elastic Beanstalk,這有助於更容易地管理應用程序,但不包括auto_scalingload balancerRDS,部署我的Django應用程序,我的問題是,我只是想部署我的Django和RDS我在此stage不需要負載平衡器和auto_scaling,這會產生更多的費用,所以我需要做什麼?瞭解Elastic Beanstalk?

+1

這些都是非常低的費用,即使自動縮放和負載平衡的費用不會成爲適用於你,除非你的應用具有相當的服務器負載,數據等的回覆 – Laxmikant

+0

@Laxmikant感謝,即使它的收費我想刪除那些功能到現在爲止,因爲我有基本應用程序的地段需要添加。你對此有何建議? –

+1

@ N.HariHaraSudhan - 去爲單實例ENV http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features-managing-env-types.html?ref_=pe_395030_31184250_9 – Laxmikant

沙发
0
0

首先,您需要了解auto_scaling不會增加更多成本。即使Elastic Bean Stalk也不會產生更多成本。是彈性負載平衡器每月額外支出約1美元。如果1美元額外罰款與你;那麼我會說跟BeanStalk一起去,這樣你確信你已經照顧好了所有的最佳實踐。

部署智能Beanstalk非常簡單。如果你覺得它具有挑戰性,那麼你可以使用1實例部署。

+0

我是在開發階段只是所以我想到現在不使用'load balancer'。 –

+0

得到它..我會建議ü使用最佳實踐從右邊開始。1美元每月是確定.. –

+0

我還需要其他信息我跟着這個[鏈接](http://docs.aws.amazon.com /elasticbeanstalk/latest/dg/create-deploy-python-django.html)要求我先創建鍵值對的,但現在我想FileZilla的實例與EC2連接它需要'pem'所以我怎麼能得到生成的鍵值? –

0
votes
answers
50 views
+10

X射線添加到AWS Lamda功能的延遲有多遠

0

我已經瀏覽了文檔,無法找到關於X射線追蹤應該添加到Lambda函數執行(以及其他服務好)。它應該是最小的,但由於它發出了痕跡,所以預計會有一些延遲。X射線添加到AWS Lamda功能的延遲有多遠

有人有數字嗎?

沙发
0
2

您在應用程序中使用的AWS X-Ray SDK不直接向X-Ray服務發送跟蹤段。這些段通過UDP傳輸到本地主機上運行的xray守護進程。因此,所涉及的延遲僅適用於內存更新段數據。只有當這些段完成時,它們才通過UDP發送到本地主機。因此,您應該期望在您的應用程序上可能產生最小的開銷此外,運行在單獨進程中的守護進程不會立即將段發送到服務。它在短時間內緩衝段,並定期使用PutTraceSegments API調用批量發送它們。

如果您有興趣進一步挖掘,大多數AWS X-Ray SDK都是在github上開源的。以Java SDK爲例https://github.com/aws/aws-xray-sdk-java

0
votes
answers
34 views
+10

AWS quicksight parseInt()返回null

0

我試圖用簡單的.csv文件生成一個QuickSight分析。該文件包含像AWS quicksight parseInt()返回null

Yifei, 24, Male, 2 
Joe, 30, Male, 3 
Winston, 40, Male, 7 
Emily, 18, Female, 5 
Wendy, 32, Female, 4 

我放置在文件中的S3桶某些任意數據,然後用AWS雅典娜解析該插入表中。該表將所有列作爲字符串,我可以查詢正確

SELECT * FROM users

回報

name age gender consumed 
1 Yifei 24 Male 2 
2 Joe  30 Male 3 
3 Winston 40 Male 7 
4 Emily 18 Female 5 
5 Wendy 32 Female 4 

好到目前爲止好。然後在QuickSight中,我將表格導入爲數據集,並將其正確顯示在具有正確值的字段下。剩下的唯一問題是ageconsumed被視爲字符串,而不是數字。所以,我創建了兩個計算字段:

age_calc: parseInt({age}) 
consumed_calc: parseInt({consume}) 

Screenshot of fields

工作得很好,現在下的字段我可以看到正確的值新創建的領域。但是,一旦我嘗試使用字段consumed_calc創建實際可視化(例如,餅圖和每個人消費了多少),consumed_calc的值就是空值。 Screenshot of the pie chart

沙发
0
0

我發現了這個問題。基本上,csv不能很好地處理空格,所??以儘管計算的字段在預覽中顯示了正確的結果,但在解析字段「23」時會得到一個錯誤。刪除原始.csv文件中的空格解決了此問題

0
votes
answers
51 views
+10

在移動SSL crt文件後不再能夠通過SSH訪問AWS

2

在AWS上安裝SSL證書時,我重命名舊的crt文件(如傻瓜),現在我不再能夠通過SSH訪問AWS實例修復文件名稱。在移動SSL crt文件後不再能夠通過SSH訪問AWS

有沒有方法可以訪問我的AWS實例的SSH以外的文件?或者,有沒有辦法在SSL證書關閉時繼續使用SSH訪問實例?

最初當我的文件名稱的變更後的連接,我從服務器此提示響應時,SSH:

> ssh -vv -i tc.pem [email protected] 
OpenSSH_7.5p1, OpenSSL 1.0.2l 25 May 2017 
debug1: Reading configuration data /etc/ssh/ssh_config 
debug2: resolving "tc.com" port 22 
debug2: ssh_connect_direct: needpriv 0 
debug1: Connecting to tc.com [1.1.1.1] port 22. 
debug1: Connection established. 
debug1: key_load_public: No such file or directory 
debug1: identity file tc.pem type -1 
debug1: key_load_public: No such file or directory 
debug1: identity file tc.pem-cert type -1 
debug1: Enabling compatibility mode for protocol 2.0 
debug1: Local version string SSH-2.0-OpenSSH_7.5 
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1p1 Ubuntu-2ubuntu2 
debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2 pat OpenSSH_6.6.1* compat 0x04000000 
debug2: fd 3 setting O_NONBLOCK 
debug1: Authenticating to tc.com:22 as 'ubuntu' 
debug1: SSH2_MSG_KEXINIT sent 
Connection closed by 1.1.1.1 port 22 

在一個點上我做的服務器上重新啓動,現在,我得到這個當我嘗試SSH方式:

> ssh -i tc.pem [email protected] 
ssh: connect to host tc.com port 22: Connection timed out 

如果我能進入的服務器或訪問以任何方式重命名這些文件,這將是一個容易解決。感謝任何人可以提供的幫助。

沙发
0
1

這很容易做到。基本上,您將在另一個Instancce上掛載EC2實例的根卷(EBS卷),編輯.ssh/authorized_keys,然後將該卷重新掛接到您的實例。

這裏是覆蓋這一步一步的文章:

SSH Key Access Recovery on EC2 Instances

有一些互聯網上的類似文章。

+0

完美的工作。我正在關注[這個其他頁面](https://aws.amazon.com/articles/how-to-recover-an-unreachable-linux-instance/),它和那個頁面的信息幾乎相同你提供。我確實有不同的掛載它,因爲它是一個ext4,但這也包括[這裏](https://stackoverflow.com/questions/28792272/attaching-and-mounting-existing-ebs-volume-to-ec2 -instance-文件系統的問題)。謝謝你的幫助,約翰! – Rob

0
votes
answers
44 views
+10

正在運行的未知AWS EC2實例即使在終止後也會重新創建

0

我正在運行創建EC2的單個實例的亞馬遜AWS ECS容器。當我創建ECS時,我確信它是1個實例。正在運行的未知AWS EC2實例即使在終止後也會重新創建

我的問題是,我有另一個實例在EC2中運行,亞馬遜給我發了一封電子郵件,我使用了免費配額的兩倍,並將收取費用。

但我不知道爲什麼這第二個EC2實例來自。

我終止了很多次,但它被重新創建。當我終止它,這是我收到的提示,這建議我,這是從EBS創建的,但沒有應用程序在EBS

On an EBS-backed instance, the default action is for the root EBS volume to be deleted when the instance is terminated. 
Storage on any local drives will be lost. 

實例的此名稱。 ECS實例 - amazon-ecs-cli-setup-ecs-cricketscorer

請幫忙。

沙发
0
2

檢查你是否有任何Auto Scaling Groups,你不承認。它最有可能是因爲它而創建的。如果沒有,請更改您的帳戶密碼並停用/刪除您現有的AccessKeys。

+0

非常感謝。這是自動擴展組造成的問題。剛刪除。 – Sallu

0
votes
answers
73 views
+10

DynamoDB併發寫入

3

我有一個具有屬性的現有DynamoDB表說DynamoDB併發寫入

 
--------------------------------------------------------- 
hk(hash-key)| rk(range-key)| a1 | a2 | a3 | 
--------------------------------------------------------- 


我有一個現有的DynamoDb客戶端,只只A1更新現有記錄。我想創建第二個作家(DDB客戶端),它也將更新現有的記錄,但僅適用於a2和a3。
如果ddb客戶端同時嘗試更新相同的記錄(a1爲1,另一個爲a2和a3),那麼DynamoDb會保證所有a1 a2 a3都更新爲正確的值(全部三個新值)?是否使用保存行爲UPDATE_SKIP_NULL_ATTRIBUTES足夠用於此目的,還是我需要實現某種樂觀鎖定?如果沒有, DDB爲此提供了什麼?

沙发
0
-1

讀到DyanmoDB最終是一致的。 請參閱:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html

DynamoDB支持最終一致和強一致的讀取。

最終一致讀取

當你從一個DynamoDB表中讀取數據,響應可能不會 反映最近完成寫操作的結果。 響應可能包含一些陳舊的數據。如果您在短時間後重複閱讀 請求,則回覆應返回最新的 數據。

強一致性讀取

當你請求一個強烈一致的讀取,DynamoDB返回與最先進的最新數據 響應,反映了更新從 的是成功的所有先前的寫操作。如果存在網絡延遲或中斷,則可能無法使用強烈一致的 讀取。

注意DynamoDB使用最終一致的讀取,除非您另行指定 。讀操作(如GetItem,Query和Scan)提供了一個ConsistentRead參數 。如果將此參數設置爲true,則 DynamoDB在操作期間使用強烈一致的讀取。

基本上,你已經指定你閱讀時需要強有力的一致性數據。

而這應該可以解決你的問題。通過一致的讀取,您應該看到所有三個字段的更新。

請注意,對強一致性讀取有定價影響。

+0

我知道吞吐量消耗強烈一致的讀取。我只是問是否可以同時用兩個不同的作家寫同一個記錄,或者其中一個會一次成功,最後的記錄最終可能是a1 a2 a3或a1 a2 A'3。希望我能解釋我的問題。 –

板凳
0
0

如果您碰巧使用Dynamo Java SDK,那麼您很幸運,因爲SDK只支持Optimistic Locking。我不知道其他SDK是否支持類似的東西 - 我懷疑他們不支持。

樂觀鎖是爲了確保客戶端項目 正在更新(或刪除)是相同 DynamoDB項目的戰略。如果你使用這種策略,那麼你的數據庫寫入是 保護免受其他人的寫入覆蓋 - 反之亦然 。

+0

謝謝,讓我們看看樂觀鎖定是唯一的方法。 –

0
votes
answers
59 views
+10

AWS CodePipeline - 使用現有的Dockerrun.aws.json部署到Elastic Beanstalk

0

我在CodePipeline上使用CI/CD在Elastic Beanstalk上運行多容器Docker應用程序。AWS CodePipeline - 使用現有的Dockerrun.aws.json部署到Elastic Beanstalk

  • 前端存儲庫/圖片/管道
  • 後端儲存庫/圖像/管道
  • 部署信息庫(Dockerrun.aws.jsonnginx/conf.d/等)
:我的應用程序在多個存儲庫和多個圖像分裂

我部署到Elastic Beanstalk的唯一部分是我的部署存儲庫。在前端和後端資料庫沒有關於Dockerrun.aws.json文件信息,環境變量等

我的問題是,在CodePipeline我的前端和後端資料庫兩者的最新一步,它試圖將其推到彈性魔豆並失敗,因爲輸出工件中不包含Dockerrun.aws.json文件。

所以我想要做的是,管道應該建立圖像,將它推到ECR(我已經成功完成),然後觸發Elastic Beanstalk更新/拉下圖像。我該怎麼做呢?我不想將構件中的工件推送到Elastic Beanstalk。

沙发
0
0

Elastic Beanstalk似乎意味着使用單個「單聲道回購」,而不是運行多個回購應用程序。因此,我不是使用多個存儲庫,而是將它們合併爲一個存儲庫。

我現在的庫現在看起來是這樣的:

.git/ 
backend_app/ 
frontend_app/ 
Dockerrun.aws.json 

現在,每當我推到我的倉庫,AWS CodePipeline拿起變化並能成功地部署到我的魔豆彈性應用。

對於任何想使用微服務,多回購或類似應用程序運行應用程序的人,我猜Elastic Beanstalk可能不是正確的方法。